Herramientas de usuario

Herramientas del sitio


es:parchise

PARCHISE

Ficha

Autor Alfredo Comas
Computadora Amstrad PCW 8256 / 8512 / 9512
Año 1988
Género Tablero
Controles Teclado
Lenguajes Español
Estado Preservado

Capturas

Descripción

Desde tiempos remotos, especialmente antes de que salieran a la venta los ordenadores, existían unos juegos por los que la mayoría nos sentíamos atraídos; el Monopoli, las Damas, el Ajedrez o el Parchise.

Con la salida de los ordenadores al mercado, todos estos juegos pasaron a un plano secundario, aunque el el tiempo les dio la victoria, no tardaron en aparecer uno tras otro en el ordenador.

El listado que a continuación os ofrecemos es el Parchise, con la posibilidad de juego entre dos, tres o cuatro jugadores.

Listado

  • Listado - PARCHISE.BAS
10 REM           ************ JUEGO DEL PARCHISE ****************
20 '           ********                               *************
30 '           ********  POR ALFREDO COMAS  1988-89   *************
40 REM           ***********************************************
50 MEMORY &HDFFF:CLEAR
60 GOSUB 90
70 PRINT CHR$(27)"E"CHR$(27)"H":PRINT CHR$(27)+"0"
80 GOSUB 680:GOTO 920
90 direccion=&HE400: linea=210 
100 FOR i=1 TO 47
110 suma=0:READ codigo$,control$ 
120 FOR j=1 TO 21 STEP 2
130 byte=VAL("&H"+MID$(codigo$,j,2))
140 POKE direccion,byte 
150 suma=suma+byte:direccion=direccion+1
160 NEXT
170 IF suma<>VAL("&H"+control$) THEN PRINT "ERROR EN LOS DATOS EN LA LINEA "linea;CHR$(7):STOP 
180 linea=linea+10:NEXT
190 inic=&HE400:plot=&HE403:draw=&HE406
200 RETURN
210 DATA C309E4C34FE5C32CE4CD81,6C8
220 DATA E511982C2100B60168013E,339
230 DATA 20F5D53E0873237223133D,3AB
240 DATA 20F8D1EB09EBF13D20ECC9,6CB
250 DATA 7E23666F22FDE5EB5E1600,4D9
260 DATA ED53FBE5C5DDE1DD6E00DD,7CB
270 DATA 66015E2356ED53F9E5DD6E,5A7
280 DATA 02DD66035E2356ED53F7E5,53B
290 DATA CD81E52AFDE522E7E5ED5B,775
300 DATA F9E501FFFFA7ED52300A2A,627
310 DATA FDE5EB010100A7ED5222EB,5C2
320 DATA E52003010000ED43EFE52A,437
330 DATA FBE522E9E5ED5BF7E501FF,7F4
340 DATA FFA7ED52300A2AFBE5EB01,615
350 DATA 0100A7ED5222EDE5200301,3FF
360 DATA 0000ED43F1E52AEBE5ED5B,648
370 DATA EDE5AFED52300C3C2AEBE5,632
380 DATA EB22EBE5ED53EDE532F5E5,7FB
390 DATA 2AEBE5EB29ED5222F3E52A,671
400 DATA EBE522E5E5ED5BE9E52AE7,7E3
410 DATA E5CD5BE53AF4E5E6802030,6BB
420 DATA 3AF5E5A7280E2AE7E5ED5B,62F
430 DATA EFE51922E7E5C306E52AE9,69C
440 DATA E5ED5BF1E51922E9E52AEB,721
450 DATA E529EB2AF3E5A7ED5222F3,6F6
460 DATA E5C3E0E43AF5E5A7280E2A,687
470 DATA E9E5ED5BF1E51922E9E5C3,7B8
480 DATA 36E52AE7E5ED5BEFE51922,668
490 DATA E7E52AEDE529EB2AF3E519,6F7
500 DATA 22F3E52AE5E52B22E5E57C,681
510 DATA B5C2D6E4C94E2346EB5E16,610
520 DATA 006960CD81E5AF935F7DE6,600
530 DATA 07F5CB1CCB1DCB1CCB1DCB,565
540 DATA 1CCB1D535DCD88E5F13C47,562
550 DATA CB1610FC3747CB1E10FCC9,529
560 DATA C1CD5AFCE900C97AE6F80F,6FD
570 DATA 0F6F26007AE6075401A5E5,3EA
580 DATA 094E2346EB292929094F06,284
590 DATA 0009C93059005CD05EA061,3E6
600 DATA 70644067106AE06CB06F80,4E0
610 DATA 7250752078F07AC07D9080,586
620 DATA 608330860089D08BA08E70,51B
630 DATA 9140941097E099B09C809F,5F0
640 DATA 50A220A5F0A7C0AA90AD60,655
650 DATA B000000000000000000000,0B0
660 DATA 0000000000000000000000,000
670 DATA 0000000000000000000000,000
680 REM **** TABLERO DE JUEGO ****
690 CALL inic:RESTORE 700:FOR i=1 TO 26:READ x%,y%,x1%,y1%:CALL draw(x%,y%,x1%,y1%):NEXT
700 DATA 152,32,152,88,152,88,40,88,40,88,40,184,40,184,152,184,152,184,152,240,152,240,248,240,248,240,248,184,248,184,360,184,360,184,360,88,360,88,248,88,248,88,248,32,248,32,152,32
710 DATA 168,168,232,168,232,168,232,104,232,104,168,104,168,104,168,168,40,152,168,152,168,120,40,120,184,168,184,240,216,240,216,168,232,152,360,152,360,120,232,120
720 DATA 216,104,216,32,184,32,184,104,152,88,248,184,152,184,248,88
730 x%=152:x1%=248:y%=240:FOR i=1 TO 8:CALL draw(x%,y%,x1%,y%):y%=y%-8:NEXT
740 y%=88:FOR i=1 TO 8:CALL draw(x%,y%,x1%,y%):y%=y%-8:NEXT
750 x%=40:y%=184:y1%=88:FOR i=1 TO 8:CALL draw(x%,y%,x%,y1%):x%=x%+16:NEXT
760 x%=248:FOR i=1 TO 8:CALL draw(x%,y%,x%,y1%):x%=x%+16:NEXT
770 x%=184:x1%=216:y%=240:y1%=232:FOR a%=x% TO x1% STEP 3:CALL draw(a%,y%,a%,y1%):NEXT
780 x%=152:x1%=184:y%=208:y1%=200:FOR a%=x% TO x1% STEP 2.5:CALL draw(a%,y%,a%,y1%):NEXT
790 x%=216:x1%=248:y%=208:y1%=200:FOR a%=x% TO x1% STEP 3:CALL draw(a%,y%,a%,y1%):NEXT
800 x%=104:x1%=120:y%=184:y1%=152:FOR a%=x% TO x1% STEP 3:CALL draw(a%,y%,a%,y1%):NEXT
810 x%=280:x1%=296:y%=184:y1%=y%-32:FOR a%=x% TO x1% STEP 4:CALL draw(a%,y%,a%,y1%):NEXT
820 x%=344:x1%=360:y%=152:y1%=120:FOR a%=x% TO x1% STEP 3:CALL draw(a%,y%,a%,y1%):NEXT
830 x%=40:x1%=56:y%=152:y1%=120:FOR a%=x% TO x1% STEP 3:CALL draw(a%,y%,a%,y1%):NEXT
840 x%=104:x1%=120:y%=120:y1%=y%-32:FOR a%=x% TO x1% STEP 2:CALL draw(a%,y%,a%,y1%):NEXT
850 x%=280:x1%=296:y%=120:y1%=88:FOR a%=x% TO x1% STEP 2:CALL draw(a%,y%,a%,y1%):NEXT
860 x%=152:x1%=184:y%=64:y1%=72:FOR a%=x% TO x1% STEP 2.5:CALL draw(a%,y%,a%,y1%):NEXT:x%=216:x1%=248:y%=64:y1%=72:FOR a%=x% TO x1% STEP 3:CALL draw(a%,y%,a%,y1%):NEXT
870 x%=184:x1%=216:y%=40:y1%=32:FOR a%=x% TO x1% STEP 2.5:CALL draw(a%,y%,a%,y1%):NEXT
880 x%=144:x1%=295:y%=20:y1%=6:CALL draw(x%,y%,x1%,y%):CALL draw(x1%,y%,x1%,y1%):CALL draw(x1%,y1%,x%,y1%):CALL draw(x%,y1%,x%,y%)
890 RESTORE 900:FOR i=1 TO 12:READ x%,y%,x1%,y1%:CALL draw(x%,y%,x1%,y1%):NEXT
900 DATA 151,31,151,87,151,87,39,87,39,87,39,185,39,185,151,185,151,185,151,241,151,241,249,241,249,241,249,185,249,185,361,185,361,185,361,87,361,87,247,87,247,87,247,31,247,31,151,31
910 RETURN
920 '     ****************  JUEGO DEL PARCHISE  ******************
930 DIM F$(4,4),A(4),R(4)
940 cl2$=CHR$(27)+"K":inv$=CHR$(27)+"p":norm$=CHR$(27)+"q":F$(1,1)=inv$+"11"+norm$:F$(1,2)=inv$+"12"+norm$:F$(1,3)=inv$+"13"+norm$:F$(1,4)=inv$+"14"+norm$
950 curon$=CHR$(27)+"e":curoff$=CHR$(27)+"f":F$(2,1)=inv$+"21"+norm$:F$(2,2)=inv$+"22"+norm$:F$(2,3)=inv$+"23"+norm$:F$(2,4)=inv$+"24"+norm$
960 DEF FN ta$(X,Y,texto$)=CHR$(27)+"Y"+CHR$(32+Y)+CHR$(32+X)+texto$:F$(3,1)=inv$+"31"+norm$:F$(3,2)=inv$+"32"+norm$:F$(3,3)=inv$+"33"+norm$:F$(3,4)=inv$+"34"+norm$
970 pit$=CHR$(7):F$(4,1)=inv$+"41"+norm$:F$(4,2)=inv$+"42"+norm$:F$(4,3)=inv$+"43"+norm$:F$(4,4)=inv$+"44"+norm$
980 A(1)=22:A(2)=39:A(3)=56:A(4)=5
990 cl$=CHR$(27)+"E"+CHR$(27)+"H":R(1)=0:R(2)=0:R(3)=0:R(4)=0
1000 '        ************** DEFINICION DEL DADO ****************************
1010 DEF FN rhr$(X,Y,L)=CHR$(27)+"Y"+CHR$(32+Y)+CHR$(32+X)+STRING$(L,&H9A)
1020 DEF FN rvr$(X,Y,L)=CHR$(27)+"X"+CHR$(32+Y)+CHR$(32+X)+CHR$(32+L)+CHR$(32)+CHR$(27)+"H"+STRING$(L,&H95)+CHR$(27)+"X"+CHR$(32)+CHR$(32)+CHR$(32+31)+CHR$(32+90)+CHR$(27)+"H"
1030 DEF FN dado$(X,Y,LH,LV)=FN ta$(X,Y,CHR$(&H96))+FN rhr$(X+1,Y,LH)+CHR$(&H9C)+FN rvr$(X,Y+1,LV)+FN rvr$(X+LH+1,Y+1,LV)+FN ta$(X,Y+LV+1,CHR$(&H93))+FN rhr$(X+1,Y+LV+1,LH)+CHR$(&H99)+CHR$(13) 
1040 DIM PF(4,4),PO(4,4),PC(4,4)
1050 PRINT FN ta$(46,2,"DI UN NUMERO DEL 1-99 ");:INPUT " ",R$
1060 RS=VAL(R$):IF RS<1 OR RS>99 THEN PRINT FN ta$(46,2,cl2$+pit$):GOTO 1050
1070 RANDOMIZE RS
1080 PRINT FN ta$(46,2,STRING$(44,"   ")):PRINT FN ta$(46,2,curon$+pit$+"Primer jugador(NOMBRE:. . .");:
1090 LINE INPUT primer$:primer$=UPPER$(primer$)
1100 PRINT FN ta$(46,2,STRING$(44,"   ")):PRINT FN ta$(46,2,pit$+"Segundo jugador(NOMBRE:. . .");:
1110 LINE INPUT segundo$:segundo$=UPPER$(segundo$)
1120 PRINT FN ta$(46,2,STRING$(44,"   ")):PRINT FN ta$(46,2,pit$+"Tercer jugador(NOMBRE:. . .");:LINE INPUT tercero$:tercero$=UPPER$(tercero$)
1130 PRINT FN ta$(46,2,STRING$(44,"   ")):PRINT FN ta$(46,2,pit$+"Cuarto jugador(NOMBRE:. . .");:LINE INPUT cuarto$:cuarto$=UPPER$(cuarto$)
1140 PRINT FN ta$(34,6,curoff$+primer$):PRINT FN ta$(1,6,segundo$):PRINT FN ta$(1,22,tercero$):PRINT FN ta$(33,22,cuarto$):PRINT FN ta$(46,2,STRING$(44,CHR$(32)))
1150 PRINT FN ta$(35,7,F$(1,2)+F$(1,3)+F$(1,4)):PRINT FN ta$(3,7,F$(2,2)+F$(2,3)+F$(2,4)):PRINT FN ta$(3,23,F$(3,2)+F$(3,3)+F$(3,4)):PRINT FN ta$(35,23,F$(4,2)+F$(4,3)+F$(4,4))
1160 PRINT FN ta$(35,9,F$(1,1)):PRINT FN ta$(19,6,F$(2,1)):PRINT FN ta$(13,20,F$(3,1)):PRINT FN ta$(29,23,F$(4,1)):V=0
1170 FOR s=1 TO 4:FOR q=1 TO 4:PC(s,q)=1:PF(s,q)=-1:IF q=1 THEN PF(s,q)=0:PO(s,q)=A(s)
1180 NEXT q:NEXT s
1190 '    **************** TIRA EL PRIMER JUGADOR ******************
1200 PRINT FN ta$(46,2,STRING$(44,"   ")):PRINT FN ta$(46,2,STRING$(3,pit$)+"T I R A . ."+primer$):s=1:GOSUB 3130:V=V+1:GOTO 1210
1210 IF N=6 AND V=3 GOTO 2970
1220 IF N=6 AND PF(s,1)>=0 AND PF(s,2)>=0 AND PF(s,3)>=0 AND PF(s,4)>=0 THEN N=N+6
1230 FOR ii=1 TO 5:PRINT FN ta$(59,5+ii,cl2$):NEXT
1240 PRINT FN ta$(60,6,"CON CUAL FICHA QUIERES CONTAR"):PRINT FN ta$(60,8,"1 ** Ficha N¡1 * CASILLA N¡");PO(s,1):PRINT FN ta$(60,10,"2 ** Ficha N¡2 * CASILLA N¡");PO(s,2)
1250 PRINT FN ta$(60,12,"3 ** Ficha N¡3 * CASILLA N¡");PO(s,3):PRINT FN ta$(60,14,"4 ** Ficha N¡4 * CASILLA N¡");PO(s,4)
1260 PRINT FN ta$(60,16,"5 ** Ficha NUEVA"):PRINT FN ta$(60,18,"");:INPUT" ",Z:FOR i=1 TO 13:PRINT FN ta$(60,(5+i),cl2$):NEXT
1270 IF Z=5 AND N=5 THEN 1990
1280 IF (PF(s,1)+N>71 OR PF(s,1)=-1) AND (PF(s,2)+N>71 OR PF(s,2)=-1) AND (PF(s,3)+N>71 OR PF(s,3)=-1) AND (PF(s,4)+N>71 OR PF(s,4)=-1) THEN GOTO 1550
1290 IF Z=1 AND PF(s,1)>=0 THEN GOTO 1350
1300 IF Z=2 AND PF(s,2)>=0 THEN GOTO 1350
1310 IF Z=3 AND PF(s,3)>=0 THEN 1350
1320 IF Z=4 AND PF(s,4)>=0 THEN GOTO 1350
1330 IF Z<1 OR Z>5 THEN PRINT pit$:GOTO 1240
1340 GOTO 1240
1350 '* * * *   CUENTA LA FICHA   * * * * 
1360 e=Z:IF PF(s,e)+N>71 THEN GOTO 1240
1370 IF PF(s,e)+N=71 THEN GOTO 1410
1380 puente=0:FOR i=1 TO 4:IF i<>e THEN IF PF(s,i)=PF(s,e)+N THEN puente=puente+1
1390 NEXT
1400 IF puente>1 THEN FOR i=1 TO 13:PRINT FN ta$(60,(5+i),cl2$):NEXT:PRINT FN ta$(60,6,"YA EXISTEN DOS FICHAS");FN ta$(60,8,"EN ESTE LUGAR CUENTA CON OTRA"):WHILE INKEY$="":WEND:GOTO 1230
1410 IF PF(s,e)>63 GOTO 1570
1420 PO(s,e)=PF(s,e)+A(s):IF PO(s,e)>68 THEN PO(s,e)=PO(s,e)-68
1430 POSF=PO(s,e):GOSUB 2100
1440 PRINT FN ta$(a,b,STRING$(2,CHR$(32))):PC(s,e)=1
1450 PF(s,e)=PF(s,e)+N:IF PF(s,e)>63 THEN 1620
1460 PO(s,e)=PF(s,e)+A(s):IF PO(s,e)>68 THEN PO(s,e)=PO(s,e)-68
1470 POSF=PO(s,e):FOR i=1 TO 4:IF i<>e THEN IF PO(s,i)=PO(s,e) THEN IF PC(s,i)=2 THEN PC(s,e)=1 ELSE IF PC(s,i)=1 THEN PC(s,e)=2
1480 NEXT
1490 GOSUB 1870
1500 GOSUB 2100
1510 PRINT FN ta$(a,b,F$(s,e))
1520 IF PF(s,e)=71 THEN R(s)=R(s)+1:F1=10:son=1:GOSUB 3440
1530 IF R(s)=4 THEN GOTO 3330
1540 IF F1=20 OR F1=10 THEN 2790
1550 IF N=6 OR N=12 THEN ON s GOTO 1200,3090,3110,3120
1560 V=0:ON s GOTO 3090,3110,3120,1200
1570 IF s=1 THEN IF PC(s,e)=1 THEN k=PF(s,e)-63:a=43-(k*2):b=13:GOTO 1440 ELSE k=PF(s,e)-63:a=43-(k*2):b=15:GOTO 1440
1580 IF s=2 THEN IF PC(s,e)=1 THEN k=PF(s,e)-63:a=23:b=2+k:GOTO 1440 ELSE k=PF(s,e)-63:a=25:b=2+k:GOTO 1440
1590 IF s=3 THEN IF PC(s,e)=1 THEN k=PF(s,e)-63:a=5+(2*k):b=16:GOTO 1440 ELSE k=PF(s,e)-63:a=5+(2*k):b=14:GOTO 1440
1600 IF s=4 THEN IF PC(s,e)=1 THEN k=PF(s,e)-63:a=25:b=27-k:GOTO 1440 ELSE k=PF(s,e)-63:a=23:b=27-k:GOTO 1440
1610 GOTO 1570
1620 FOR i=1 TO 4:IF i<>e THEN IF PF(s,i)=PF(s,e) THEN IF PC(s,i)=2 THEN PC(s,e)=1 ELSE IF PC(s,i)=1 THEN PC(s,e)=2
1630 NEXT
1640 IF s=1 THEN IF PF(s,e)=71 THEN PO(s,e)=-2:GOTO 1690 ELSE IF PC(s,e)=1 THEN k=PF(s,e)-63:a=43-(k*2):b=13:PO(s,e)=-2:GOTO 1510 ELSE k=PF(s,e)-63:a=43-(k*2):b=15:PO(s,e)=-2:GOTO 1510
1650 IF s=2 THEN IF PF(s,e)=71 THEN PO(s,e)=-3:GOTO 1730 ELSE IF PC(s,e)=1 THEN k=PF(s,e)-63:a=23:b=2+k:PO(s,e)=-3:GOTO 1510 ELSE k=PF(s,e)-63:a=25:b=2+k:PO(s,e)=-3:GOTO 1510
1660 IF s=3 THEN IF PF(s,e)=71 THEN PO(s,e)=-4:GOTO 1770 ELSE IF PC(s,e)=1 THEN k=PF(s,e)-63:a=5+(2*k):b=16:PO(s,e)=-4:GOTO 1510 ELSE k=PF(s,e)-63:a=5+(2*k):b=14:PO(s,e)=-4:GOTO 1510
1670 IF s=4 THEN IF PF(s,e)=71 THEN PO(s,e)=-5:GOTO 1810 ELSE IF PC(s,e)=1 THEN k=PF(s,e)-63:a=25:b=27-k:PO(s,e)=-5:GOTO 1510 ELSE k=PF(s,e)-63:a=23:b=27-k:PO(s,e)=-5:GOTO 1510
1680 GOTO 1620
1690 IF e=1 THEN a=27:b=13:GOTO 1510
1700 IF e=2 THEN a=27:b=14:GOTO 1510
1710 IF e=3 THEN a=27:b=15:GOTO 1510
1720 IF e=4 THEN a=27:b=16:GOTO 1510
1730 IF e=1 THEN a=23:b=11:GOTO 1510
1740 IF e=2 THEN a=25:b=11:GOTO 1510
1750 IF e=3 THEN a=23:b=12:GOTO 1510
1760 IF e=4 THEN a=25:b=12:GOTO 1510
1770 IF e=1 THEN a=21:b=16:GOTO 1510
1780 IF e=2 THEN a=21:b=15:GOTO 1510
1790 IF e=3 THEN a=21:b=14:GOTO 1510
1800 IF e=4 THEN a=21:b=13:GOTO 1510
1810 IF e=1 THEN a=25:b=18:GOTO 1510
1820 IF e=2 THEN a=23:b=18:GOTO 1510
1830 IF e=3 THEN a=25:b=17:GOTO 1510
1840 IF e=4 THEN a=23:b=17:GOTO 1510
1850 GOTO 1620
1860 ' ************ COMPRUEBA SI MATA FICHA  **************
1870 FOR t=1 TO 4:FOR i=1 TO 4:IF t<>s THEN IF PO(t,i)=PO(s,e) THEN GOTO 1900
1880 NEXT i:NEXT t
1890 RETURN
1900 PO(t,i)=0:PF(t,i)=-1:F1=20:son=2:GOSUB 3440
1910 IF t=1 THEN g=31+(2*i):j=7::GOTO 1950
1920 IF t=2 THEN g=2*i-1:j=7:GOTO 1950
1930 IF t=3 THEN g=2*i-1:j=23:GOTO 1950
1940 IF t=4 THEN g=31+(2*i):j=23:GOTO 1950
1950 PRINT FN ta$(g,j,F$(t,i)):IF PC(t,i)=2 THEN PC(s,e)=2:PC(t,i)=1
1960 RETURN
1970 PRINT curon$:PRINT FN ta$(1,1,CHR$(27)+"1"):END
1980 ' ************  SACA FICHA NUEVA  ***************
1990 conta=0:FOR i=1 TO 4:IF PF(s,i)=0 THEN conta=conta+1 
2000 NEXT:IF conta>=2 THEN PRINT FN ta$(59,6,"TIENES DOS FICHAS EN LA SALIDA"):PRINT FN ta$(60,8,"NO PUEDES SACAR OTRA NUEVA"):PRINT FN ta$(60,10,"PULSA UNA TECLA"):WHILE INKEY$="":WEND:GOTO 1230
2010 FOR i=1 TO 4:IF PF(s,i)=-1 THEN e=i:PF(s,e)=0:N=0:GOTO 2040
2020 NEXT i
2030 PRINT FN ta$(60,6,"NO QUEDA NINGUNA FICHA"):PRINT FN ta$(60,8,"PULSA UNA TECLA"):WHILE INKEY$="" :WEND:GOTO 1230
2040 IF s=1 THEN g=31+(2*i):j=7:GOTO 2080
2050 IF s=2 THEN g=2*i-1:j=7:GOTO 2080
2060 IF s=3 THEN g=2*i-1:j=23:GOTO 2080
2070 IF s=4 THEN g=31+(2*i):j=23:GOTO 2080
2080 son=3:GOSUB 3440:PRINT FN ta$(g,j,STRING$(2,CHR$(32))):GOTO 1460
2090 REM  ********* POSICION DE LA FICHA EN EL TABLERO *****************
2100 IF POSF=1 THEN IF PC(s,e)=2 THEN a=27:b=27:RETURN ELSE a=29:b=27:RETURN
2110 IF POSF=2 THEN IF PC(s,e)=2 THEN a=27:b=26:RETURN ELSE a=29:b=26:RETURN
2120 IF POSF=3 THEN IF PC(s,e)=2 THEN a=27:b=25:RETURN ELSE a=29:b=25:RETURN
2130 IF POSF=4 THEN IF PC(s,e)=2 THEN a=27:b=24:RETURN ELSE a=29:b=24:RETURN
2140 IF POSF=5 THEN IF PC(s,e)=2 THEN a=27:b=23:RETURN ELSE a=29:b=23:RETURN
2150 IF POSF=6 THEN IF PC(s,e)=2 THEN a=27:b=22:RETURN ELSE a=29:b=22:RETURN
2160 IF POSF=7 THEN IF PC(s,e)=2 THEN a=27:b=21:RETURN ELSE a=29:b=21:RETURN
2170 IF POSF=8 THEN IF PC(s,e)=2 THEN a=27:b=18:RETURN ELSE a=27:b=19:RETURN
2180 IF POSF=9 THEN IF PC(s,e)=2 THEN a=29:b=17:RETURN ELSE a=29:b=19:RETURN
2190 IF POSF=10 THEN IF PC(s,e)=2 THEN a=31:b=18:RETURN ELSE a=31:b=20:RETURN
2200 IF POSF=11 THEN IF PC(s,e)=2 THEN a=33:b=18:RETURN ELSE a=33:b=20:RETURN
2210 IF POSF=12 THEN IF PC(s,e)=2 THEN a=35:b=18:RETURN ELSE a=35:b=20:RETURN
2220 IF POSF=13 THEN IF PC(s,e)=2 THEN a=37:b=18:RETURN ELSE a=37:b=20:RETURN
2230 IF POSF=14 THEN IF PC(s,e)=2 THEN a=39:b=18:RETURN ELSE a=39:b=20:RETURN
2240 IF POSF=15 THEN IF PC(s,e)=2 THEN a=41:b=18:RETURN ELSE a=41:b=20:RETURN
2250 IF POSF=16 THEN IF PC(s,e)=2 THEN a=43:b=18:RETURN ELSE a=43:b=20:RETURN
2260 IF POSF=17 THEN IF PC(s,e)=2 THEN a=43:b=15:RETURN ELSE a=43:b=13:RETURN
2270 IF POSF=18 THEN IF PC(s,e)=2 THEN a=43:b=11:RETURN ELSE a=43:b=9:RETURN
2280 IF POSF=19 THEN IF PC(s,e)=2 THEN a=41:b=11:RETURN ELSE a=41:b=9:RETURN
2290 IF POSF=20 THEN IF PC(s,e)=2 THEN a=39:b=11:RETURN ELSE a=39:b=9:RETURN
2300 IF POSF=21 THEN IF PC(s,e)=2 THEN a=37:b=11:RETURN ELSE a=37:b=9:RETURN
2310 IF POSF=22 THEN IF PC(s,e)=2 THEN a=35:b=11:RETURN ELSE a=35:b=9:RETURN
2320 IF POSF=23 THEN IF PC(s,e)=2 THEN a=33:b=11:RETURN ELSE a=33:b=9:RETURN
2330 IF POSF=24 THEN IF PC(s,e)=2 THEN a=31:b=11:RETURN ELSE a=31:b=9:RETURN
2340 IF POSF=25 THEN IF PC(s,e)=2 THEN a=29:b=12:RETURN ELSE a=29:b=11:RETURN
2350 IF POSF=26 THEN IF PC(s,e)=2 THEN a=27:b=9:RETURN ELSE a=29:b=9:RETURN
2360 IF POSF=27 THEN IF PC(s,e)=2 THEN a=27:b=8:RETURN ELSE a=29:b=8:RETURN
2370 IF POSF=28 THEN IF PC(s,e)=2 THEN a=27:b=7:RETURN ELSE a=29:b=7:RETURN
2380 IF POSF=29 THEN IF PC(s,e)=2 THEN a=27:b=6:RETURN ELSE a=29:b=6:RETURN
2390 IF POSF=30 THEN IF PC(s,e)=2 THEN a=27:b=5:RETURN ELSE a=29:b=5:RETURN
2400 IF POSF=31 THEN IF PC(s,e)=2 THEN a=27:b=4:RETURN ELSE a=29:b=4:RETURN
2410 IF POSF=32 THEN IF PC(s,e)=2 THEN a=27:b=3:RETURN ELSE a=29:b=3:RETURN
2420 IF POSF=33 THEN IF PC(s,e)=2 THEN a=27:b=2:RETURN ELSE a=29:b=2:RETURN
2430 IF POSF=34 THEN IF PC(s,e)=2 THEN a=25:b=2:RETURN ELSE a=23:b=2:RETURN
2440 IF POSF=35 THEN IF PC(s,e)=2 THEN a=21:b=2:RETURN ELSE a=19:b=2:RETURN
2450 IF POSF=36 THEN IF PC(s,e)=2 THEN a=21:b=3:RETURN ELSE a=19:b=3:RETURN
2460 IF POSF=37 THEN IF PC(s,e)=2 THEN a=21:b=4:RETURN ELSE a=19:b=4:RETURN
2470 IF POSF=38 THEN IF PC(s,e)=2 THEN a=21:b=5:RETURN ELSE a=19:b=5:RETURN
2480 IF POSF=39 THEN IF PC(s,e)=2 THEN a=21:b=6:RETURN ELSE a=19:b=6:RETURN
2490 IF POSF=40 THEN IF PC(s,e)=2 THEN a=21:b=7:RETURN ELSE a=19:b=7:RETURN
2500 IF POSF=41 THEN IF PC(s,e)=2 THEN a=21:b=8:RETURN ELSE a=19:b=8:RETURN
2510 IF POSF=42 THEN IF PC(s,e)=2 THEN a=19:b=9:RETURN ELSE a=21:b=9:RETURN
2520 IF POSF=43 THEN IF PC(s,e)=2 THEN a=19:b=10:RETURN ELSE a=19:b=11:RETURN
2530 IF POSF=44 THEN IF PC(s,e)=2 THEN a=17:b=11:RETURN ELSE a=17:b=9:RETURN
2540 IF POSF=45 THEN IF PC(s,e)=2 THEN a=15:b=11:RETURN ELSE a=15:b=9:RETURN
2550 IF POSF=46 THEN IF PC(s,e)=2 THEN a=13:b=11:RETURN ELSE a=13:b=9:RETURN
2560 IF POSF=47 THEN IF PC(s,e)=2 THEN a=11:b=11:RETURN ELSE a=11:b=9:RETURN
2570 IF POSF=48 THEN IF PC(s,e)=2 THEN a=9:b=11:RETURN ELSE a=9:b=9:RETURN
2580 IF POSF=49 THEN IF PC(s,e)=2 THEN a=7:b=11:RETURN ELSE a=7:b=9:RETURN
2590 IF POSF=50 THEN IF PC(s,e)=2 THEN a=5:b=11:RETURN ELSE a=5:b=9:RETURN
2600 IF POSF=51 THEN IF PC(s,e)=2 THEN a=5:b=14:RETURN ELSE a=5:b=16:RETURN
2610 IF POSF=52 THEN IF PC(s,e)=2 THEN a=5:b=18:RETURN ELSE a=5:b=20:RETURN
2620 IF POSF=53 THEN IF PC(s,e)=2 THEN a=7:b=18:RETURN ELSE a=7:b=20:RETURN
2630 IF POSF=54 THEN IF PC(s,e)=2 THEN a=9:b=18:RETURN ELSE a=9:b=20:RETURN
2640 IF POSF=55 THEN IF PC(s,e)=2 THEN a=11:b=18:RETURN ELSE a=11:b=20:RETURN
2650 IF POSF=56 THEN IF PC(s,e)=2 THEN a=13:b=18:RETURN ELSE a=13:b=20:RETURN
2660 IF POSF=57 THEN IF PC(s,e)=2 THEN a=15:b=18:RETURN ELSE a=15:b=20:RETURN
2670 IF POSF=58 THEN IF PC(s,e)=2 THEN a=17:b=18:RETURN ELSE a=17:b=20:RETURN
2680 IF POSF=59 THEN IF PC(s,e)=2 THEN a=19:b=17:RETURN ELSE a=19:b=18:RETURN
2690 IF POSF=60 THEN IF PC(s,e)=2 THEN a=21:b=19:RETURN ELSE a=21:b=20:RETURN
2700 IF POSF=61 THEN IF PC(s,e)=2 THEN a=21:b=21:RETURN ELSE a=19:b=21:RETURN
2710 IF POSF=62 THEN IF PC(s,e)=2 THEN a=21:b=22:RETURN ELSE a=19:b=22:RETURN
2720 IF POSF=63 THEN IF PC(s,e)=2 THEN a=21:b=23:RETURN ELSE a=19:b=23:RETURN
2730 IF POSF=64 THEN IF PC(s,e)=2 THEN a=21:b=24:RETURN ELSE a=19:b=24:RETURN
2740 IF POSF=65 THEN IF PC(s,e)=2 THEN a=21:b=25:RETURN ELSE a=19:b=25:RETURN
2750 IF POSF=66 THEN IF PC(s,e)=2 THEN a=21:b=26:RETURN ELSE a=19:b=26:RETURN
2760 IF POSF=67 THEN IF PC(s,e)=2 THEN a=21:b=27:RETURN ELSE a=19:b=27:RETURN
2770 IF POSF=68 THEN IF PC(s,e)=2 THEN a=23:b=27:RETURN ELSE a=25:b=27:RETURN
2780 ' **************  SE CUENTA 20  ***************************
2790 PRINT FN ta$(60,6,"CON QUE FICHA CUENTAS");F1:PRINT FN ta$(60,8,"1 ** Ficha N¡1 * CASILLA N¡");PO(s,1):PRINT FN ta$(60,10,"2 ** Ficha N¡2 * CASILLA N¡");PO(s,2)
2800 PRINT FN ta$(60,12,"3 ** Ficha N¡3 * CASILLA N¡");PO(s,3):PRINT FN ta$(60,14,"4 ** Ficha N¡4 * CASILLA N¡");PO(s,4):PRINT FN ta$(60,16,"");:INPUT"",p
2810 FOR i=1 TO 12:PRINT FN ta$(48,5+i,cl2$):NEXT
2820 IF (PF(s,1)+F1>71 OR PF(s,1)=-1) AND (PF(s,2)+F1>71 OR PF(s,2)=-1) AND (PF(s,3)+F1>71 OR PF(s,3)=-1) AND (PF(s,4)+F1>71 OR PF(s,4)=-1) THEN F1=0:GOTO 1550
2830 IF p=1 AND PF(s,1)>=0 THEN 2900
2840 IF p=2 AND PF(s,2)>=0 THEN 2900
2850 IF p=3 AND PF(s,3)>=0 THEN 2900
2860 IF p=4 AND PF(s,4)>=0 THEN 2900
2870 IF p<=0 OR p>4 GOTO 2790
2880 GOTO 2790
2890 ' 
2900 '
2910 IF PF(s,p)+F1>71 THEN 2790
2920 PO(s,p)=PF(s,p)+A(s):IF PO(s,p)>68 THEN PO(s,p)=PO(s,p)-68
2930 e=p:POSF=PO(s,p):GOSUB 2100
2940 PRINT FN ta$(a,b,STRING$(2,CHR$(32))):PC(s,p)=1
2950 e=p:PF(s,p)=PF(s,p)+F1:IF PF(s,p)>63 THEN F1=0:GOTO 1620
2960 F1=0:GOTO 1460
2970 '  **** COMPROBACION DE LA FICHA QUE SE VA A CASA POR SACAR TRES SEISES *******
2980 son=2:GOSUB 3440:FOR i=1 TO 4:IF i=Z THEN h=i:GOTO 3000
2990 NEXT
3000 ' 
3010 POSF=PO(s,h):GOSUB 2100
3020 IF s=1 THEN g=31+(2*i):j=7
3030 IF s=2 THEN g=2*i-1:j=7
3040 IF s=3 THEN g=2*i-1:j=23
3050 IF s=4 THEN g=31+(2*i):j=23
3060 PRINT FN ta$(a,b,STRING$(2,CHR$(32))):PRINT FN ta$(g,j,F$(s,h))
3070 V=0:PF(s,h)=-1:PO(s,h)=0:PC(s,h)=1:ON s GOTO 3090,3110,3120,1200
3080 ' *********   T I R A   E L  2   J U G A D O R    ************ 
3090 PRINT FN ta$(46,2,STRING$(44,"   ")):PRINT FN ta$(46,2,STRING$(3,pit$)+"T I R A . ."+segundo$):s=2:GOSUB 3130:V=V+1:GOTO 1210
3100 ' ***********     T I R A    E L   3   J U G A D O R     **************
3110 PRINT FN ta$(46,2,STRING$(44,"    ")):PRINT FN ta$(46,2,STRING$(3,pit$)+"T I R A . . "+tercero$):s=3:GOSUB 3130:V=V+1:GOTO 1210
3120 PRINT FN ta$(46,2,STRING$(44,"    ")):PRINT FN ta$(46,2,STRING$(3,pit$)+"T I R A . ."+cuarto$):s=4:GOSUB 3130:V=V+1:GOTO 1210
3130 ' ********************  CALCULO DE LA TIRADA  ****************************
3140 W=0
3150 N=INT(RND*10)+1:IF N>6 GOTO 3150
3160 PRINT FN ta$(46,4,cl2$);:INPUT "** 1. TIRADA VALIDA.** 2. VUELVE A TIRAR.",ZZ
3170 W=W+1: IF ZZ=2 AND W>=2 THEN PRINT FN ta$(60,6,cl2$):PRINT FN ta$(60,6,pit$+"SOLO DOS TIRADAS CADA VEZ"):FOR ii=1 TO 1000:NEXT:GOTO 3190
3180 IF ZZ=2 THEN PRINT FN ta$(60,6,"VUELVE A TIRAR"):GOTO 3150
3190 cc=cc+1:PRINT FN ta$(20,30,"TIRADA N¡: "):PRINT FN ta$(31,30,"   "):PRINT FN ta$(31,30,"");cc:c=c+1:IF c=15 THEN PRINT FN ta$(60,16,"ESPERE UN POCO"+pit$):GOSUB 680:c=0
3200 IF N=1 THEN GOTO 3270
3210 IF N=2 THEN GOTO 3280
3220 IF N=3 THEN GOTO 3290
3230 IF N=4 THEN GOTO 3300
3240 IF N=5 THEN GOTO 3310
3250 IF N=6 THEN GOTO 3320
3260 ' ****************    DIBUJO DEL DADO   *****************************
3270 FOR i=1 TO 6:PRINT FN ta$(40,23+i,cl2$):NEXT:PRINT FN ta$(74,26,"*"):PRINT FN dado$(70,24,7,3):RETURN
3280 FOR i=1 TO 6:PRINT FN ta$(40,23+i,cl2$):NEXT:PRINT FN ta$(72,25,"*"):PRINT FN ta$(75,27,"*"):PRINT FN dado$(70,24,7,3):RETURN
3290 FOR i=1 TO 6:PRINT FN ta$(40,23+i,cl2$):NEXT:PRINT FN ta$(72,25,"*"):PRINT FN ta$(74,26,"*"):PRINT FN ta$(76,27,"*"):PRINT FN dado$(70,24,7,3):RETURN
3300 FOR i=1 TO 6:PRINT FN ta$(40,23+i,cl2$):NEXT:PRINT FN ta$(72,25,"*   *"):PRINT FN ta$(72,27,"*   *"):PRINT FN dado$(70,24,7,3):RETURN
3310 FOR i=1 TO 6:PRINT FN ta$(40,23+i,cl2$):NEXT:PRINT FN ta$(72,25,"*   *"):PRINT FN ta$(74,26,"*"):PRINT FN ta$(72,27,"*   *"):PRINT FN dado$(70,24,7,3):RETURN
3320 FOR i=1 TO 6:PRINT FN ta$(40,23+i,cl2$):NEXT:PRINT FN ta$(72,25,"*   *"):PRINT FN ta$(72,26,"*   *"):PRINT FN ta$(72,27,"*   *"):PRINT FN dado$(70,24,7,3):RETURN
3330 ' ******  GANADOR DE LA PARTIDA  ************
3340 IF s=1 THEN a$=primer$:GOTO 3390
3350 IF s=2 THEN a$=segundo$:GOTO 3390
3360 IF s=3 THEN a$=tercero$:GOTO 3390
3370 IF s=4 THEN a$=cuarto$:GOTO 3390
3380 GOTO 3330
3390 FOR i=1 TO 1700:NEXT i:PRINT FN ta$(55,15,"G A N A D O R ")
3400 PRINT FN ta$(55,17,a$):son=4:GOSUB 3440:PRINT curon$:PRINT CHR$(27)+"1"
3410 PRINT FN ta$(55,19,"OTRA PARTIDA ..(S)i...(N)o "):INPUT" ";Q$
3420 IF Q$="S" OR Q$="s" THEN ERASE F$,A,R,PF,PO,PC:F1=0:cc=0:c=0:PRINT cl$:GOTO 70 ELSE END
3430 ' **********   S O N I D O   ***************
3440 RESTORE 3460:FOR al=0 TO 25:READ a$:vl=VAL("&H"+a$):POKE &H100+al,vl:NEXT
3450 GOTO 3470
3460 DATA 26,09,06,09,E5,C5,3E,0B,D3,F8,C1,E1,05,C2,04,01,3E,0C,D3,F8,25,C2,02,01,C9,00
3470 IF son=1 THEN RESTORE 3570
3480 IF son=2 THEN RESTORE 3590
3490 IF son=3 THEN RESTORE 3600
3500 IF son=4 THEN RESTORE 3610
3510 pitido=&H100
3520 FOR pl=1 TO 8:READ dl,vl,tl,jl
3530 POKE &H101,dl:POKE &H103,vl
3540 pitido=&H100
3550 FOR kl=1 TO tl:CALL pitido:NEXT
3560 vl=vl+1:FOR zl=1 TO jl:NEXT:NEXT pl:RETURN
3570 DATA 1,115,135,25,1,25,45,25,1,155,105,25,1,25,45,25,1,185,80,25
3580 DATA 1,200,75,25,1,220,25,25,1,255,80,25
3590 DATA 1,10,25,25,1,15,25,25,1,10,70,25,1,7,30,25,1,10,25,25,1,15,25,25,1,10,70,25,1,10,25,25
3600 DATA 1,250,15,40,1,5,25,10,1,5,25,25,1,250,20,40,1,250,40,40,1,20,60,40,1,250,80,5,1,250,3,10
3610 DATA 1,120,14,20,1,200,15,30,1,240,10,20,1,5,20,25,1,200,25,20,1,5,40,25,1,110,40,20,1,20,40,10

Controles

Se juega con el teclado. Para tirar, usamos la tecla RETURN, y con las instrucciones que nos muestre la pantalla, usaremos el movimiento de la ficha que más nos convenga.

Carga del programa

1.- Introducir el disco CP/M por la cara 2
2.- Escribir BASIC y esperar a que cargue
3.- Retirar el disco CP/M e introducir el disco que contiene el juego Parchise
4.- Teclear run "Parchise" y pulsar la tecla "ENTER"

Extras

  • Listado del programa en revistas de gran tirada de la época

parchise_programa_01.jpg parchise_programa_02.jpg parchise_programa_03.jpg parchise_programa_04.jpg

Descarga

  • Parchise (juego en formato dsk, comprimido con zip)

Vídeos

es/parchise.txt · Última modificación: 2022/06/30 14:53 por jevicac