'rem se supone que esto resuelve el problema 'rem pulsa espacio para ver como va 'REM LA CASILLA INICIAL x,y SE PONE X1 = x: Y1 = y-3 CLS PRINT "ES MEJOR QUE USES TABLA.EXE, ES MAS RAPIDO" PRINT "PULSA ESPACIO PARA VER EL CODIGO ACTUAL, QUE ESTARA INCOMPLETO" PRINT "PULSA DEL 1 AL 9 PARA CAMBIAR EL 1§ MOVIMIENTO, EL 2§, ETC" mx(1) = 0: mx(2) = 2: mx(3) = 3: mx(4) = 2: mx(5) = 0: mx(6) = -2: mx(7) = -3: mx(8) = -2 my(1) = 3: my(2) = 2: my(3) = 0: my(4) = -2: my(5) = -3: my(6) = -2: my(7) = 0: my(8) = 2 DIM NX(25) DIM oc(6, 6) DIM p(25) FOR k = 1 TO 25: p(k) = 1: NEXT 3 ' 'FOR x1 = 1 TO 5 ' FOR y1 = 1 TO 5 x1 = 1: y1 = -2 ki = 0 x = x1: y = y1 ' ERASE OC: 4 x = x1: y = y1 ERASE oc 'PRINT : PRINT "***": 'A$ = INPUT$(1) ka$ = INKEY$: IF ka$ = " " THEN PRINT : FOR k = 2 TO f: PRINT p(k); : NEXT: PRINT IF ka$ < ":" AND ka$ > "0" THEN p(VAL(ka$) + 1) = p(VAL(ka$) + 1) + 1: PRINT : FOR k = 2 TO f: PRINT p(k); : NEXT: PRINT IF f > FF THEN FF = f: IF FF > 15 THEN PRINT "LLEVO UN MAXIMO DE "; FF - 1; " ACIERTOS" ki = 0 FOR f = 1 TO 26 'cuen = cuen + 1: IF cuen = 273 THEN STOP f = f - ki ki = 0 'PRINT p(f), f 'PRINT X1, Y IF f = 26 THEN EXIT FOR: GOTO 69 IF p(f) >= 9 THEN GOTO 7 KX = x + mx(p(f)): KY = y + my(p(f)) kk = 0 'FOR k = 1 TO F: PRINT p(k); : NEXT 'PRINT KX, KY IF 0 < KX AND KX < 5.5 AND 0 < KY AND KY < 5.5 THEN 'PRINT KX, KY, X, Y 'IF F > FF THEN FF = F: PRINT FF: A$ = INPUT$(1) IF oc(KX, KY) = 0 THEN ki = 0 xx = x: yy = y x = KX: y = KY: oc(KX, KY) = 1: kk = 1 'LOCATE 15 - Y * 2, X * 4: PRINT f 'IF f > 24 THEN A$ = INPUT$(1) 'PRINT P(F); 'A$=INPUT$(1) 'COLOR 3: PRINT X, Y: COLOR 7: PRINT END IF 'IF OC(3, 5) = 1 THEN BEEP END IF IF kk = 0 THEN ki = 1 'X = X1: Y = Y1 'ERASE OC: 'IF INKEY$ = " " THEN PRINT : FOR k = 2 to 25: PRINT p(k); : NEXT: PRINT 'IF f > 4 THEN ki = f: x = xx: y = yy ELSE xx = x: yy = y 7 IF p(f) >= 8 THEN ki = 2: oc(x, y) = 0: x = xx: y = yy: xx = x - mx(p(f - 2)): yy = y - my(p(f - 2)) p(f - 1) = p(f - 1) + 1: p(f) = 1 ka$ = INKEY$: IF ka$ = " " THEN PRINT : FOR k = 2 TO f: PRINT p(k); : NEXT: PRINT IF ka$ < ":" AND ka$ > "0" THEN p(VAL(ka$) + 1) = p(VAL(ka$) + 1) + 1: PRINT FOR k = 2 TO f: PRINT p(k); : NEXT: PRINT GOTO 9 END IF IF f > FF THEN FF = f: IF FF > 15 THEN PRINT "LLEVO UN MAXIMO DE "; FF - 1; " ACIERTOS" ELSE p(f) = p(f) + 1: GOTO 9 END IF 9 END IF 8 NEXT f 69 CLS : kp = f: IF f > 25 THEN kp = 25 PRINT "guay": PRINT : FOR k = 2 TO kp: PRINT p(k); : NEXT QX = 1: qy = 1 66 FOR Q = 2 TO 25 LOCATE 10 - qy, QX * 3: PRINT Q - 1: QX = QX + mx(p(Q)): qy = qy + my(p(Q)) NEXT: LOCATE 10 - qy, QX * 3: PRINT Q - 1 LOCATE 15, 1: PRINT : PRINT "1: IMPRIMIR TABLA" PRINT "2: IMPRIMIR CODIGO DE NUMEROS" PRINT "3: CONTIUAR" A$ = INPUT$(1) QX = x1: qy = y1 + 3 IF A$ = "1" THEN ERASE NX: PRINT " ": FOR QQ = 2 TO 25: NX((qy - 1) * 5 + QX) = QQ - 1: QX = QX + mx(p(QQ)): qy = qy + my(p(QQ)): NEXT: NX((qy - 1) * 5 + QX) = QQ - 1: FOR QK = 1 TO 5: LPRINT " ": FOR KQ = 1 TO 5: LPRINT USING "###"; NX((5 - QK) * 5 + KQ); : NEXT: NEXT END IF IF A$ = "2" THEN LPRINT : FOR k = 2 TO 25: LPRINT p(k); : NEXT IF NOT A$ = "3" THEN 69 LOCATE 16, 1: PRINT SPACE$(30) LOCATE 17, 1: PRINT SPACE$(30) LOCATE 18, 1: PRINT SPACE$(30) p(25) = p(25) + 1 GOTO 4 ' NEXT y1 'NEXT x1