====== PARCHISE ====== {{:otros:Parchise_p1.jpg?690|}} ===== Info ===== ^ Author | Alfredo Comas | ^ Computer | Amstrad PCW 8256 / 8512 / 9512 | ^ Year | 1988 | ^ Gender | Board | ^ Controls | Keyboard | ^ Languages | Spanish | ^ Status | [[preserved|Preserved]] | ===== Screenshots ===== {{:otros:Parchise_screenshot01.png?220}} {{:otros:Parchise_screenshot02.png?220}} {{:otros:Parchise_screenshot03.png?220}} {{:otros:Parchise_screenshot04.png?220}} ===== Description ===== Since ancient times, especially before computers went on sale, there were some games that most of us were attracted to; Monopoli, Checkers, Chess or Parchise. With the arrival of computers on the market, all these games became secondary, although time gave them victory, they soon appeared one after another on the computer. The list that we offer you below is the Parchise, with the possibility of playing between two, three or four players. ===== Listing ===== * **__Listing - 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 ===== Controls ===== It is played with the keyboard. To shoot, we use the RETURN key, and with the instructions that the screen shows us, we will use the movement of the token that suits us best. ===== Loading the program ===== 1.- Insert the CP/M disc on side 2 2.- Write BASIC and wait for it to load 3.- Remove the CP/M disk and insert the disk containing the Parchise game 4.- Type run "Parchise" and press the "ENTER" key ===== Extras ===== * Program listing in high-circulation magazines of the time {{:otros:Parchise_programa_01.jpg?170}} {{:otros:Parchise_programa_02.jpg?170}} {{:otros:Parchise_programa_03.jpg?170}} {{:otros:Parchise_programa_04.jpg?170}} ===== Download ===== * {{:otros:Parchise (Basic).zip|Parchise }}(game in dsk format, compressed with zip) ===== Video ===== {{ youtube>l_0EkB6HA2M?large }}