Démineur: (GT)
Comme son nom l'indique ce programme est un jeu de démineur. Tout le monde connait les régles de ce jeu qui se joue comme celui se trouvant dans le 'menu démarer' de 'Window 95'. Ce programme ne tourne que sur les calculatrices GT, et comme vous le savez elles ne bénéficient pas de sourie (si si !), donc les règles de ce jeu différent légérement.
On peut choisir la première case grace à une lettre et un nombre (dans cet ordre); une lettre de A à T pour le choix de la colonne et un nombre de 1 à 8 pour le choix de la ligne. Une fois que vous avez choisi la première case, il peut se passer deux choses: un BOOM ! apparaitra au milieu de l'écran, ce qui signifie que vous avez marché sur une mine et que vous avez perdu (dommage pour un premier coup d'essai) ou alors un nombre apparaitra dans la case que vous avez choisi et vous indiquera combien de mines se trouvent autour de vous (horizontal, vertical et diagonale), nombre allant de 0 à 8. Vous pourrez ensuite choisir une autre case qui n'est pas obligatoirement en contact avec votre précédent choix de case.
Pour votre premier choix de case vous devez rentrer une lettre et un nombre (comme expliqué plus haut) à l'apparition d'une croix en haut à gauche de l'écran. Une fois que vous avez fait votre choix et l'avez tapé, vérifiez que la machine a bien saisi votre instruction, si c'est le cas une étoile s'affichera en haut à gauche de l'écran sur la croix, sinon l'étoile n'apparaitra pas et vous devrez retaper le nombre (de 1 à 7). Un nombre apparaîtra ensuite sur la case que vous avez choisi et l'étoile disparaîtra, vous pourrez alors choisir une autre case.
Si vous pensez savoir où se trouve une mine, vous avez la possibilité de placer un indicateur dessus. Pour ce faire, appuyez sur la touche Shift à l'apparition de l'étoile puis tapez votre choix de case. Un "-" se placera dessus. Qu'il y ait ou non une mine dessous cela ne changera rien au déroulement du jeu car ces indicateurs ne sont là que pour vous servir de repère. Vous ne pouvez placer plus d'indicateurs qu'il y a de mines; si vous le faites, une instruction se placera en bas de votre écran. Appuyez ensuite sur EXE et le jeu reprendra.
Comme le nombre d'indicateurs est limité, vous pouvez en enlever un en appuyant sur Alpha et en tappant les coordonnées de la case (lettre et nombre).
Le jeu se termine quant vous avez rempli les 100 cases non minées de la grille (grille de 120 cases dont 20 minées).
Une deuxième version du démineur est en cour de programmation. Elle permettra de jouer sur une grille plus grande (2 lignes de plus soit 40 cases de plus à déminer) et utilisera 1.8 Ko de mémoire de listes.
Certaine parties de ce programme sont répétées plusieures fois. Pour une plus grande rapidité de programmation, utilisez le 'copier coller'. Vous trouverez toutes les informations sur ce 'copier coller' dans la partie 'astuces de programmation' de ce site. Ne vous laissez pas décourager par la longueur du programme car avec cette technique cela va très vite. Si malgré tout vous trouvez cela trop long et que vous êtes propriétaire de la FX-Interface, vous pouvez télécharger ce programme dans la partie téléchargement via la FX-Interface de ce site.
Ce programme utilise 1.4 Ko de mémoire de listes à son lancement. Une fois que vous avez fini de jouer, cliquez sur l'icone MEM du Main Menu puis sur Memory Usage et descendez jusqu'à List File et faites F1, F1, F1. Cette opération vous permettra de regagner 1.4 Ko de mémoire de listes sans pour autant effacer le programme.
Ce programme ne fonctionne que sur les modèles GT couleur. Pour les faire tourner sur les modèles GT monochrome, enlevez du contenu du programme les instuctions écrites en jaune.
La taille: 4150 octets de programmation + 1.4 Ko de mémoire de listes
au lancement (pour les GT couleurs)
La taille: 4145 octets de programmation + 1.4 Ko de mémoire de listes
au lancement (pour les GT monochromes)
0 -> B ~ Z : 0 -> r : Cls : ViewWindows10, 136, 0, 10, 72, 0
24 -> A
Lbl 0 : F-Line 16, A, 136, A
A + 6 -> A : A =/= 72 => Goto 0
16 -> B
Lbl 1 : F- Line B, 24, B, 66
B + 6 -> B : B =/= 148 => Goto 1
Text 1, 9,"A"
Text 1, 15, "B"
Text 1, 21,"C"
Text 1, 27, "D"
Text 1, 33,"E"
Text 1, 39, "F"
Text 1, 45,"G"
Text 1, 51, "H"
Text 1, 57,"I"
Text 1, 63, "J"
Text 1, 69,"K"
Text 1, 75, "L"
Text 1, 80,"M"
Text 1, 87, "N"
Text 1, 93,"O"
Text 1, 99, "P"
Text 1, 105,"Q"
Text 1, 111,"R"
Text 1, 117,"S"
Text 1, 123, "T"
( Il y a 20 fois à peu près la même instruction au dessus. Utilisez le 'copier coller' sinon vous perdrez beaucoup de temps. Les informations concernant le 'copier coller' se trouvent dans la partie 'Astuce de programmation' de ce site.)
Text 8, 2, 1
Text 14, 2, 2
Text 20, 2, 3
Text 26, 2, 4
Text 32, 2, 5
Text 38, 2, 6
Text 44, 2, 7
( Il y a 7 fois à peu près la même instruction au dessus. Utilisez le 'copier coller' sinon vous perdrez beaucoup de temps. Les informations concernant le 'copier coller' se trouvent dans la partie 'Astuce de programmation' de ce site.)
Plot 0, 0
140 -> A
Int (A Ran#) + 1 -> B
Lbl 2 : Int (A Ran#) + 1 -> C
C = B => Goto 2
Lbl 3: Int (A Ran#) + 1 ->D
D = B => Goto 3
D = C => Goto 3
Lbl 4: Int (A Ran#) + 1 ->E
E = B => Goto 4
E = C => Goto 4
E = D => Goto 4
Lbl 5: Int (A Ran#) + 1 ->F
F = B => Goto 5
F = C => Goto 5
F = D => Goto 5
F = E => Goto 5
Lbl 6: Int (A Ran#) + 1 ->G
G = B => Goto 6
G = C => Goto 6
G = D => Goto 6
G = E => Goto 6
G = F => Goto 6
Lbl 7: Int (A Ran#) + 1 ->H
H = B => Goto 7
H = C=> Goto 7
H = D => Goto 7
H = E => Goto 7
H = F => Goto 7
H = G => Goto 7
Lbl 8: Int (A Ran#) + 1 ->I
I = B => Goto 8
I = C => Goto 8
I = D => Goto 8
I = E => Goto 8
I = F => Goto 8
I = G => Goto 8
I = H => Goto 8
Lbl 9 : Int (A Ran#) + 1 ->J
J = B => Goto 9
J = C => Goto 9
J = D => Goto 9
J = E => Goto 9
J = F => Goto 9
J = G => Goto 9
J = H => Goto 9
J = I => Goto 9
Lbl A: Int (A Ran#) + 1 ->K
K = B => Goto A
K = C => Goto A
K = D => Goto A
K = E => Goto A
K = F => Goto A
K = G => Goto A
K = H => Goto A
K = I => Goto A
K = J => Goto A
Lbl B: Int (A Ran#) + 1 ->L
L = B => Goto B
L = C => Goto B
L = D => Goto B
L = E => Goto B
L = F => Goto B
L = G => Goto B
L = H => Goto B
L = I => Goto B
L = J => Goto B
L = K => Goto B
Lbl C: Int (A Ran#) + 1 ->M
M = B => Goto C
M = C => Goto C
M = D => Goto C
M = E => Goto C
M = F => Goto C
M = G => Goto C
M = H => Goto C
M = I => Goto C
M = J => Goto C
M = K => Goto C
M = L => Goto C
Lbl D: Int (A Ran#) + 1 ->N
N = B => Goto D
N = C => Goto D
N = D => Goto D
N = E => Goto D
N = F => Goto D
N = G => Goto D
N = H => Goto D
N = I => Goto D
N = J => Goto D
N = K => Goto D
N = L => Goto D
N = M => Goto D
Lbl E: Int (A Ran#) + 1 ->O
O = B => Goto E
O = C => Goto E
O = D => Goto E
O = E => Goto E
O = F => Goto E
O = G => Goto E
O = H => Goto E
O = I => Goto E
O = J => Goto E
O = K => Goto E
O = L => Goto E
O = M => Goto E
O = N => Goto E
Lbl F: Int (A Ran#) + 1 ->P
P = B => Goto F
P = C => Goto F
P = D => Goto F
P = E => Goto F
P = F => Goto F
P = G => Goto F
P = H => Goto F
P = I => Goto F
P = J => Goto F
P = K => Goto F
P = L => Goto F
P = M => Goto F
P = N => Goto F
P = O => Goto F
Lbl G: Int (A Ran#) + 1 ->Q
Q = B => Goto G
Q = C => Goto G
Q = D => Goto G
Q = E => Goto G
Q = F => Goto G
Q = G => Goto G
Q = H => Goto G
Q = I => Goto G
Q = J => Goto G
Q = K => Goto G
Q = L => Goto G
Q = M => Goto G
Q = N => Goto G
Q = O => Goto G
Q = P => Goto G
Lbl H: Int (A Ran#) + 1 ->R
R = B => Goto H
R = C => Goto H
R = D => Goto H
R = E => Goto H
R = F => Goto H
R = G => Goto H
R = H => Goto H
R = I => Goto H
R = J => Goto H
R = K => Goto H
R = L => Goto H
R = M => Goto H
R = N => Goto H
R = O => Goto H
R = P => Goto H
R = Q => Goto H
Lbl I: Int (A Ran#) + 1 ->S
S = B => Goto I
S = C => Goto I
S = D => Goto I
S = E => Goto I
S = F => Goto I
S = G => Goto I
S = H => Goto I
S = I => Goto I
S = J => Goto I
S = K => Goto I
S = L => Goto I
S = M => Goto I
S = N => Goto I
S = O => Goto I
S = P => Goto I
S = Q => Goto I
S = R => Goto I
Lbl J: Int (A Ran#) + 1 ->T
T = B => Goto J
T = C => Goto J
T = D => Goto J
T = E => Goto J
T = F => Goto J
T = G => Goto J
T = H => Goto J
T = I => Goto J
T = J => Goto J
T = K => Goto J
T = L => Goto J
T = M => Goto J
T = N => Goto J
T = O => Goto J
T = P => Goto J
T = Q => Goto J
T = R => Goto J
T = S => Goto J
Lbl K : Int (A Ran#) ->U
U = B => Goto K
U = C => Goto K
U = D => Goto K
U = E => Goto K
U = F => Goto K
U = G => Goto K
U = H => Goto K
U = I => Goto K
U = J => Goto K
U = K => Goto K
U = L => Goto K
U = M => Goto K
U = N => Goto K
U = O => Goto K
U = P => Goto K
U = Q => Goto K
U = R => Goto K
U = S => Goto K
U = T => Goto K
( Il y a 190 fois à peu près la même instruction au dessus. Utilisez le 'copier coller' sinon vous perdrez beaucoup de temps. Les informations concernant le 'copier coller' se trouvent dans la partie 'Astuce de programmation' de ce site.)
/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 / -> List 1
(Il y a dans cette instruction 140 zéros. Utilisez le 'copier coller' sinon vous perdrez beaucoup de temps. Les informations concernant le 'copier coller' se trouvent dans la partie 'Astuce de programmation' de ce site.)
1 -> List 1 µ B µ
1 -> List 1 µ C µ
1 -> List 1 µ D µ
1 -> List 1 µ E µ
1 -> List 1 µ F µ
1 -> List 1 µ G µ
1 -> List 1 µ H µ
1 -> List 1 µ I µ
1 -> List 1 µ J µ
1 -> List 1 µ K µ
1 -> List 1 µ L µ
1 -> List 1 µ M µ
1 -> List 1 µ N µ
1 -> List 1 µ O µ
1 -> List 1 µ P µ
1 -> List 1 µ Q µ
1 -> List 1 µ R µ
1 -> List 1 µ S µ
1 -> List 1 µ T µ
1 -> List 1 µ U µ
F-Line 12, 72, 12, 68
F-Line 10, 70, 14, 70
0 -> A ~ Z
Lbl L : Getkey -> B
B = 0 => Goto L
Isz E : E = 2 => Goto M
If B = 78
Then If M = 20
Then Text 52, 2,"Pas Plus d'indicateurs"
Plot 0,0 $
Text 52, 2," "
(Il y a 23 espaces entre les guillemets)
Plot 0,0
0 -> E : Goto L
Else 1 -> r : 0 -> E : Goto L
Ifend
IfEnd
If B = 77
Then 1 -> Z
0 -> E : Goto L
IfEnd
B = 66 => 1 -> C
B = 56 => 2 -> C
B = 46 => 3 -> C
B = 36 => 4 -> C
B = 26 => 5 -> C
B = 75 => 6 -> C
B = 65 => 7 -> C
B = 55 => 8 -> C
B = 45 => 9-> C
B = 35 => 10 -> C
B = 25 => 11 -> C
B = 74 => 12 -> C
B = 64 => 13 -> C
B = 54 => 14 -> C
B = 73 => 15 -> C
B = 63 => 16 -> C
B = 53 => 17 -> C
B = 43 => 18 -> C
B = 33 => 19 -> C
Goto L
Lbl M : B = 62 => 20 -> D
B = 52 => 40 -> D
B = 73 => 60 -> D
B = 63 => 80 -> D
B = 53 => 100 -> D
B = 74 => 120 -> D
F-Line 12, 72, 12, 68
F-Line 10, 70, 14, 70
F-Line 10, 68, 14, 72
F-Line 10, 72, 14, 68
C + D +1 -> F
r = 1 => Goto V
Z = 1 => Goto V
If List 1 µ F µ = 1
Then Locate 9, 4,"BOOM !"
ClrList : Stop
IfEnd
0 -> H
F < 2 => Goto O
F = 21 => Goto O
F = 41 => Goto O
F = 61 => Goto O
F = 81 => Goto O
F = 101 => Goto O
F = 121 => Goto O
List 1 µ F - 1 µ = 1 => Isz H
Lbl O : F > 139 => Goto P
F = 20 => Goto P
F = 40 => Goto P
F = 60 => Goto P
F = 80 => Goto P
F = 100 => Goto P
F = 120 => Goto P
List 1 µ F + 1 µ = 1 => Isz H
Lbl P : F < 21 => Goto Q
List 1 µ F - 20 µ = 1 => Isz H
Lbl Q : F > 120 => Goto R
List 1 µ F + 20 µ = 1 => Isz H
Lbl R : F > 119 => Goto S
F = 20 => Goto S
F = 40 => Goto S
F = 60 => Goto S
F = 80 => Goto S
F = 100 => Goto S
List 1 µ F + 21 µ = 1 => Isz H
Lbl S : F > 121 => Goto T
F = 1 => Goto T
F = 21 => Goto T
F = 41 => Goto T
F = 61 => Goto T
F = 81 => Goto T
F = 101 => Goto T
F = 121 => Goto T
List 1 µ F + 19 µ = 1 => Isz H
Lbl T : F < 22 => Goto U
F = 41 => Goto U
F = 61 => Goto U
F = 81 => Goto U
F = 101 => Goto U
F = 121 => Goto U
List 1 µ F - 21 µ = 1 => Isz H
Lbl U : F < 21 => Goto V
F = 40 => Goto V
F = 60 => Goto V
F = 80 => Goto V
F = 100 => Goto V
F = 120 => Goto V
F = 140 => Goto V
List 1 µ F - 19 µ = 1 => Isz H
Lbl V : F - 1 -> F
F - 140 -> J
If F < 140
Then 44 -> I : F - 120 -> J
IfEnd
If F < 120
Then 38 -> I : F - 100 -> J
IfEnd
If F < 100
Then 32 -> I : F - 80 -> J
IfEnd
If F < 80
Then 26 -> I : F - 60 -> J
IfEnd
If F < 60
Then 20 -> I : F - 40 -> J
IfEnd
If F < 40
Then 14 -> I : F - 20 -> J
IfEnd
If F < 20
Then 8 -> I : F -> J
IfEnd
J = 0 => 9 -> K
J = 1 => 15 -> K
J = 2 => 21 -> K
J = 3 => 27 -> K
J = 4 => 33 -> K
J = 5 => 39 -> K
J = 6 => 45 -> K
J = 7 => 51 -> K
J = 8 => 57 -> K
J = 9 => 63 -> K
J = 10 => 69 -> K
J = 11 => 75 -> K
J = 12 => 81 -> K
J = 13 => 87 -> K
J = 14 => 93 -> K
J = 15 => 99 -> K
J = 16 => 105 -> K
J = 17 => 111 -> K
J = 18 => 117 -> K
J = 19 => 123 -> K
r =/= 1 => Green Text I, K, H
Z =/= 1 => Green Text I, K, H
If r = 1
Then O -> r
List 1 µ F µ = 1 => Isz L
Isz M : Green Text I ,K - 1 , "-"
IfEnd
If Z = 1
Then 0 -> Z
Green Text I , K - 1 ," "
List 1 µ F µ = 1 => Dsz L
Dsz M
IfEnd
Green Plot 0,0
Text 58, 2,"Nombre d'indicateurs:"
Text 58, 92," "
Text 58, 92, M
Text 1, 1," "
Text 1, 2," "
Plot 0,0
If L = 20
Then Locate 9, 4, " BRAVO !"
Stop
IfEnd
0 -> A ~ K : Goto L