jeux de tours hanoi en qbasic 4.5
face a ces tours de hanoi, vous devrez faire preuve de
stratégie, de reflexion et beaucoup de patience
il s'agit de faire passer sur la tour de droite et le meme orde un certain nombre de disques empilés sur la tour de
gauche en vous aidant de la tour du milieu
vous pouez choisir le nombre de disques de 3 a 7
petit conseil:il vaut mieux pour nerts commencer par 3 disques
CLS : DEFINT A-Z
REM TOURS DE HANOI
REM
COLOR 15, 0
pre1:
PRINT
INPUT "NOMBER DE DISQUES 3 a 7 "; n
IF n < 3 OR n > 7 THEN GOTO pre1
CLS : LOCATE 2, 33: PRINT "TOURS DE HANOI"
GOSUB per2
DIM d(3, 7)
x(1) = 18: x(2) = 18: x(3) = 18
y(1) = 16: y(2) = 40: y(3) = 64
FOR i = 1 TO 7
IF i <= n THEN d(1, i) = 8 - i
NEXT i
GOSUB per3
e = 0
REM
REM le jeu
jeux:
COLOR 15, 0
LOCATE 30, 1: PRINT STRING$(18, 32)
LOCATE 30, 1: PRINT "TOUR DE DEPART:"
pre4:
a$ = INKEY$: IF a$ = "" THEN GOTO pre4
LOCATE 30, 17: PRINT a$
td = VAL(a$): IF td < 1 OR td > 3 THEN GOTO pre4
j = td: GOSUB per9: IF q = 1 THEN GOTO jeux
dd = i
LOCATE 32, 1: PRINT STRING$(18, 32)
LOCATE 32, 1: PRINT "TOUR D'ARRIVEE:"
per5:
a$ = INKEY$: IF a$ = "" THEN GOTO per5
LOCATE 32, 17: PRINT a$
ta = VAL(a$): IF ta < 1 OR ta > 3 THEN GOTO per5
IF ta = td THEN GOTO jeux
j = ta: GOSUB per9: IF q = 1 THEN GOTO per6
IF d(td, dd) > d(ta, i) THEN GOTO jeux
per6:
da = i + 1
d(ta, da) = d(td, dd): d(td, dd) = 0
i = td: j = dd: GOSUB per7
i = ta: j = da: GOSUB per7
e = e + 1
LOCATE 34, 1: PRINT "ESSAIS:"; e
FOR i = 1 TO n
IF d(3, i) = 0 THEN GOTO jeux
NEXT i
LOCATE 36, 1: PRINT "REUSSI EN"; e; "COUPS"
per8:
IF INKEY$ = "" THEN GOTO per8
420 END
780 REM
790 REM
per9:
FOR i = 7 TO 1 STEP -1
IF d(j, i) <> 0 THEN q = 0: GOTO per10
NEXT i: q = 1
per10:
RETURN
REM
per7:
COLOR 15, 0
FOR k = 7 TO 1 STEP -1
IF d(i, j) > k THEN LOCATE x(i) - j + 8, y(i) - k: PRINT CHR$(220): LOCATE x(i) - j + 8, y(i) + k: PRINT CHR$(220): GOTO per12
IF d(i, j) = k THEN LOCATE x(i) - j + 8, y(i) - k: PRINT CHR$(220): LOCATE x(i) - j + 8, y(i) + k: PRINT CHR$(220): GOTO per12
LOCATE x(i) - j + 8, y(i) - k: : PRINT " ": LOCATE x(i) - j + 8, y(i) + k: : PRINT " "
per12:
NEXT k
RETURN
REM
per3:
FOR i = 1 TO 3
LOCATE x(i), y(i): PRINT CHR$(6); : COLOR 15, 0: PRINT " TOUR:"; i
FOR j = 1 TO 7
GOSUB per7
COLOR 1, 0
IF j > 1 THEN LOCATE x(i) + j, y(i): PRINT CHR$(219): GOTO per11
LOCATE x(i) + 1, y(i): PRINT CHR$(219)
per11:
NEXT j
NEXT i
COLOR 15, 0
RETURN
per2:
COLOR 1, 0
LOCATE 26, 16: PRINT CHR$(219)
LOCATE 27, 8: PRINT STRING$(17, 219)
REM
LOCATE 26, 40: PRINT CHR$(219)
LOCATE 27, 32: PRINT STRING$(17, 219)
REM
LOCATE 26, 64: PRINT CHR$(219)
LOCATE 27, 56: PRINT STRING$(17, 219)
RETURN
de hanoi en qbasic
(1 message) (1 voix)-
Posté il y a 3 années #
Écrire une réponse
Vous devez être connecté pour poster.
