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


Retour au menu