10 REM SELECCION DE JUEGOS POR PACO MONTES ESTURILLO
20 CLS
30 PRINT "LOS MEJORES JUEGOS PARA FX-850P " CHR$(145)" RULETA LAS VEGAS";
40 FOR A=1 TO 1000:NEXT A
60 CLS
70 PRINT CHR$(146) " RULETA MONTE CARLO            " CHR$(147)" RULETA RUSA";
80 FOR A=1 TO 1000:NEXT A
90 CLS
100 PRINT CHR$(148) " MEMORY                        " CHR$(149)" MASTERMIND";
110 FOR A=1 TO 1000:NEXT A
120 CLS
130 PRINT CHR$(150) " JUEGO DE GOLF                 " CHR$(151)" EL ADIVINO";
140 FOR A=1 TO 1000:NEXT A
150 CLS
160 PRINT CHR$(152) " EL AHORCADO                   " CHR$(153)" EL GUSANITO";
170 OPTION$=INPUT$(1,@)
180 OPTION=VAL(OPTION$)
190 IF OPTION<1 OR OPTION>9 THEN 20
200 ON OPTION GOTO 1000,2000,3000,4000,5000,6000,7000,8000,9000
1000 REM RULETA LAS VEGAS
1010 DIM JACK$(6),R1(9),R2(9),R3(9)
1020 RESTORE 1030:FOR I=1 TO 6:READ JACK$(I):NEXT
1030 DATA 2454FE5448,0C1E9E7F0C,808E90A0C0,1C5EFE9E0C,5438FE3854,387CFEC682
1040 CLS:DEFCHR$(255)="0000FF0000":CREDIT=10:FOR I=2 TO 4:DEFCHR$(250+I)="0000000000":NEXT
1050 RESTORE 1060:FOR I=1 TO 9:READ R1(I),R2(I),R3(I):NEXT
1060 DATA 2,3,4,3,6,1,2,2,2,1,4,5,6,1,2,4,4,3,5,6,6,6,5,4,4,2,6
1070 LOCATE 18,0:PRINT "  SUPER RULETA";
1080 LOCATE 5,0 :PRINT CHR$(255);CHR$(252);CHR$(255);CHR$(253);CHR$(255);CHR$(254);CHR$(255);
1090 LOCATE 0,1 :PRINT "PULSAR TECLA SPC    LAS VEGAS";
1100 GOTO 1260
1110 C1=INT(RAN#*9)+1:C2=INT(RAN#*9)+1:C3=INT(RAN#*9)+1
1120 IF CREDIT<1 THEN CLS:BEEP:BEEP1:BEEP: PRINT "*** LO HAS PERDIDO TODO  !!! ***";:FOR I=1 TO 350:NEXT I:GOTO 10
1130 CREDIT=CREDIT-1:LOCATE 18,1:PRINT"CREDITO =";CREDIT;
1140 N1=INT(RAN#*15)+5:N2=INT(RAN#*15)+5:N3=INT(RAN#*15)+5
1150 IF N1>N2 THEN M=N1 ELSE M=N2
1160 IF M<N3 THEN M=N3
1170 I=0
1180 I=I+1
1190 IF I<N1 THEN C1=C1+1:IF C1=10 THEN C1=1
1200 IF I<N2 THEN C2=C2+1:IF C2=10 THEN C2=1
1210 IF I<N3 THEN C3=C3+1:IF C3=10 THEN C3=1
1220 BEEP:  DEFCHR$(252)=JACK$(R1(C1)):DEFCHR$(253)=JACK$(R2(C2)):DEFCHR$(254)=JACK$(R3(C3))
1230 IF I<M THEN 1180
1240 GOSUB 1290:CREDIT=CREDIT+GAIN
1250 LOCATE 18,1:PRINT "CREDITO =";CREDIT;
1260 JACK$=INKEY$:IF JACK$="" THEN 1260
1270 IF JACK$=" " THEN 1110 ELSE 1260
1280 REM ----- HE GANADO ? -----
1290 GAIN=0
1300 IF R3(C3)=2 THEN GAIN=1
1310 RESTORE 1360
1320 FOR I=1 TO 6
1330 READ A,B
1340 IF R1(C1)=A AND R2(C2)=A AND R3(C3)=A THEN GAIN=B:GOTO 1370
1350 NEXT
1360 DATA 1,30,2,5,3,10,4,5,5,10,6,5
1370 IF GAIN=0 THEN LOCATE 0,1 :BEEP1:  PRINT "    !PERDIDO!     ";:FOR T=1 TO 250:NEXT:LOCATE 0,1:PRINT"                  ";ELSE LOCATE 0,1 :BEEP1:BEEP1:PRINT"GANANCIAS =";GAIN;"    ";:FOR T=1 TO 250:NEXT:LOCATE 0,1:PRINT "                  ";
1380 RETURN
2000 REM RULETA MONTE CARLO
2010 G=0
2020 CLS:INPUT  "CUANTAS PELAS APUESTAS ? ",A
2030 B=1
2040 FOR C=1 TO 12
2050 X=INT(RAN#*10)
2060 Y=INT(RAN#*10)
2070 Z=INT(RAN#*10)
2080 CLS:LOCATE 11,0:BEEP:PRINT X ":" Y ":"Z;
2090 FOR D=1 TO C^2
2100 NEXT D
2110 NEXT C
2120 IF X=Y;B=B*4
2130 IF Y=Z;B=B*4
2140 IF X=Z;B=B*4
2150 IF B=1;B=-1
2160 G=G+B*A:STOP
2170 LOCATE 11,1:BEEP1:PRINT B*A "(" G ")"
2180 IF G<=-10000 THEN BEEP:BEEP1:BEEP:PRINT "HAS PERDIDO"ABS(G)" PELAS! CAMBIA INMEDIATAMENTE DE JUEGO !";:FOR I=1 TO 2500:NEXT I:GOTO 10
2190 GOTO 2020
3000 REM RULETA RUSA
3010 CLS:CLEAR:DIM a$(3)
3030 CLS:BEEP 0
3040 p$="STOP:EXE    "
3050 PRINT p$;
3060 FOR n=1 TO 3
3070 r=FIX(RAN#*3)+FIX(RAN#*2)
3080 a$(n)=CHR$(232+r)
3090 LOCATE 13+(n*2),0
3100 PRINT a$(n);
3110 k$=INKEY$
3120 IF k$=CHR$(13) GOTO 3150
3130 r=r+1:IF r=4 THEN r=0
3140 GOTO 3080
3150 BEEP 1
3160 FOR x=1 TO 20:NEXT x
3170 NEXT n
3180 LOCATE 2,1
3190 IF a$(1)=a$(2) AND a$(2)=a$(3) AND a$(3)=a$(1) GOTO 3250
3200 IF a$(1)=a$(2) OR a$(2)=a$(3) OR a$(3)=a$(1) GOTO 3230
3210 PRINT "Ah... se siente";
3220 GOTO 3260
3230 PRINT "Casi, casi";
3240 GOTO 3260
3250 PRINT "Que maquina eres";
3260 PRINT " (Pulsa EXE)"
3270 GOTO 3030
4000 REM MEMORY
4001 ERASE C
4010 DIM C(15,1):CC=0:TT=0:FOR I=0 TO 15:C(I,0)=0:C(I,1)=0:NEXT I :CLS:PRINT "QUE NIVEL ?           1 FACIL   LUEGO PULSA SPC       2 DIFICIL";
4020 A$=INKEY$:IF A$="" THEN 4020 ELSE IF A$="1" THEN NIV =64 ELSE IF A$="2" THEN NIV =166 ELSE 4020
4030 X=1:Y=1:AX=1:AY=1:DEFCHR$(255)="FFFFFFFFFF"
4040 REM ----- SELECCION DE LAS CARTAS -----
4050 CLS:PRINT " CALCULANDO";:LOCATE 1,1
4060 FOR I=1 TO 30
4070 A=INT(RAN#*15)+1:B=INT(RAN#*2):IF C(A,B)<>0 THEN 4070
4080 C(A,B)=INT((I-1)/2):PRINT CHR$(134);
4090 NEXT
4100 CLS:FOR I=1 TO 15:FOR J=0 TO 1:LOCATE 2*I-1,J:PRINT CHR$(255);:NEXT J,I:GOTO 4180
4110 A$=INKEY$:IF A$="" THEN 4110
4120 IF A$=CHR$(30) THEN AY=Y:AX=X:Y=0:GOTO 4180
4130 IF A$=CHR$(31) THEN AY=Y:AX=X:Y=1:GOTO 4180
4140 IF A$=CHR$(29) AND (X>1) THEN AY=Y:AX=X:X=X-1:GOTO 4180
4150 IF A$=CHR$(28) AND (X<15) THEN AY=Y:AX=X:X=X+1:GOTO 4180
4160 IF A$=" " THEN 4200
4170 GOTO 4110
4180 LOCATE AX*2-2,AY:PRINT " ";:LOCATE AX*2,AY:PRINT " ";:LOCATE X*2-2,Y:PRINT "[";:LOCATE X*2,Y:PRINT "]";
4190 GOTO 4110
4200 DEFCHR$(255)="AA55AA55AA":LOCATE X*2-1,Y:PRINT CHR$(NIV+C(X,Y));:IF F=0 THEN XX=X:YY=Y:F=1:GOTO 4110
4210 DEFCHR$(255)="FFFFFFFFFF":CC=CC+1:F=0:IF C(XX,YY)=C(X,Y) THEN TT=TT+1:GOSUB 4230 ELSE FOR I=1 TO 250:NEXT:LOCATE 2*XX-1,YY:PRINT CHR$(255);:LOCATE 2*X-1,Y:PRINT CHR$(255);
4220 GOTO 4110
4230 IF TT=15 THEN CLS:BEEP:BEEP:PRINT "       MEMORY HAS GANADO          ";:LOCATE 0,1:PRINT "        EN";CC;"INTENTOS";:FOR F=0 TO 1000 :NEXT F:GOTO 10 ELSE 4110
5000 REM MASTERMIND
5010 CLS:NPOS=5
5020 NCHIF=8
5030 DIM TIR(6),PROP(6),TIRBIS(6)
5040 NCOUP=0
5041 REM ----- SORTEO DE LA COMBINACION GANADORA -----
5050 FOR I=1 TO NPOS
5060 TIR(I)=INT(NCHIF*RAN#+1)
5070 NEXT I
5080 GOSUB 5140
5090 GOSUB 5200
5100 NCOUP=NCOUP+1
5110 IF BPOS<NPOS THEN GOTO 5080
5111 REM ----- FIN -----
5120 PRINT
5130 CLS:BEEP1:BEEP1:PRINT "** HAS GANADO EN"NCOUP "INTENTOS **":GOTO 10
5131 REM ----- SUB RUTINA : entrda de la propuesta en PROP(NPOS) -----
5140 CLS:LOCATE 5,0: PRINT "INSERTA 5 CIFRAS ";:INPUT@5;CH$
5150 IF LEN(CH$)<>NPOS THEN BEEP:BEEP: PRINT "**INCORRECTO INSERTA 5 CIFRAS**" :GOTO 5140
5160 FOR I=1 TO NPOS
5170 PROP(I)=VAL(MID$(CH$,I,1))
5180 NEXT I
5190 RETURN
5191 REM ----- SUB RUTINA : analisis de la propuesta -----
5192 REM ----- BPOS : buenas propuestas -----
5193 REM ----- BCHIF : buenos numeros mal colocados -----
5194 REM ----- DUPLICACION DEL SORTEO -----
5200 FOR I=1 TO NPOS
5210 TIRBIS(I)=TIR(I)
5220 NEXT I
5221 REM ----- CUENTA DE LAS BUENAS PROPUESTAS -----
5230 BPOS=0
5240 FOR I=1 TO NPOS
5250 IF PROP(I)=TIRBIS(I) THEN BPOS=BPOS+1:TIRBIS(I)=0:PROP(I)=0
5260 NEXT I
5261 REM ----- CUENTA DE LOS BUENOS NUMEROS MAL COLOCADOS -----
5270 BCHIF=0
5280 FOR I=1 TO NPOS
5290 FOR J=1 TO NPOS
5300 IF PROP(I)=0 THEN 5320
5310 IF PROP(I)=TIRBIS(J) THEN BCHIF=BCHIF+1:PROP(I)=0:TIRBIS(J)=0
5320 NEXT J
5330 NEXT I
5331 REM ----- PRESENTACION DE LOS RESULTADOS -----
5340 BEEP: PRINT TAB(3) STR$(BPOS)" COLOCADOS "STR$(BCHIF)" CORRECTOS"
5350 RETURN
6000 REM JUEGO DE GOLF
6001 CLS:G=0:N=50
6020 PRINT "JUEGO DE GOLF";:GOSUB 6900:PRINT "BEST-SCORE";N;:GOSUB 6900
6030 DIM Q(10):Q(1)=4:Q(2)=5:Q(3)=4:Q(4)=3:Q(5)=4:Q(6)=5:Q(7)=4:Q(8)=3:Q(9)=4
6050 FOR H=1 TO 9
6060 L=Q(H)*20-20+INT(RAN#*10)
6070 PRINT H ":PAR" Q(H) L "M";:GOSUB 6900:GOSUB 6900:GOSUB 6900
6080 GOSUB 6120:G=G+C:PRINT "(" C-Q(H) ")";:GOSUB 6900:GOSUB 6900
6090 NEXT H:IF G<N;N=G:PRINT "** BEST=" G "**":G=0:GOTO 10
6100 PRINT "SCORE=" G
6110 G=0:GOTO 10
6120 C=0
6130 CLS:LOCATE 0,0:PRINT L;" PULSA UNA TECLA";
6140 IF INKEY$<>""THEN 6140
6150 IF INKEY$=""THEN 6150
6155 GOSUB 6900
6160 CLS:LOCATE 0,0:PRINT L;"SHOT!";:C=C+1:FOR I=1 TO 1E99:IF KEY$=""THEN 6200
6170 NEXT I
6200 J=SGN L
6210 FOR B=1 TO I:L=L-J:LOCATE 0,0:PRINT:CLS:LOCATE 0,0: PRINT L;:NEXT B
6220 IF L=0;RETURN
6230 GOTO 6140
6900 FOR I=1 TO 200:NEXT I
6920 PRINT
6930 RETURN
7000 REM LE DEVIN
7010 X=INT(1000*RAN#+1)
7020 SCORE=0
7030 MIN=0
7040 MAX=1000
7050 CLS
7060 DERNIERPETIT=MIN:DERNIERGRAND=MAX
7070 SCORE=SCORE+1
7080 CLS
7085 PRINT "EL NUMERO ESTA ENTRE"DERNIERPETIT"Y"DERNIERGRAND;
7090 FOR F=1 TO 500
7100 NEXT F
7110 LOCATE 0,1
7120 BEEP1
7130 INPUT "QUE PROPONES ? ",PROP
7140 IF PROP<X GOTO 7160
7150 IF PROP>X GOTO 7250 ELSE GOTO 7340
7160 IF PROP<=DERNIERPETIT THEN CLS: PRINT "ESTA PROPUESTA ES INUTIL";
7170 FOR F=1 TO 500
7180 NEXT F
7190 IF PROP>DERNIERPETIT THEN DERNIERPETIT=PROP
7200 CLS
7210 PRINT PROP"NO ES SUFICIENTE";
7220 FOR F=1 TO 500
7230 NEXT F
7240 GOTO 7070
7250 IF PROP>=DERNIERGRAND THEN CLS: PRINT "ESTA PROPUESTA ES INUTIL";
7260 FOR F=1 TO 500
7270 NEXT F
7280 IF PROP<DERNIERGRAND THEN DERNIERGRAND=PROP
7290 CLS
7300 PRINT PROP"ES DEMASIADO GRANDE";
7310 FOR F=1 TO 500
7320 NEXT F
7330 GOTO 7070
7340 BEEP
7350 PRINT "HAS GANADO EN"SCORE"INTENTOS";
7360 FOR F=1 TO 500
7370 NEXT F
7380 GOTO 10
8000 REM EL AHORCADO
8010 CLEAR:CLS
8020 GOSUB 8210
8030 CLS:INPUT "PALABRA";P$
8040 A=LEN(P$):IF A>30 OR A<1 THEN BEEP1:GOTO 8030
8050 DIM F$(30)
8060 FOR I=1 TO A
8070 F$(I)=MID(P$,I,1):NEXT I
8080 CLS:PRINT "(------------------------------";:LOCATE A+1,0:PRINT ")                            ";
8090 LOCATE 0,1:PRINT "[********]";8;
8100 C=0:LOCATE 14,1:P2$=INPUT$(1)
8110 FOR I=1 TO A
8120 IF P2$=F$(I) THEN LOCATE I,0:PRINT F$(I);:D=D+1:C=1:F$(I)=""
8130 NEXT I
8140 IF C=1 THEN 8170
8150 B=B+1:LOCATE B,1:PRINT P2$;:LOCATE 10,1:PRINT 8-B;
8160 IF B=8 THEN 8190 ELSE 8100
8170 IF A=D THEN 8180 ELSE 8100
8180 BEEP1:LOCATE 15,1:PRINT "HAS GANADO !!!":GOTO 8010
8190 BEEP:LOCATE 1,0:PRINT P$;:LOCATE 15,1:PRINT "TE AHORCARON!!!";
8200 LOCATE A+3,0:PRINT CHR$(228);CHR$(228);"CORRECTA":GOTO 8010
8210 REM PRESENTACION
8220 FOR I=1 TO 12
8230 LOCATE 31-I,0:PRINT "o ";
8240 LOCATE I,0:PRINT " A";
8250 NEXT I
8260 FOR T=1 TO 200:NEXT T
8270 FOR I=1 TO 14
8280 PRINT CHR$(30);
8290 LOCATE 31-I,1:PRINT "a ";
8300 LOCATE I,1:PRINT " o";
8310 NEXT I
8320 FOR T=1 TO 200:NEXT T
8330 LOCATE 32-I,1:PRINT " ";
8340 LOCATE 32-I,0:PRINT "a";
8350 LOCATE I,1:PRINT " ";
8360 LOCATE I,0:PRINT "o";
8370 FOR I=30 TO 13 STEP -1
8380 PRINT CHR$(30);
8390 LOCATE I+1,1:PRINT "h ";
8400 LOCATE 30-I,1:PRINT " d";
8410 NEXT I
8420 FOR T=1 TO 200:NEXT T
8430 LOCATE I+2,1:PRINT " ";
8440 LOCATE I+2,0:PRINT "h";
8450 FOR T=1 TO 200:NEXT T
8460 LOCATE 30-I,1:PRINT " ";
8470 LOCATE 30-I,0:PRINT "d";
8480 FOR I=1 TO 11
8490 IF I/2=INT(I/2) THEN Y=0:X=1:GOTO 8520
8500 Y=1:X=0
8510 PRINT CHR$(30);
8520 LOCATE I,Y:PRINT "c";
8530 LOCATE I-1,X:PRINT " ";
8540 NEXT I
8550 FOR I=11 TO 15
8560 LOCATE I,1:PRINT " c";
8570 FOR T=1 TO 5:NEXT T
8580 NEXT I
8590 LOCATE I,1:PRINT "  ";
8600 LOCATE I,0:PRINT "c";
8610 FOR I=30 TO 10 STEP -2
8620 PRINT CHR$(30);
8630 LOCATE I,1:PRINT "r  ";
8640 NEXT I
8650 FOR I=10 TO 16
8660 PRINT CHR$(30);
8670 LOCATE I,1:PRINT " r";
8680 NEXT I
8690 FOR I=17 TO 14 STEP -1
8700 PRINT CHR$(30);
8710 LOCATE I,1:PRINT "r ";
8720 NEXT I
8730 FOR T=1 TO 100:NEXT T
8740 LOCATE 14,1:PRINT " r";
8750 FOR T=1 TO 100:NEXT T
8760 LOCATE 13,0:PRINT "   ";:LOCATE 12,0:PRINT "Aho";
8770 FOR T=1 TO 200:NEXT T
8780 I=15
8790 LOCATE I,1:PRINT " ";
8800 LOCATE I,0:PRINT "r";
8810 FOR T=1 TO 100:NEXT T
8820 LOCATE 10,1:PRINT "by O.Andrade";
8830 FOR I=1 TO 3
8840 BEEP 1:FOR T=1 TO 20:NEXT T
8850 NEXT I
8860 BEEP 0:FOR T=1 TO 20:NEXT T
8870 BEEP 1:FOR T=1 TO 20:NEXT T
8880 STOP
8890 RETURN
9000 REM JUEGO DEL GUSANITO
9010 PRINT "Q  PARA QUE SUBA EL GUSANITO    A  PARA QUE BAJE";
9020 FOR F=1 TO 555
9030 NEXT F
9040 D=0:E=0:F=0:G=0:H=0:I=0:J=0:K=0:Y=0
9050 CLS
9060 DEFCHR$(252)="B9557555B9":DEFCHR$(253)="3945554539":DEFCHR$(254)="397D6D7D39"
9070 A=0:B=31:C=1
9080 FOR X=A TO B STEP C
9090 A$=INKEY$
9100 IF A$="A" AND Y<>1 THEN Y=Y+1
9110 IF A$="Q" AND Y<>0 THEN Y=Y-1
9120 CLS
9130 LOCATE J,K
9140 PRINT CHR$(254);
9150 LOCATE H,I
9160 PRINT CHR$(253);
9170 LOCATE F,G
9180 PRINT CHR$(254);
9190 LOCATE D,E
9200 PRINT CHR$(253);
9210 LOCATE X,Y
9220 PRINT CHR$(252);
9230 J=H:K=I:H=F:I=G:F=D:G=E:D=X:E=Y
9240 NEXT X
9250 IF A=31 THEN 9070 ELSE A=31:B=0:C=-1
9260 GOTO 9080

