risorse | zx spectrum | strikenball
È il classico gioco del mastermind con le cifre a sostituire i colori.
Nota: una veloce scorsa al listato evidenzia l'assenza di una chiamata RANDOMIZE che eviterebbe che il programma proponga, ad ogni avvio, sempre la stessa sequenza di codici.
Scarica il nastro virtuale strikenball.tzx (3KB).
10 REM ********************* 20 REM * * 30 REM * STRIKE AND BALL * 40 REM * * 50 REM ********************* 60 REM 70 GO TO 460 80 REM 90 REM ===================== 100 REM GENERA COMBINAZIONE 110 REM ===================== 120 REM 130 LET I$="" 140 FOR F=1 TO LUNG 150 LET NUM=INT (RND*10) 160 LET I$=I$+STR$ (NUM) 170 NEXT F 180 RETURN 190 REM 200 REM ==================== 210 REM PROVA A INDOVINARE 220 REM ==================== 230 REM 240 INPUT "COMBINAZIONE..";LINE T$: IF LEN T$<>LUNG THEN PRINT #0; INVERSE 1;"* LUNGHEZZA ERRATA *": PAUSE 50: GO TO 240 250 RETURN 260 REM 270 REM =========== 280 REM CONTROLLO 290 REM =========== 300 REM 310 LET C$=I$ 320 LET STRIKE=0: LET BALL=0 330 FOR F=1 TO LUNG 340 IF C$(F)<>"*" AND T$(F)<>"*" AND C$(F)=T$(F) THEN LET STRIKE=STRIKE+1: LET C$(F)="*": LET T$(F)="*" 350 NEXT F 360 FOR F=1 TO LUNG 370 FOR N=1 TO LUNG 380 IF C$(F)<>"*" AND T$(N)<>"*" AND C$(F)=T$(N) THEN LET BALL=BALL+1: LET C$(F)="*": LET T$(N)="*" 390 NEXT N: NEXT F 400 RETURN 410 REM 420 REM =============== 430 REM PRESENTAZIONE 440 REM =============== 450 REM 460 BORDER 0: PAPER 0: INK 7: BRIGHT 1: CLS : POKE 23624,71 470 PRINT "{+6}{-2}{-1}{+4}{-5}{-3}{+7}{+5}{+5}{+6}{-5}{-3}{-2} {+6}{-6}{-5}{-8}{+5}{+4}{-6} {-5}{-3}{+7}{+6}{-6}{-5}{-8}{-8}{+5} " 480 PRINT "{-1}{-6}{-8}{+5}{-5}{+3}{-2}{+5}{+4}{+7}{-5}{+3}{-8}{-8}{+1}{+2}{-5}{-6}{+5}{+5}{-5}{-8}{-5}{-3}{+7}{+1}{+2}{-5}{-8}{-8}{+5}{-8}" 490 PRINT "{-6}{+6}{-8}{+5}{-5}{-8}{+5}{+5}{+5}{-5}{-5}{+3}{+7} {+5}{-5}{-5}{-8}{+5}{+1}{+6} {-5}{+3}{-2}{+5}{-5}{-5}{+3}{+7}{+1}{+3}" 500 PRINT '" "; INVERSE 1;"CIFRA"; INVERSE 0;" "; INVERSE 1;"POSIZIONE"'"S"; INVERSE 0;"TRIKE: ESATTA ESATTA"' INVERSE 1;"B"; INVERSE 0;"ALL : ESATTA ERRATA" 510 INPUT "LUNGHEZZA CODICE [3..9]:";LUNG 520 IF LUNG<3 OR LUNG>9 THEN GO TO 510 530 PRINT '"LUNGHEZZA DEL CODICE: ";LUNG;" CIFRE.." 540 GO SUB 100 550 FOR T=0 TO 9 560 PRINT 570 PRINT T;") "; 580 GO SUB 210 590 PRINT T$;" "; 600 GO SUB 280 610 IF STRIKE=LUNG THEN GO TO 760 620 IF STRIKE=0 THEN GO TO 660 630 FOR F=1 TO STRIKE 640 PRINT "S"; 650 NEXT F 660 IF BALL=0 THEN NEXT T 670 FOR F=1 TO BALL 680 PRINT "B"; 690 NEXT F 700 NEXT T 710 PRINT '"NON CE L'HAI FATTA!!"'"IL CODICE ERA -->"; INVERSE 1;I$; INVERSE 0;"<--" 720 PRINT #0;"VUOI RITENTARE ?" 730 LET R$=INKEY$: IF R$="" THEN GO TO 730 740 IF R$="N" OR R$="n" THEN CLS : STOP 750 IF R$="S" OR R$="s" THEN GO TO 460 760 PRINT ''"SEI FORTUNATO, HAI INDOVINATO!" 770 PRINT #0;"VUOI SFIDARMI DI NUOVO ?": GO TO 730
Pagina modificata l'8/11/2011