10 REMark MONOPOLY                             BIT SOFT 5/11/1994
11 REMark International version by Cesar Hernandez Bano 19/10/2020
20 OPEN#7,con_195X10a52X44_32:OPEN#8,con_195X10a262X44_32:OPEN#9,con_195X10a52X135_32:OPEN#10,con_195X10a262X135_32
30 OPEN#3,CON_210X92a45X10_32:OPEN#4,CON_210X92a255X10_32:OPEN#5,CON_210X92a45X102_32:OPEN#6,CON_210X92a255X102_32:WINDOW 512,193,0,0:WINDOW#2;432,175,45,18:BORDER 0:PAPER 0:INK 7:WINDOW#0;420,60,45,195:PAPER#0;4:BORDER#0;4,3:PAPER#2;0:INK#2;7:INK#0;0:CLS#0
40 MODE 8:FOR N=3 TO 6:SCALE#N;208,0,0:END FOR N:CLS:AT 9,7:FLASH 1:PRINT "CARGANDO DATOS...":FLASH 0:graficos=RESPR(64):LBYTES mdv1_udg,graficos:empieza=170
50 carac=RESPR(2+9*78):LBYTES mdv1_monopoly_udg,carac+2:FOR N=3 TO 6:CALL graficos,N,carac,empieza,78:END  FOR N
60 DIM PRE(42,11):DIM TIPO%(42):DIM CALLE$(41,38):DIM JUG%(5):DIM JUGADO$(5,20):DIM DINERO(4):VALOR%=0:JUGADORES%=2:OPEN_IN #15;MDV1_MONO_SUERTE:INPUT#15;totalsuerte:DIM SUERTE$(totalsuerte+1,200):FOR N=1 TO totalsuerte:INPUT#15;SUER$:SUERTE$(N)=SUER$
70 CLOSE#15:OPEN_IN #15;MDV1_MONO_COMU:INPUT#15;TOTALcomu:DIM COMU$(TOTALcomu+1,150):FOR N=1 TO TOTALcomu:INPUT#15;SUER$:COMU$(N)=SUER$:END FOR N
80 CLOSE#15:OPEN_IN#15;MDV1_MONO_CASAS:FOR N=0 TO 39:INPUT#15;A$:CALLE$(N)=A$:INPUT#15;D%:TIPO%(N)=D%:FOR M=3 TO 11:INPUT#15;D:PRE(N,M-2)=D:END FOR M:END FOR N
90 MODE 4:CLOSE#15
100 APARC=0:PRE(39,9)=42000:PRE(39,7)=21000:PRE(39,8)=21000:REMark CORRECION DE FALLO DE FICHERO MONO_CASAS:VIENES_DE=0
110 PRE(27,9)=26000:PRE(27,8)=15000:PRE(27,7)=13000:REMark CORRECION DE FALLO DE MONO_CASAS
120 PAPER 0:INK 7:CLS:CLS#0:DINER=150000:AGUAS=29:DIM carcel%(5):ELECTRICIDAD=12:PRE(AGUAS,9)=15000:PRE(ELECTRICIDAD,9)=15000:PRE(AGUAS,7)=7500:PRE(ELECTRICIDAD,7)=7500
121 CASAS%=35:HOTELES%=10
130 RANDOMISE:APARCPLUS=0:CSIZE 3,1:UNDER 1:AT 1,12:PRINT "OPCIONES":UNDER 0
140 CSIZE 3,0:AT 5,4:PRINT "1 . NUMERO DE CASAS:"!CASAS%
150 AT 7,4:PRINT "2 . NUMERO DE HOTELES:"!HOTELES%
160 AT 9,4:PRINT "3 . NUMERO DE JUGADORES:"!JUGADORES%
170 AT 11,4:PRINT "4 . EMPEZAR JUEGO"
180 AT 13,4:PRINT "5 . DINERO INICIAL:";DINER
190 AT 18,4:PRINT "ELIJA OPCION:"
200 AT#0;0,0:CSIZE#0;3,1:INK#0;2,4,0:STRIP#0;2,6,3:PRINT#0;"MONOPOLY":STRIP#0;7:INK#0;2,6,1:AT#0;1,0:PRINT#0;"BIT SOFT 1992,1993"
210 AT#0;0,0:CSIZE#0;0,0:INK#0;0
220 REPeat elegir
230 opcion$=dial$(17,18,CODE("1"),CODE("5"),1,1):opcion=opcion$
240 SELect ON opcion
250 =1
260 AT 5,25:CLS 4:CASAS%=dial$(25,5,CODE("0"),CODE("9"),2,1)
270 =2
280 AT 7,27:CLS 4:HOTELES%=dial$(27,7,CODE("0"),CODE("9"),2,1)
290 =3
300 AT 9,29:CLS 4:JUGADORES%=dial$(29,9,CODE("2"),CODE("4"),1,1)
310 =4
320 EXIT elegir
330 =5
340 AT 13,23:CLS 4:DINER=dial$(23,13,CODE("0"),CODE("9"),6,1)
350 END SELect 
360 END REPeat elegir:FOR N=1 TO JUGADORES%:DINERO(N)=DINER:END FOR N
370 FOR N=7 TO 10:INK#N;0:PAPER#N;5:CLS#N:END FOR N:CLS#0
380 CSIZE 0,0:CLS
390 FOR N=0 TO 39
400 IF (CALLE$(N)(1 TO 13)="FERROCARRILES" OR CALLE$(N)(1 TO 8)="ESTACION") AND (TIPO%(N)=9) AND N<>12 AND N<>29 THEN TIPO%(N)=3
410 IF TIPO%(N)=9 AND (N=12 OR N=29) THEN TIPO%(N)=6
420 IF TIPO%(N)=9 AND CALLE$(N)(1 TO 13)<>"FERROCARRILES" AND CALLE$(N)(1 TO 8)<>"ESTACION" AND N<>12 AND N<>29 THEN TIPO%(N)=0
430 PRE(N,0)=0:PRE(N,10)=0
440 END FOR N
450 PONE_VENTANAS
460 FOR N=1 TO JUGADORES%
470 JUGADO$(N)=dial$(0,0,32,122,20,N+2)
480 END FOR N
490 IF JUGADORES%<4 THEN FOR M=N+1 TO 4:BORDER#M+2;0:PAPER#M+2;0:CLS#M+2:END FOR M
500 CSIZE #0;3,1:UNDER#0;1:AT#0;0,5:PRINT#0;"TURNO DE TIRO":UNDER#0;0:CSIZE#0;0,0
510 DIM TIRO(JUGADORES%+1):FOR N=1 TO JUGADORES%
520 FOR M=1 TO RND(1 TO 25)
530 TIRO(N)=RND(1 TO 6)
540 BEEP 400,RND (10 TO 180):END FOR M
550 END FOR N
560 JUGA_SALE=1
570 FOR N=1 TO JUGADORES%
580 IF TIRO(JUGA_SALE)<TIRO(N) THEN JUGA_SALE=N
590 END FOR N
600 DIM TIRO(0):FOR N=1 TO 600:END FOR N
610 CLS#0:CSIZE #0;3,1:AT #0;0,0:PAPER#0;4:PRINT#0;"SALE PRIMERO:"\JUGADO$(JUGA_SALE)
620 BEEP 32767,30,RND(100 TO 200),32,15,RND(1 TO 15),RND(1 TO 15),4:AT#0;0,0:CSIZE#0;0,0:FOR N=1 TO JUGADORES%:JUG%(N)=0:END FOR N:FOR N=0  TO 39:PRE(N,0)=0:PRE(N,10)=0:END FOR N:CLS#0
630 FOR N=1 TO JUGADORES%:pone_casilla(N):END FOR N
640 JUG_JUEG%=JUGADORES%
650 DIM carcel%(5):DIM PASSAL%(JUGADORES%)
660 TURNO=JUGA_SALE:DIM DADO%(3):VIENES_DE=0:REPeat HACE_TURNO
670 CLS#0
680 IF JUG_JUEG%=1 THEN HAS_GANADO
690 IF JUG%(TURNO)=-2 THEN 
700 proxturno
710 NEXT HACE_TURNO
720 END IF 
730 CLS#0
740 CSIZE#0;0,0:PRINT#0;"TU TURNO:";JUGADO$(TURNO)
750 REPeat hace_cosas
760 AT#0;1,0:PRINT#0;"´(T)irar dados  (H)ipotecar (L)evantar hipoteca (V)ender propiedad (I)nventario";:IF carcel%(TURNO)THEN PRINT#0;" (S)alir de prisi–n?";:ELSE PRINT#0;"?"
770 A$=INKEY$(-1)
780 IF A$=="I" THEN 
790 AT#0;0,0:CLS#0;2:BUSCA_TUS_CASAS TURNO,4:REMark 4 Inventario
800 END IF 
810 IF A$=="V" THEN 
820 AT#0;0,0:CLS#0;2:BUSCA_TUS_CASAS TURNO,3:REMark 3 Vender propiedad
830 EXIT hace_cosas
840 END IF 
850 IF A$=="L" THEN 
860 AT#0;0,0:CLS#0;2:BUSCA_TUS_CASAS TURNO,2:REMark 2 Levantar hipoteca
870 EXIT hace_cosas
880 END IF 
890 IF A$=="T" THEN EXIT hace_cosas
900 IF A$=="S" THEN 
910 IF carcel%(TURNO)=1 THEN quitarcarcel:DINERO(TURNO)=RESTA(DINERO(TURNO),5000):IF DINERO(TURNO)<0 THEN BANCARROTA:proxturno:NEXT HACE_TURNO
920 EXIT hace_cosas
930 END IF 
940 IF A$=="H" THEN 
950   AT#0;0,0:CLS#0;2:BUSCA_TUS_CASAS TURNO,1:REMark 1 HIPOTECAR
960 EXIT hace_cosas
970 END IF 
980 END REPeat hace_cosas
990 AT#0;0,0:CLS#0
1000 CSIZE#0;1,0:PRINT#0;"TU TURNO:";JUGADO$(TURNO)
1010 CSIZE#0;1,0:AT#0;1,0:CLS #0;2:AT#0;1,0:PRINT#0;"DADO 1:";TO 10;"DADO 2:":TIRADA%=0
1020 FOR TIRA_DADOS=1 TO 2
1030 FOR AZAR=1 TO RND(2 TO 20)
1040 IF TIRA_DADOS=1 THEN AT #0;1,7:ELSE AT#0;1,17
1050 DADO%(TIRA_DADOS)=RND(1 TO 6):PRINT#0;DADO%(TIRA_DADOS):BEEP 600,RND(1 TO 30),RND(50 TO 200),RND(1 TO 40),RND(0 TO 15),RND(1 TO 15),RND(1 TO 15)
1060 END FOR AZAR
1070 END FOR TIRA_DADOS
1080 IF DADO%(1)=DADO%(2) AND carcel%(TURNO)=1 THEN quitarcarcel
1090 IF carcel%(TURNO)=1 THEN proxturno:NEXT HACE_TURNO
1100 IF DADO%(1)=DADO%(2) THEN TIRADA%=TIRADA%+DADO%(1)+DADO%(2):GO TO 1020
1110 TIRADA%=TIRADA%+DADO%(1)+DADO%(2):CSIZE#0;1,0:AT#0;2,0:PRINT #0;JUGADO$(TURNO);" AVANZAS ";TIRADA%;" CASILLAS":CSIZE#0;0,0
1120 JUG%(TURNO)=JUG%(TURNO)+TIRADA%:IF JUG%(TURNO)>40 THEN JUG%(TURNO)=JUG%(TURNO)-40:DINERO(TURNO)=SUMA(DINERO(TURNO),20000):AT#0;3,0:PRINT#0;"Recibes 20000 pts por pasar por SALIDA":bucleespera 500:AT#0;1,0:CLS#0;2
1130 IF JUG%(TURNO)=40 THEN JUG%(TURNO)=0:GO TO 1190
1140 IF JUG%(TURNO)-TIRADA%=0 AND PASSAL%(TURNO) THEN DINERO(TURNO)=SUMA(DINERO(TURNO),20000):AT#0;3,0:PRINT#0;"Recibes 20000 pts por pasar por SALIDA":bucleespera 500:AT#0;1,0:CLS#0;2
1150 IF JUG%(TURNO)-TIRADA%=0 AND NOT(PASSAL%(TURNO)) THEN PASSAL%(TURNO)=1
1160 IF JUG%(TURNO)=-2 THEN proxturno:NEXT HACE_TURNO
1170 IF JUG%(TURNO)>40 THEN JUG%(TURNO)=JUG%(TURNO)-40:DINERO(TURNO)=SUMA(DINERO(TURNO),20000):AT#0;3,0:PRINT#0;"Recibes 20000 pts por pasar por SALIDA":bucleespera 500:AT#0;1,0:CLS#0;2
1180 IF JUG%(TURNO)=40 THEN JUG%(TURNO)=0
1190 REMark rutina de control de casilla donde se cae
1200 tipo_calle=TIPO%(JUG%(TURNO))
1210 pone_casilla(TURNO):AT#0;0,0:CLS#0;2:SELect ON tipo_calle
1220 =0
1230 IF PRE(JUG%(TURNO),0)=TURNO THEN 
1240 AT#0;0,0:CLS#0;2
1250 GO SUB 18290
1260 IF DINERO(TURNO)<0 THEN BANCARROTA
1270 END IF 
1280 IF PRE(JUG%(TURNO),0)<>TURNO AND PRE(JUG%(TURNO),0)<>0 THEN 
1290 AT#0;1,0:PRINT #0;CALLE$(JUG%(TURNO));" pertenece a:";JUGADO$(PRE(JUG%(TURNO),0))\"y le tienes que pagar ";:a_pagar=PRE(JUG%(TURNO),PRE(JUG%(TURNO),10)+1):PRINT#0;a_pagar;" pts"
1300 DINERO(TURNO)=RESTA (DINERO(TURNO),a_pagar)
1310 TURNO2=TURNO:TURNO=PRE(JUG%(TURNO),0):DINERO(TURNO)=SUMA (DINERO(TURNO),a_pagar):TURNO=TURNO2
1320 bucleespera 700
1330 IF DINERO(TURNO)<0 THEN BANCARROTA
1340 END IF 
1350 IF JUG%(TURNO)=-2 THEN proxturno:NEXT HACE_TURNO
1360 IF  PRE(JUG%(TURNO),0)=0 AND PRE(JUG%(TURNO),10)=0 THEN 
1370 AT#0;1,0:PRINT#0;CALLE$(JUG%(TURNO))\" su valor es:";PRE(JUG%(TURNO),9);" pts":AT#0;3,0:PRINT#0;"C:Comprar terreno S:siguiente turno"
1380 REPeat leerteclaleida
1390 A$=INKEY$(-1)
1400 IF A$=="S" THEN 
1410 proxturno
1420 NEXT HACE_TURNO
1430 END IF 
1440 IF A$=="C" THEN 
1450 DINERO(TURNO)=RESTA(DINERO(TURNO),PRE(JUG%(TURNO),9))
1460 IF DINERO(TURNO)<0 THEN BANCARROTA
1470 IF JUG%(TURNO)=-2 THEN proxturno:NEXT HACE_TURNO:ELSE PRE(JUG%(TURNO),0)=TURNO
1480 EXIT leerteclaleida
1490 END IF 
1500 END REPeat leerteclaleida
1510 END IF 
1520 =1
1530 RANDOMISE:FOR AZAR=0 TO RND(1 TO 10):carta=RND(1 TO totalsuerte)
1540 AT#0;1,0:PRINT#0;TO 5;"SUERTE:"\SUERTE$(carta)
1550 bucleespera 1000
1560 SELect ON carta
1570 =1
1580 IF JUG%(TURNO)>17 THEN DINERO(TURNO)=SUMA(DINERO(TURNO),20000)
1590 JUG%(TURNO)=17
1600 =2
1610 TURNO2=TURNO:FOR N=1 TO JUGADORES%-1
1620 IF JUG%(N)=-2 THEN NEXT N
1630 TURNO=TURNO+1
1640 IF TURNO>JUGADORES% THEN TURNO=1
1650 IF TURNO=TURNO2 THEN TURNO=TURNO+1:IF TURNO>JUGADORES% THEN EXIT N
1660 DINERO(TURNO)=RESTA(DINERO(TURNO),5000)
1670 turno3=TURNO:TURNO=TURNO2:DINERO(TURNO)=SUMA(DINERO(TURNO),5000):TURNO=turno3
1680 END FOR N:TURNO=TURNO2
1690 =3
1700 IF JUG%(TURNO)>11 THEN DINERO(TURNO)=SUMA(DINERO(TURNO),20000)
1710 JUG%(TURNO)=11
1720 =4
1730 IF JUG%(TURNO)>7 THEN DINERO(TURNO)=SUMA(DINERO(TURNO),20000)
1740 JUG%(TURNO)=7
1750 =5
1760 DINERO(TURNO)=SUMA(DINERO(TURNO),5000)
1770 =6
1780 JUG%(TURNO)=28
1790 =7
1800 DINERO(TURNO)=RESTA(DINERO(TURNO),2500):APARCPLUS=2500
1810 =8
1820 DINERO(TURNO)=RESTA(DINERO(TURNO),3000):APARCPLUS=3000
1830 =9
1840 FOR NNNN=1 TO 39
1850 IF PRE(NNNN,0)=TURNO AND PRE(NNNN,10)<5 AND PRE(NNNN,10)>0 THEN DINERO(TURNO)=RESTA(DINERO(TURNO),3000*(PRE(NNNN,10))):APARCPLUS=APARCPLUS+(3000*(PRE(NNNN,10)))
1860 IF TIPO%(NNNN)=0 AND PRE(NNNN,0)=TURNO AND PRE(NNNN,10)=5 THEN DINERO(TURNO)=RESTA(DINERO(TURNO),10500):APARCPLUS=APARCPLUS+10500
1870 END FOR NNNN
1880 =10
1890 JUG%(TURNO)=10:carcel%(TURNO)=1:encarcelado
1900 =11
1910 JUG%(TURNO)=0
1920 =12
1930 DINERO(TURNO)=SUMA(DINERO(TURNO),15000)
1940 =13
1950 DINERO(TURNO)=RESTA(DINERO(TURNO),15000):APARCPLUS=15000
1960 =14
1970 FOR NNNN=1 TO 39
1980 IF PRE(NNNN,0)=TURNO AND PRE(NNNN,10)<5 AND PRE(NNNN,10)>0 THEN DINERO(TURNO)=RESTA(DINERO(TURNO),4000*(PRE(NNNN,10))):APARCPLUS=APARCPLUS+(4000*(PRE(NNNN,10)))
1990 IF PRE(NNNN,0)=TURNO AND PRE(NNNN,10)=5 THEN DINERO(TURNO)=RESTA(DINERO(TURNO),11000):APARCPLUS=APARCPLUS+11000
2000 END FOR NNNN
2010 =15
2020 JUG%(TURNO)=JUG%(TURNO)-3
2030 IF JUG%(TURNO)<0 THEN JUG%(TURNO)=40-JUG%(TURNO)
2040 END SELect 
2050 IF DINERO(TURNO)<0 THEN BANCARROTA
2060 IF DINERO(TURNO)>0 THEN APARC=APARC+APARCPLUS
2070 APARCPLUS=0:IF JUG%(TURNO)=-2 THEN proxturno:NEXT HACE_TURNO
2080 pone_casilla(TURNO):bucleespera 100:CLS#0
2090 IF VIENES_DE=1 THEN RETurn 
2100 =2
2110 RANDOMISE:FOR AZAR=0 TO RND(1 TO 10):carta=RND(1 TO TOTALcomu)
2120 AT#0;1,0:PRINT#0;TO 5;"CAJA COMUNIDAD"
2130 VIENES_DE=0:PRINT #0;COMU$(carta)
2140 bucleespera 1000
2150 SELect ON carta
2160 =1
2170 PRINT#0;"´(C)oger carta o (P)agar?"
2180 REPeat leee
2190 A$=INKEY$(-1)
2200 IF A$=="C" THEN EXIT leee
2210 IF A$=="P" THEN EXIT leee
2220 END REPeat leee
2230 IF A$=="P" THEN 
2240 DINERO(TURNO)=RESTA(DINERO(TURNO),1500):APARCPLUS=1500
2250 END IF 
2260 IF A$=="C" THEN AT#0;0,0:CLS#0;2:GO SUB 1530
2270 =2
2280 DINERO(TURNO)=RESTA(DINERO(TURNO),10000):APARCPLUS=10000
2290 =3
2300 JUG%(TURNO)=JUG%(TURNO)+4
2310 IF JUG%(TURNO)>39 THEN JUG%(TURNO)=JUG%(TURNO)-40:DINERO(TURNO)=SUMA(DINERO(TURNO),20000)
2320 =4
2330 JUG%(TURNO)=1
2340 =5
2350 DINERO(TURNO)=SUMA(DINERO(TURNO),3000)
2360 =6
2370 JUG%(TURNO)=10:carcel%(TURNO)=1:encarcelado
2380 =7
2390 DINERO(TURNO)=SUMA(DINERO(TURNO),5000)
2400 =8
2410 DINERO(TURNO)=SUMA(DINERO(TURNO),20000)
2420 =9
2430 DINERO(TURNO)=RESTA(DINERO(TURNO),5000):APARCPLUS=5000
2440 =10
2450 DINERO(TURNO)=SUMA(DINERO(TURNO),10000)
2460 =11
2470 JUG%(TURNO)=0
2480 =12
2490 DINERO(TURNO)=RESTA(DINERO(TURNO),5000):APARCPLUS=5000
2500 =13
2510 DINERO(TURNO)=SUMA(DINERO(TURNO),5000)
2520 =14
2530 JUG%(TURNO)=JUG%(TURNO)+2
2540 IF JUG%(TURNO)>39 THEN JUG%(TURNO)=JUG%(TURNO)-40
2550 =15
2560 DINERO(TURNO)=SUMA(DINERO(TURNO),1000)
2570 END SELect 
2580 IF DINERO(TURNO)<0 THEN BANCARROTA
2590 IF DINERO(TURNO)>0 THEN APARC=APARC+APARCPLUS
2600 APARCPLUS=0
2610 IF DINERO(TURNO)<>-2 THEN pone_casilla(TURNO)
2620 REMark tipo 3
2630 =3
2640 IF PRE(JUG%(TURNO),0)=TURNO THEN 
2650 AT#0;0,0:CLS#0;2
2660 GO SUB 18290
2670 IF DINERO(TURNO)<0 THEN BANCARROTA:proxturno:NEXT HACE_TURNO
2680 END IF 
2690 IF PRE(JUG%(TURNO),0)<>0 AND PRE(JUG%(TURNO),0)<>TURNO THEN 
2700 AT#0;2,0:PRINT#0;CALLE$(JUG%(TURNO));" pertenece a:";JUGADO$(PRE(JUG%(TURNO),0))\"y le tienes que pagar ";:a_pagar=PRE(JUG%(TURNO),PRE(JUG%(TURNO),10)+1):PRINT#0;a_pagar;" pts"
2710 DINERO(TURNO)=RESTA(DINERO(TURNO),a_pagar)
2720 TURNO2=TURNO:TURNO=PRE(JUG%(TURNO2),0):DINERO(TURNO)=SUMA(DINERO(TURNO),a_pagar):TURNO=TURNO2
2730 IF DINERO(TURNO)<0 THEN BANCARROTA
2740 bucleespera 450
2750 END IF 
2760 IF PRE(JUG%(TURNO),0)=0 THEN 
2770 AT#0;2,0:PRINT #0;CALLE$(JUG%(TURNO));" su valor es:";PRE(JUG%(TURNO),9);" pts"\"´(C)omprar estaci–n+ferrocarril o (S)iguiente turno?"
2780 REPeat leida
2790 A$=INKEY$(-1)
2800 IF A$=="C" THEN EXIT leida
2810 IF A$=="S" THEN EXIT leida
2820 END REPeat leida
2830 IF A$=="S" THEN proxturno:NEXT HACE_TURNO
2840 IF A$=="C" THEN 
2850 DINERO(TURNO)=RESTA(DINERO(TURNO),PRE(JUG%(TURNO),9))
2860 IF DINERO(TURNO)<0 THEN BANCARROTA
2870 IF JUG%(TURNO)=-2 THEN proxturno:NEXT HACE_TURNO:ELSE PRE(JUG%(TURNO),0)=TURNO
2880 END IF 
2890 END IF 
2900 REMark casilla de prisi–n
2910 =4
2920 AT#0;1,0:UNDER#0;1:CSIZE#0;2,0:PRINT#0;"SOLO SE ADMITEN VISITAS":CSIZE#0;0,0:UNDER#0;0
2930 bucleespera 250
2940 REMark CASILLA DE APARCAMIENTO
2950 =5
2960 AT#0;1,0:PRINT#0;JUGADO$(TURNO);" recibes :";APARC;" pts"
2970 DINERO(TURNO)=SUMA(DINERO(TURNO),APARC):APARC=0:bucleespera 900
2980 REMark casilla de aguas o electricidad
2990 =6
3000 IF JUG%(TURNO)=AGUAS OR JUG%(TURNO)=ELECTRICIDAD THEN 
3010 IF PRE(JUG%(TURNO),0)=0 THEN 
3020 IF JUG%(TURNO)=AGUAS THEN ff=AGUAS
3030 IF JUG%(TURNO)=ELECTRICIDAD THEN ff=ELECTRICIDAD
3040 AT#0;2,0:PRINT#0;CALLE$(ff);" su valor es:";:valor=PRE(JUG%(TURNO),9):PRINT#0;valor;" pts"\"´(C)omprar o (S)iguiente turno?"
3050 REPeat t
3060 A$=INKEY$(-1)
3070 IF A$=="C" THEN EXIT t
3080 IF A$=="S" THEN EXIT t
3090 END REPeat t
3100 IF A$=="S" THEN proxturno:NEXT HACE_TURNO
3110 IF A$=="C" THEN 
3120 DINERO(TURNO)=RESTA(DINERO(TURNO),valor)
3130 IF DINERO(TURNO)<0 THEN BANCARROTA
3140 IF JUG%(TURNO)=-2 THEN proxturno:NEXT HACE_TURNO:ELSE PRE(JUG%(TURNO),0)=TURNO
3150 END IF 
3160 END IF 
3170   IF PRE(JUG%(TURNO),0)<>0 AND PRE(JUG%(TURNO),0)<>TURNO THEN 
3180   resultado=tiradados
3190   AT#0;2,0:PRINT#0;JUGADO$(TURNO);" tienes que pagar a";:TURNO2=PRE(JUG%(TURNO),0):PRINT#0;" ";JUGADO$(TURNO2):AT#0;3,0:PRINT#0;resultado;" * ";PRE(JUG%(TURNO),1);" = ";:resultado2=resultado*PRE(JUG%(TURNO),1):PRINT#0;resultado2;" pts"
3200   turno3=TURNO:TURNO=TURNO2:DINERO(TURNO)=SUMA(DINERO(TURNO),resultado2):TURNO=turno3:DINERO(TURNO)=RESTA(DINERO(TURNO),resultado2)
3210   IF DINERO(TURNO)<0 THEN BANCARROTA
3220   bucleespera 480
3230   END IF 
3240   END IF 
3250 REMark casilla de pagar:7
3260 =7
3270 AT#0;1,0:PRINT#0;"Tienes que pagar ";:a_pagar=PRE(JUG%(TURNO),1):PRINT#0;a_pagar;" pts":DINERO(TURNO)=RESTA(DINERO(TURNO),a_pagar):APARC=APARC+a_pagar
3280 IF DINERO(TURNO)<0 THEN BANCARROTA
3290 bucleespera 460
3300 =8
3310 AT#0;1,0:PRINT#0;"´Pagar el 10 % o 20000 pesetas(1 o 2)?"
3320 REPeat uu8
3330 A$=INKEY$(-1)
3340 IF A$="1" THEN EXIT uu8
3350 IF A$="2" THEN EXIT uu8
3360 END REPeat uu8
3370 IF A$="1" THEN DINERO(TURNO)=RESTA(DINERO(TURNO),INT(DINERO(TURNO)/10)):APARC=APARC+INT(DINERO(TURNO)/10)
3380 IF A$="2" THEN DINERO(TURNO)=RESTA(DINERO(TURNO),20000):APARC=APARC+20000
3390 IF DINERO(TURNO)<0 THEN BANCARROTA
3400 END SELect 
3410 proxturno
3420 END REPeat HACE_TURNO
16000 DEFine PROCedure pone_casilla(jugadd):LOCal casi,e4,men$:casi=JUG%(jugadd):CLS#jugadd+2
16010 IF JUG%(jugadd)<>-2 THEN 
16020 LINE #jugadd+2;0,0 TO 100,0 TO 100,83 TO 0,83 TO 0,0
16030 AT#jugadd+2;0,0:PRINT#jugadd+2;JUGADO$(jugadd)
16040 AT #jugadd+2;1,0:PRINT #jugadd+2;"Dinero:";DINERO(jugadd)\"Casilla:";JUG%(jugadd):AT#jugadd+6;0,0:PRINT#jugadd+6;CALLE$(JUG%(jugadd))
16050 men$="Que pertenecen":IF PRE(casi,0)<>0 AND (TIPO%(casi)=0 OR TIPO%(casi)=9 OR TIPO%(casi)=3) THEN 
16060 IF TIPO%(casi)<>9 THEN 
16070 AT #jugadd+2;4,10:PRINT #jugadd+2;"Hay ";
16080 IF PRE(casi,10)=5 AND TIPO%(casi)<>3 THEN PRINT #jugadd+2;"Un hotel":men$="Que pertenece"
16090 IF PRE(casi,10)<5 AND PRE(casi,10)>0 AND TIPO%(casi)<>3 THEN PRINT #jugadd+2;PRE(casi,10);" casas":IF PRE(casi,10)=1 THEN men$="Que pertenece"
16100 IF PRE(casi,10)=0 AND TIPO%(casi)<>3 THEN PRINT #jugadd+2;"Un terreno":men$="Que pertenece"
16110 IF PRE(casi,10)=0 AND TIPO%(casi)=3 THEN PRINT #jugadd+2;"Una estacion":men$="Que pertenece"
16120 IF PRE(casi,10)<4 AND PRE(casi,10)>0 AND TIPO%(casi)=3 THEN PRINT #jugadd+2;PRE(casi,10)+1;" estaciones"
16130 AT#jugadd+2;5,10:PRINT#jugadd+2;men$;" a:":AT#jugadd+2;6,10:PRINT #jugadd+2;JUGADO$(PRE(casi,0))
16140 AT#jugadd+2;7,10:PRINT#jugadd+2;"Valor: ";PRE(casi,PRE(casi,10)+1);" pts"
16150 END IF 
16160 IF TIPO%(casi)=9 THEN AT#jugadd+2;2,14:UNDER#jugadd+2;1:PRINT#jugadd+2;"HIPOTECADA":UNDER#jugadd+2;0
16170 END IF :AT#jugadd+2;0,0
16180 e4=TIPO%(casi):SELect ON e4
16190 =-1
16200 GRAFICO jugadd,7
16210 =1
16220 GRAFICO jugadd,6
16230 =2
16240 GRAFICO jugadd,4
16250 =3
16260 GRAFICO jugadd,0
16270 =4
16280 GRAFICO jugadd,1
16290 =5
16300 GRAFICO jugadd,5
16310 =6
16320 IF casi=12 THEN GRAFICO jugadd,2:ELSE GRAFICO jugadd,3
16330 =0
16340 pone_casas jugadd,casi
16350 END SELect 
16360 IF carcel%(jugadd)=1 THEN encarcelado
16370 END IF 
16380 END DEFine pone_casilla
16390 DEFine FuNction dial$(x1,y1,minimo,maximo,longitud,can):LOCal sali$,tec$,contador,cursor$
16400 IF can>2 AND can<7 THEN cursor$=CHR$(empieza+68):ELSE cursor$="¹"
16410 AT #can;y1,x1:PRINT #can;cursor$:sali$=""
16420 contador=0:REPeat leetecla
16430 tec$=INKEY$(-1)
16440 IF CODE(tec$)=10 AND contador>0 THEN EXIT leetecla
16450 IF CODE(tec$)=10 AND contador<0 THEN sali$=CHR$(minimo):EXIT leetecla
16460 IF CODE(tec$)=192 AND contador>0 THEN x1=x1-1:contador=contador-1:AT #can;y1,x1:PRINT #can;cursor$;" ":sali$=sali$(1 TO (LEN(sali$)-1)):BEEP 900,50:NEXT leetecla
16470 IF CODE(tec$)=192 AND contador<0 THEN BEEP 900,10:NEXT leetecla
16480 IF CODE(tec$)<minimo OR CODE(tec$)>maximo THEN BEEP 900,30:NEXT leetecla
16490 AT #can;y1,x1:PRINT #can;tec$;cursor$:BEEP 900,200:contador=contador+1
16500 sali$=sali$&tec$:x1=x1+1
16510 IF contador=longitud THEN EXIT leetecla
16520 END REPeat leetecla
16530 AT #can;y1,x1:PRINT #can;" ":RETurn sali$
16540 END DEFine dial$
16550 DEFine PROCedure GRAFICO(Jjj,NUMGRAF)
16560 LOCal NN,NNN
16570 NN=Jjj+2
16580 CSIZE#NN;3,0:OVER#NN;-1:INK#NN;7:SELect ON NUMGRAF
16590 =0
16600 NNN=empieza:CURSOR #NN;1,54:PRINT #NN;CHR$(NNN):CURSOR #NN;11,54:PRINT #NN;CHR$(NNN+1):CURSOR #NN;21,54:PRINT #   NN;CHR$(NNN+2):CURSOR #NN;31,54:PRINT #NN;CHR$(NNN+3)
16610 CURSOR #NN;1,63:PRINT #NN;CHR$(NNN+4):CURSOR #NN;11,63:PRINT #NN;CHR$(NNN+5):CURSOR #NN;21,63:PRINT #NN;CHR$(NNN+6):CURSOR #NN;31,63:PRINT #NN;CHR$(NNN+7)
16620 =1
16630 NNN=empieza+8:CURSOR#NN;1,54:PRINT#NN;CHR$(NNN):CURSOR#NN;11,54:PRINT#NN;CHR$(NNN+1):CURSOR#NN;21,54:PRINT#NN;CHR$(NNN+2):CURSOR#NN;31,54:PRINT#NN;CHR$(NNN+3):CURSOR#NN;41,54:PRINT#NN;CHR$(NNN+4)
16640 CURSOR#NN;1,63:PRINT#NN;CHR$(NNN+5):CURSOR#NN;11,63:PRINT#NN;CHR$(NNN+6):CURSOR#NN;21,63:PRINT#NN;CHR$(NNN+7):CURSOR#NN;31,63:PRINT#NN;CHR$(NNN+8):CURSOR#NN;41,63:PRINT#NN;CHR$(NNN+9)
16650 CURSOR#NN;1,72:PRINT#NN;CHR$(NNN+10):CURSOR#NN;11,72:PRINT#NN;CHR$(NNN+11):CURSOR#NN;21,72:PRINT#NN;CHR$(NNN+12):CURSOR#NN;31,72:PRINT#NN;CHR$(NNN+13):CURSOR#NN;41,72:PRINT#NN;CHR$(NNN+14)
16660 =2
16670 NNN=empieza+23:CURSOR#NN;8,51:PRINT#NN;CHR$(NNN):CURSOR#NN;18,51:PRINT#NN;CHR$(NNN+1):CURSOR#NN;28,51:PRINT#NN;CHR$(NNN+2):CURSOR#NN;38,51:PRINT#NN;CHR$(NNN+3)
16680 CURSOR #NN;8,60:PRINT #NN;CHR$(NNN+4):CURSOR #NN;18,60:PRINT #NN;CHR$(NNN+5):CURSOR #NN;28,60:PRINT #NN;CHR$(NNN+6):CURSOR #NN;38,60:PRINT #NN;CHR$(NNN+7)
16690 CURSOR#NN;18,69:PRINT#NN;CHR$(NNN+8):CURSOR#NN;28,69:PRINT#NN;CHR$(NNN+9)
16700 =3
16710 NNN=empieza+33:CURSOR#NN;1,54:PRINT#NN;CHR$(NNN):CURSOR#NN;11,54:PRINT#NN;CHR$(NNN+1):CURSOR#NN;21,54:PRINT#NN;CHR$(NNN+2):CURSOR#NN;31,54:PRINT#NN;CHR$(NNN+3):CURSOR#NN;41,54:PRINT#NN;CHR$(NNN+4)
16720 CURSOR#NN;1,63:PRINT#NN;CHR$(NNN+5):CURSOR#NN;11,63:PRINT#NN;CHR$(NNN+6):CURSOR#NN;21,63:PRINT#NN;CHR$(NNN+7):CURSOR#NN;31,63:PRINT#NN;CHR$(NNN+8):CURSOR#NN;41,63:PRINT#NN;CHR$(NNN+9)
16730 =4
16740 NNN=empieza+43:CURSOR#NN;8,51:PRINT#NN;CHR$(NNN):CURSOR#NN;18,51:PRINT#NN;CHR$(NNN+1):CURSOR#NN;28,51:PRINT#NN;CHR$(NNN+2):CURSOR#NN;38,51:PRINT#NN;CHR$(NNN+3)
16750 CURSOR #NN;8,60:PRINT #NN;CHR$(NNN+4):CURSOR #NN;18,60:PRINT #NN;CHR$(NNN+5):CURSOR #NN;28,60:PRINT #NN;CHR$(NNN+6):CURSOR #NN;38,60:PRINT #NN;CHR$(NNN+7)
16760 CURSOR#NN;8,69:PRINT#NN;CHR$(NNN+8):CURSOR#NN;18,69:PRINT#NN;CHR$(NNN+9):CURSOR#NN;28,69:PRINT#NN;CHR$(NNN+10)
16770 =5
16780 NNN=empieza+54:CURSOR#NN;1,54:PRINT#NN;CHR$(NNN):CURSOR#NN;11,54:PRINT#NN;CHR$(NNN+1):CURSOR#NN;21,54:PRINT#NN;CHR$(NNN+2):CURSOR#NN;31,54:PRINT#NN;CHR$(NNN+3):CURSOR#NN;41,54:PRINT#NN;CHR$(NNN+4)
16790 CURSOR#NN;1,63:PRINT#NN;CHR$(NNN+5):CURSOR#NN;11,63:PRINT#NN;CHR$(NNN+6):CURSOR#NN;21,63:PRINT#NN;CHR$(NNN+7):CURSOR#NN;31,63:PRINT#NN;CHR$(NNN+8):CURSOR#NN;41,63:PRINT#NN;CHR$(NNN+9)
16800 CURSOR#NN;1,72:PRINT#NN;CHR$(NNN+10):CURSOR#NN;11,72:PRINT#NN;CHR$(NNN+11):CURSOR#NN;31,72:PRINT#NN;CHR$(NNN+12):CURSOR#NN;41,72:PRINT#NN;CHR$(NNN+13)
16810 =6
16820 FOR N=5 TO 7:AT #NN;N,0:PRINT#NN;"???":END FOR N
16830 =7
16840 CURSOR#NN;15,54:PRINT #NN;"SA"\TO 1;"LI"\TO 1;"DA"
16850 END SELect :CURSOR#NN;0,0:CSIZE#NN;0,0:OVER#NN;0:INK#NN;0
16860 END DEFine GRAFICO
16870 DEFine PROCedure PONE_VENTANAS
16880 PAPER#3;4:BORDER#3;4,3:CLS#3:INK#3;0
16890 PAPER#4;4:BORDER#4;4,6:CLS#4:INK#4;0
16900 PAPER#5;4:BORDER#5;4,6:INK#5;0:CLS#5
16910 PAPER#6;4:BORDER#6;4,3:INK#6;0:CLS#6
16920 END DEFine PONE_VENTANAS
16930 DEFine PROCedure SALVAR:DELETE mdv1_MONOPOLY:SAVE mdv1_MONOPOLY:END DEFine SALVAR
16940 DEFine PROCedure pone_casas (juggg,cass):LOCal num_casas,xxx,yyy
16950 IF  PRE(cass,10)=0 THEN END DEFine 
16960 INK#juggg+2;7
16970 AT#juggg+2;0,0
16980 IF PRE(cass,10)=5 THEN 
16990 CSIZE#juggg+2;3,0:OVER#juggg+2;-1:CURSOR#juggg+2;8,65:PRINT#juggg+2;CHR$(empieza+71):CURSOR#juggg+2;18,65:PRINT#juggg+2;CHR$(empieza+72):CURSOR#juggg+2;28,65:PRINT#juggg+2;CHR$(empieza+73)
17000 CURSOR#juggg+2;8,74:PRINT#juggg+2;CHR$(empieza+74):CURSOR#juggg+2;18,74:PRINT#juggg+2;CHR$(empieza+75):CURSOR#juggg+2;28,74:PRINT#juggg+2;CHR$(empieza+76):AT#juggg+2;0,0:CSIZE#juggg+2;0,0:OVER#juggg+2;0
17010 END IF 
17020 IF PRE(cass,10)<5 THEN 
17030 xxx=4:yyy=51:OVER#juggg+2;-1:CSIZE#juggg+2;3,0:FOR num_casas=1 TO PRE(cass,10)
17040 CURSOR#juggg+2;xxx,yyy:PRINT #juggg+2;CHR$(empieza+69):CURSOR#juggg+2;xxx+10,yyy:PRINT#juggg+2;CHR$(empieza+70)
17050 IF num_casas=2 THEN yyy=yyy+12:xxx=4:NEXT num_casas
17060 xxx=xxx+16:END FOR num_casas:AT#juggg+2;0,0:CSIZE#juggg+2;0,0:OVER#juggg+2;0
17070 END FOR num_casas
17080 END IF 
17090 INK#juggg+2;0:END DEFine pone_casas
17100 DEFine FuNction RESTA (PRIMERO,SEGUNDO):LOCal N9
17110 IF PRIMERO-SEGUNDO>0 THEN FOR N9=PRIMERO TO PRIMERO-SEGUNDO   STEP -((SEGUNDO)/20):AT#TURNO+2;1,7:PRINT#TURNO+2;INT(N9);"    ":BEEP 600,SEGUNDO/1000:END FOR N9
17120 IF PRIMERO-SEGUNDO<0 THEN FOR N9=PRIMERO TO PRIMERO-SEGUNDO STEP -(SEGUNDO)/20:AT#TURNO+2;1,7:PRINT#TURNO+2;INT(N9);"    ":BEEP 600,SEGUNDO/1000:END FOR N9
17130 AT#TURNO+2;1,7:PRINT#TURNO+2;PRIMERO-SEGUNDO;"    ":RETurn PRIMERO-SEGUNDO
17140 END DEFine RESTA
17150 DEFine FuNction SUMA (SUMAR,SUMADOR):LOCal N100
17160 FOR N100=SUMAR TO SUMAR+SUMADOR STEP INT((SUMADOR/10)):AT#TURNO+2;1,7:PRINT#TURNO+2;INT(N100);"   ":BEEP 500,40:END FOR N100
17170 AT#TURNO+2;1,7:PRINT#TURNO+2;SUMAR+SUMADOR;"    ":RETurn SUMAR+SUMADOR
17180 END DEFine SUMA
17190 DEFine PROCedure proxturno
17200 TURNO=TURNO+1
17210 IF TURNO>JUGADORES% THEN TURNO=1
17220 END DEFine 
17230 DEFine FuNction tiradados:LOCal resdado(3),tdado,tirando,total_dado
17240 AT#0;0,0:CLS#0;2:AT#0;1,0:PRINT#0;"Dado 1:"; TO 11;"Dado 2:":total_dado=0
17250 FOR tdado=1 TO 2
17260 FOR tirando=1 TO RND(5 TO 20)
17270 resdado(tdado)=RND(1 TO 6)
17280 IF tdado=1 THEN AT#0;1,7:ELSE AT#0;1,18
17290 PRINT#0;resdado(tdado)
17300 BEEP 900,RND(1 TO 50),RND(100 TO 200),RND(1 TO 200),RND(1 TO 20),RND(0 TO 15),RND(0 TO 15),RND(3 TO 9)
17310 END FOR tirando
17320 END FOR tdado
17330 IF resdado(1)=resdado(2) THEN total_dado=total_dado+resdado(1)+resdado(2):GO TO 17250
17340 total_dado=total_dado+resdado(1)+resdado(2)
17350 RETurn total_dado
17360 END DEFine tiradados
17370 DEFine PROCedure bucleespera(tiempo):LOCal ccc
17380 ccc=0:REPeat bucle_e
17390 IF INKEY$<>"" THEN EXIT bucle_e
17400 ccc=ccc+1
17410 IF ccc=tiempo THEN EXIT bucle_e
17420 END REPeat bucle_e
17430 END DEFine bucleespera
17440 DEFine PROCedure encarcelado
17450 AT#TURNO+2;6,10:UNDER#TURNO+2;1:PRINT#TURNO+2;"Encarcelado":UNDER#TURNO+2;0:
17460 END DEFine encarcelado
17470 DEFine PROCedure quitarcarcel:LOCal TT
17480 CSIZE#0;2,0:UNDER#0;1:AT#0;3,0:PRINT#0;"Has salido de la carcel":AT#0;0,0:CSIZE#0;0,0:UNDER#0;0:carcel%(TURNO)=0
17490 BEEP 10000,RND(1 TO 20),RND(40 TO 240),RND(1 TO 100),RND(0 TO 15),RND(0 TO 15),RND(0 TO 15):bucleespera 600
17500 AT#0;1,0:CLS#0;2:END DEFine quitarcarcel
17510 DEFine PROCedure BUSCA_TUS_CASAS (ES_DE,CONDICION):LOCal CASAS_TUYAS,CUENTA,PULSA$,CUENTA2,NUMCAS(40),PAGARA,HASTA,TIPO_CASA$,cuenta3,qq$,ff1,q1
17520 GO TO 17600
17530 IF TIPO%(NUMCAS(CUENTA2))=0 AND PRE(NUMCAS(CUENTA2),10)>0 AND PRE(NUMCAS(CUENTA2),10)<5 THEN TIPO_CASA$=PRE(NUMCAS(CUENTA2),10)&" casas"
17540 IF TIPO%(NUMCAS(CUENTA2))=0 AND PRE(NUMCAS(CUENTA2),10)=0 THEN TIPO_CASA$="Un terreno"
17550 IF TIPO%(NUMCAS(CUENTA2))=0 AND PRE(NUMCAS(CUENTA2),10)=5 THEN TIPO_CASA$="Un hotel"
17560 q1=PRE(NUMCAS(CUENTA2),10)+1:IF TIPO%(NUMCAS(CUENTA2))=3 THEN TIPO_CASA$=q1&" estaciones"
17570 ff1=PRE(NUMCAS(CUENTA2),10)+1
17580 IF TIPO%(NUMCAS(CUENTA2))<>6 THEN PRINT#0;"Hay ";TIPO_CASA$;" Por valor de ";PRE(NUMCAS(CUENTA2),ff1);" pts";"  .EstŒ en la casilla N.";NUMCAS(CUENTA2)
17590 RETurn 
17600 CSIZE#0;0,0:CASAS_TUYAS=0:CUENTA2=1:FOR CUENTA=0 TO 39
17610 IF PRE(CUENTA,0)=ES_DE AND ((TIPO%(CUENTA)=0 AND (CONDICION=1 OR NOT(CONDICION) OR CONDICION=4 OR CONDICION=3)) OR (TIPO%(CUENTA)=3 AND (CONDICION=1 OR NOT(CONDICION) OR CONDICION=4 OR CONDICION=3)) OR (TIPO%(CUENTA)=9 AND (CONDICION=2 OR CONDICION=4)) OR TIPO%(CUENTA)=6 AND (CONDICION=1 OR CONDICION=4 OR CONDICION=3)) THEN CASAS_TUYAS=CASAS_TUYAS+1:NUMCAS(CUENTA2)=CUENTA:CUENTA2=CUENTA2+1
17620 END FOR CUENTA
17630 IF CASAS_TUYAS=0 THEN RETurn
17640 AT#0;1,0:IF CONDICION=1 THEN PRINT#0;"Hipotecar propiedad"
17650 AT#0;1,0:IF CONDICION=4 THEN PRINT#0;"Inventario"
17660 AT#0;1,0:IF CONDICION=3 THEN PRINT#0;"Vender propiedad"
17670 AT#0;1,0:IF CONDICION=2 THEN PRINT#0;"Levantar hipoteca"
17680 rem missing
17690 rem missing
17700 rem missing
17710 AT#0;2,0:PRINT#0;"1 . ";CALLE$(NUMCAS(CUENTA))
17720 IF NUMCAS(CUENTA+1)<>0 THEN AT#0;3,0:PRINT#0;"2 . ";CALLE$(NUMCAS(CUENTA+1)):ELSE HASTA=1:GO TO 17770
17730 IF NUMCAS(CUENTA+2)<>0 THEN AT#0;4,0:PRINT#0;"3 . ";CALLE$(NUMCAS(CUENTA+2)):ELSE HASTA=2:GO TO 17770
17740 IF NUMCAS(CUENTA+3)<>0 THEN AT#0;1,36:PRINT#0;"4 . ";CALLE$(NUMCAS(CUENTA+3)):ELSE HASTA=3:GO TO 17770
17750 IF NUMCAS(CUENTA+4)<>0 THEN AT#0;2,36:PRINT#0;"5 . ";CALLE$(NUMCAS(CUENTA+4)):ELSE HASTA=4:GO TO 17770
17760 HASTA=5
17770 AT#0;3,36:IF CONDICION=4 THEN PRINT#0;"6 . SALIR":ELSE PRINT#0;"6 . NINGUNA"
17780 AT#0;4,36:IF CUENTA+5<CUENTA2 AND HASTA=5 THEN PRINT#0;"7 . MŒS":HASTA=6
17790 REPeat LEETECLAPULSADA
17800 PULSA$=INKEY$(-1):IF PULSA$="6" OR (PULSA$="7" AND HASTA=6) THEN EXIT LEETECLAPULSADA
17810 IF CODE(PULSA$)-CODE("0")>HASTA THEN NEXT LEETECLAPULSADA
17820 IF PULSA$<"8" AND PULSA$>"0" THEN EXIT LEETECLAPULSADA
17830 END REPeat LEETECLAPULSADA
17840 IF PULSA$<"6" AND PULSA$>"0" AND CONDICION=4 THEN 
17850 CUENTA2=CUENTA+(CODE(PULSA$)-CODE("1")):AT#0;0,0:CLS#0;2:PRINT #0;CALLE$(NUMCAS(CUENTA2)):IF TIPO%(NUMCAS(CUENTA2))=9 THEN UNDER#0;1:PRINT #0;"HIPOTECADA":UNDER#0;0:ELSE GO SUB 17530
17860 PRINT #0;"PULSA TECLA":qq$=INKEY$(-1):EXIT CUENTA
17870 END IF 
17880 IF PULSA$<"6" AND PULSA$>"0" AND CONDICION=2 THEN 
17890 CUENTA2=CUENTA+(CODE(PULSA$)-CODE("1")):IF TIPO%(NUMCAS(CUENTA2))<>9 THEN AT#0;0,0:CLS#0;2:AT#0;1,0:UNDER#0;1:PRINT#0;"NO LA TIENES HIPOTECADA":UNDER#0;0:bucleespera 400:EXIT CUENTA :ELSE AT#0;0,0:CLS#0;2:PRINT#0;"Para levantar la hipoteca de ";
17900 PRINT#0;CALLE$(NUMCAS(CUENTA2));" son ";:PAGARA=PRE(NUMCAS(CUENTA2),7)+INT((PRE(NUMCAS(CUENTA2),7)/100*10)):PRINT#0;PAGARA
17910 PRINT#0;"´ESTAS SEGURO?(S/N)":PULSA$=INKEY$(-1):IF PULSA$=="S" THEN 
17920 IF (CALLE$(NUMCAS(CUENTA2))(1 TO 13)="FERROCARRILES" OR CALLE$(NUMCAS(CUENTA2))(1 TO 8)="ESTACION") AND NUMCAS(CUENTA2)<>12 AND NUMCAS(CUENTA2)<>29 THEN TIPO%(NUMCAS(CUENTA2))=3
17930 IF NOT((CALLE$(NUMCAS(CUENTA2))(1 TO 13)="FERROCARRILES" OR CALLE$(NUMCAS(CUENTA2))(1 TO 8)="ESTACION")) AND NUMCAS(CUENTA2)<>12 AND NUMCAS(CUENTA2)<>29 THEN TIPO%(NUMCAS(CUENTA2))=0
17940 IF NUMCAS(CUENTA2)=AGUAS OR NUMCAS(CUENTA2)=ELECTRICIDAD THEN TIPO%(NUMCAS(CUENTA2))=6
17950 DINERO(ES_DE)=RESTA(DINERO(ES_DE),PAGARA)
17960 IF DINERO(ES_DE)<0 THEN BANCARROTA
17970 EXIT CUENTA
17980 END IF 
17990 END IF 
18000 IF PULSA$<"6" AND PULSA$>"0" AND CONDICION=1 THEN 
18010 CUENTA2=CUENTA+(CODE(PULSA$)-CODE("1")):IF TIPO%(NUMCAS(CUENTA2))=9 THEN AT#0;0,0:CLS#0;2:AT#0;1,0:UNDER#0;1:PRINT#0;"YA LA TIENES HIPOTECADA":UNDER#0;0:bucleespera 400:EXIT CUENTA :ELSE AT#0;0,0:CLS#0;2:PRINT#0;"La hipoteca de ";
18020 PRINT#0;CALLE$(NUMCAS(CUENTA2));" te produce ";:PAGARA=PRE(NUMCAS(CUENTA2),7):PRINT#0;PAGARA;" pts"
18030 GO SUB 17530
18040 PRINT#0;"´ESTAS SEGURO?(S/N)":PULSA$=INKEY$(-1):IF PULSA$=="S" THEN TIPO%(NUMCAS(CUENTA2))=9:DINERO(ES_DE)=SUMA(DINERO(ES_DE),PAGARA):EXIT CUENTA
18050 EXIT CUENTA
18060 END IF 
18070 IF PULSA$<"6" AND PULSA$>"0" AND CONDICION=3 THEN 
18080 CLS#0
18090 CUENTA2=CUENTA+(CODE(PULSA$)-CODE("1")):TIPO_CASA$="":PRINT #0;CALLE$(NUMCAS(CUENTA2))
18100 PAGARA=0:IF TIPO%(NUMCAS(CUENTA2))=0  AND(PRE(NUMCAS(CUENTA2),10))=5 THEN PAGARA=INT(5*(PRE(NUMCAS(CUENTA2),8)/2))
18110 IF TIPO%(NUMCAS(CUENTA2))=0  OR TIPO%(NUMCAS(CUENTA2))=3 AND PRE(NUMCAS(CUENTA2),10)<5 AND PRE(NUMCAS(CUENTA2),10)>0 THEN PAGARA=INT(PRE(NUMCAS(CUENTA2),10)*(PRE(NUMCAS(CUENTA2),8)/2))
18120 PAGARA=PAGARA+(INT((PRE(NUMCAS(CUENTA2),9))/2))
18130 GO SUB 17530:PRINT#0;"La venta te produce ";PAGARA;" pts"\"´Estas seguro de la operacion (S/N)?":qq$=INKEY$(-1)
18140 IF qq$=="S" THEN 
18150 IF TIPO%(NUMCAS(CUENTA2))=0 OR TIPO%(NUMCAS(CUENTA2))=3 THEN 
18160 IF PRE(NUMCAS(CUENTA2),10)>0 AND PRE(NUMCAS(CUENTA2),10)<5 THEN CASAS%=CASAS%+PRE(NUMCAS(CUENTA2),10)
18170 IF PRE(NUMCAS(CUENTA2),10)=5 THEN HOTELES%=HOTELES%+1
18180 END IF 
18190 PRE(NUMCAS(CUENTA2),0)=0:PRE(NUMCAS(CUENTA2),10)=0
18200 DINERO(ES_DE)=SUMA(DINERO(ES_DE),PAGARA)
18210 END IF 
18220 EXIT CUENTA
18230 END IF 
18240 IF PULSA$="6" THEN EXIT CUENTA
18250 IF PULSA$=="7" THEN AT#0;1,0:CLS#0;2:AT#0;1,30:CLS#0;4:NEXT CUENTA
18260 END FOR CUENTA
18270 CLS#0
18280 END DEFine BUSCA_TUS_CASAS
18290 CUENTA2=JUG%(TURNO):IF TIPO%(CUENTA2)=3 THEN TIPO_CASA$=PRE(CUENTA2,10)&" estaciones":ELSE TIPO_CASA$=PRE(CUENTA2,10)&" casas"
18300 IF (TIPO_CASA$(3 TO)="estaciones" AND PRE(CUENTA2,10)=3) OR (TIPO_CASA$(3 TO)="casas" AND PRE(CUENTA2,10)=5) THEN AT#0;0,0:CLS#0;2:AT#0;1,0:UNDER#0;1:PRINT#0;"No te cabe mŒs en esa calle":UNDER#0;0:bucleespera 400:RETurn :ELSE AT#0;0,0:CLS#0;2:PRINT#0;" PARA COMPRAR ";:IF TIPO%(CUENTA2)=3 THEN PRINT#0;"una estaci–n";:ELSE IF PRE(CUENTA2,10)<4 THEN PRINT#0;"una casa";:ELSE :PRINT#0;"un hotel";
18310 IF CASAS%=0 AND TIPO%(CUENTA2)=0 AND PRE(CUENTA2,10)<4 THEN PRINT#0;"No quedan casas":FOR cuenta3=20 TO 5 STEP -1:BEEP 900,cuenta3+30:BEEP 300,cuenta3*2:END FOR cuenta3:bucleespera 600:RETurn 
18320 IF CASAS%=0 AND TIPO%(CUENTA2)=3 THEN PRINT#0;"No quedan estaciones":FOR cuenta3=20 TO 5 STEP -1:BEEP 900,cuenta3+30:BEEP 300,cuenta3*2:END FOR cuenta3:bucleespera 600:RETurn 
18330 IF HOTELES%=0 AND TIPO%(CUENTA2)=0 AND PRE(CUENTA2,10)=4 THEN PRINT#0;"No quedan hoteles":FOR cuenta3=20 TO 5 STEP -1:BEEP 900,cuenta3+30:BEEP 300,cuenta3*2:END FOR cuenta3:bucleespera 600:RETurn 
18340 PRINT#0;" EN ";CALLE$(CUENTA2);" SON:":IF PRE(CUENTA2,10)<4 THEN PAGARA=PRE(CUENTA2,8):ELSE PAGARA=PRE(CUENTA2,8)*5
18350 ff=PRE(CUENTA2,10)+1:PRINT#0;PAGARA;" pts":GO SUB 18910:PRINT #0;"Quedan ";HOTELES%;" hoteles y ";CASAS%;" casas"\"´Estas seguro de la operaci–n(S/N)?":PULSA$=INKEY$(-1):IF PULSA$=="S" THEN 
18360 PRE(CUENTA2,10)=PRE(CUENTA2,10)+1:DINERO(TURNO)=RESTA(DINERO(TURNO),PAGARA)
18370 IF TIPO%(CUENTA2)=3 THEN CASAS%=CASAS%-1
18380 IF TIPO%(CUENTA2)=0 AND PRE(CUENTA2,10)=5 THEN HOTELES%=HOTELES%-1:CASAS%=CASAS%+4
18390 IF TIPO%(CUENTA2)=0 AND PRE(CUENTA2,10)<5 THEN CASAS%=CASAS%-1
18400 END IF 
18410 RETurn 
18420 DEFine PROCedure BANCARROTA:LOCal ffd,kg$
18430 CSIZE#0;2,0:AT#0;4,0:PRINT#0;"NO TIENES SUFICIENTE DINERO":AT#0;0,0:CSIZE#0;0,0:FOR ffd=150 TO 0 STEP -2:BEEP 500,ffd:END FOR ffd
18440 bucleespera 400:REPeat banoseg
18450 CLS#0:CSIZE#0;1,0
18460 AT#0;0,0:PRINT#0;"Debes ";:IF DINERO(TURNO)<0 THEN PRINT#0;ABS(DINERO(TURNO));" pts":ELSE PRINT#0;"Nada":FOR ffd=100 TO 0 STEP -3:BEEP 300,ffd:BEEP 600,ffd*2:END FOR ffd:bucleespera 180:EXIT banoseg
18470 AT#0;1,0:PRINT#0;"´(H)ipotecar  (V)ender  (B)ancarrota?"
18480 kg$=INKEY$(-1)
18490 IF kg$=="V" THEN CLS#0:BUSCA_TUS_CASAS TURNO,3
18500 IF kg$=="H" THEN 
18510 CLS#0
18520 BUSCA_TUS_CASAS TURNO,1
18530 END IF 
18540 IF kg$=="B" THEN 
18550 EXIT banoseg
18560 END IF 
18570 END REPeat banoseg
18580 IF DINERO(TURNO)<0 THEN 
18590 CLS#TURNO+2:CSIZE#TURNO+2;3,1:PRINT#TURNO+2;\"BANCARROTA"
18600 AT#TURNO+2;0,0:CSIZE#TURNO+2;0,0
18610 JUG_JUEG%=JUG_JUEG%-1
18620 FOR ffd=1 TO 39
18630 IF PRE(ffd,0)=TURNO THEN 
18640 IF PRE(ffd,10)<5 AND TIPO%(ffd)=0 AND PRE(ffd,10)>0 THEN CASAS%=CASAS%+PRE(ffd,10)
18650 IF PRE(ffd,10)<4 AND TIPO%(ffd)=3 AND PRE(ffd,10)>0 THEN CASAS%=CASAS%+PRE(ffd,10)
18660 IF PRE(ffd,10)=5 AND TIPO%(ffd)=0 THEN HOTELES%=HOTELES%+1
18670 IF (CALLE$(ffd)(1 TO 13)="FERROCARRILES" OR CALLE$(ffd)(1 TO 8)="ESTACION") AND (TIPO%(ffd)=9) AND N<>12 AND N<>29 THEN TIPO%(ffd)=3
18680 IF TIPO%(ffd)=9 AND (ffd=12 OR ffd=29) THEN TIPO%(ffd)=6
18690 IF TIPO%(ffd)=9 AND CALLE$(ffd)(1 TO 13)<>"FERROCARRILES" AND CALLE$(ffd)(1 TO 8)<>"ESTACION" AND ffd<>12 AND ffd<>29 THEN TIPO%(ffd)=0
18700 PRE(ffd,0)=0:PRE(ffd,10)=0
18710 END IF 
18720 END FOR ffd:JUG%(TURNO)=-2
18730 END IF 
18740 END DEFine BANCARROTA
18750 DEFine PROCedure HAS_GANADO:LOCal rwq,ganador,RWQ$
18760 FOR rwq=1 TO 100:BEEP 900,rwq:BEEP 400,rwq/2:END FOR rwq:FOR rwq=1 TO 50:SCROLL 4:BEEP 500,rwq:END FOR rwq
18770 CLS:CLS#0:BORDER 24,160
18780 FOR rwq=1 TO JUGADORES%
18790 IF JUG%(rwq)<>-2 THEN ganador=rwq:EXIT rwq
18800 END FOR rwq
18810 UNDER 1:CSIZE 1,1:PRINT JUGADO$(ganador)!"CON ";DINERO(ganador)!"PTS"\" HAS GANADO":CSIZE 1,0:UNDER 0:PRINT "ASI";:IF JUGADORES%<>2 THEN PRINT " HAN QUEDADO LOS DEMAS JUGADORES":ELSE PRINT " HA QUEDADO EL OTRO JUGADOR"
18820 FOR rwq=1 TO JUGADORES%
18830 IF JUG%(rwq)=-2 THEN PRINT JUGADO$(rwq)!!DINERO(rwq);" PTS"
18840 END FOR rwq
18850 PRINT \\"´QUIERES JUGAR OTRA VEZ (S/N)?"
18860 RWQ$=INKEY$(-1)
18870 IF RWQ$=="S" THEN BORDER 0:CLS:GO TO 120
18880 IF RWQ$=="N" THEN BORDER 0:NEW
18890 GO TO 18860
18900 END DEFine HAS_GANADO
18910 IF TIPO%(CUENTA2)=0 AND PRE(CUENTA2,10)>0 AND PRE(CUENTA2,10)<5 THEN TIPO_CASA$=PRE(CUENTA2,10)&" casas"
18920 IF TIPO%(CUENTA2)=0 AND PRE(CUENTA2,10)=0 THEN TIPO_CASA$="Un terreno"
18930 IF TIPO%(CUENTA2)=0 AND PRE(CUENTA2,10)=5 THEN TIPO_CASA$="Un hotel"
18940 q1=PRE(CUENTA2,10)+1:IF TIPO%(CUENTA2)=3 THEN TIPO_CASA$=q1&" estaciones"
18950 ff1=PRE(CUENTA2,10)+1
18960 IF TIPO%(CUENTA2)<>6 THEN PRINT#0;"Hay ";TIPO_CASA$;" Por valor de ";PRE(CUENTA2,ff1);" pts";"  .EstŒ en la casilla N.";CUENTA2
18970 RETurn 
