Suivez-nous sur X
|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : AmigaDOS - Jeu de Nim
(Article écrit par Cécil B. de Mil et extrait d'Amiga News Tech - juin 1989)
|
|
AmigaDOS a, paraît-il, rebuté bon nombre de personnes par son aspect rébarbatif et ses commandes peu
intuitives. Les articles de cette série ont pour objectif de démystifier AmigaDOS. Après les
principes d'AmigaDOS et les mystères
des fichiers de démarrage, après les notes sur les
Shell, il est temps de se mettre à l'ouvrage.
Le contenu de cet article est un défi. Il s'agit d'un jeu traditionnel en informatique et
en théorie des jeux : le jeu de Nim.
Il fut complètement programmé en commandes AmigaDOS, dans un fichier "script" qui décrit la
séquence des instructions à effectuer. Il met en oeuvre une douzaine de programmes d'AmigaDOS,
pour questionner l'utilisateur, simuler le hasard, appliquer une tactique et présenter les
résultats.
Il a été facilement conçu dans l'esprit d'AmigaDOS (et d'Unix, avouons-le), où il est parfois
plus aisé de structurer plusieurs petits programmes utilitaires pour fournir un service, que
de réaliser, à partir de zéro, un programme qu'il faudra tester, diffuser et maintenir.
Avant d'aller plus loin, je vais vous rafraîchir la mémoire sur ce jeu, auquel vous avez sûrement joué.
Il oppose deux joueurs qui, chacun à leur tour, vont retirer un ou plusieurs objets (des allumettes
dans mon folklore personnel) d'un tas constitué au départ. Le perdant est celui qui est contraint
de retirer le dernier objet. De manière expérimentale ou par le raisonnement, on s'aperçoit
rapidement qu'en fonction du nombre d'allumettes et de la taille de la poignée (quantité maximale
licite d'objet à retirer), l'un des joueurs a une stratégie gagnante, c'est-à-dire qu'il peut
gagner quelle que soit celle adoptée par son adversaire.
Je ne dévoilerai pas ici les secrets (sic)
de cette stratégie, mais le programme est construit de telle manière que les paramètres :
premier joueur, importance du tas initial et taille de la poignée varient pour conserver
un attrait au jeu. Si les principes du jeu sont facilement programmables en théorie, je ne
vous cacherai pas qu'il faut se livrer à de nombreuses contorsions intellectuelles et
programmatiques pour le bâtir exclusivement en AmigaDOS. Mais c'est par cet usage aux limites
de ses possibilités, que nous pourrons mieux utiliser les possibilités d'AmigaDOS
dans une utilisation plus "tranquille". De plus, en mettant à jour des lourdeurs ou des
incohérences, nous pouvons dès aujourd'hui améliorer nos procédures d'exploitation, en ayant
recours aux trucs exposés dans ces pages, mais je pense que nous défrichons aussi pour
les futurs AmigaDOS.
Assez parlé, place au listing. Les commandes et leurs paramètres sont en majuscules,
les arguments sont en minuscules, tout ce qui est après un point-virgule est un commentaire
ignoré par l'interpréteur de commandes, il est donc inutile de taper ce qui suit ces points
virgules.
|