====== PARANOID ====== {{:otros:Paranoid_p1.jpg?690|}} ===== Info ===== ^ Author | Jorge Perez Barreiro | ^ Computer | Amstrad PCW 8256 / 8512 / 9512 | ^ Year | 1988 | ^ Gender | Board | ^ Controls | Keyboard | ^ Languages | Spanish | ^ Status | [[preserved|Preserved]] | ===== Screenshots ===== {{:otros:Paranoid_screenshot01.png?220}} {{:otros:Paranoid_screenshot02.png?220}} {{:otros:Paranoid_screenshot03.png?220}} {{:otros:Paranoid_screenshot04.png?220}} ===== Description ===== For all those who like board games, here you have Paranoid, so you can have a good time playing the popular game of checkers. The game of checkers is well known to all, that magnificent skull crusher that acts on a chessboard with twenty-four pieces, twelve white and twelve black. ===== Listing ===== * **__List - PARANOID.BAS__** 100 'DAMAS (C)3-1-1988 JORGE PEREZ BARREIRO 105 ' 110 cls$=CHR$(27)+"E"+CHR$(27)+"H":REM BORRAR PANTALLA 120 DEF FN at$(v,h)=CHR$(27)+"Y"+CHR$(32+v)+CHR$(32+h):REM CONTROL "AT" 130 inverse1$=CHR$(27)+"p":REM VIDEO INVERSO 140 inverse0$=CHR$(27)+"q":REM VIDEO NORMAL 150 cursor1$=CHR$(27)+"e":REM CON CURSOR 160 cursor0$=CHR$(27)+"f":REM SIN CURSOR 170 scrab$=CHR$(27)+"L" 180 scrar$=CHR$(27)+"M" 190 DEF FN ventana$(a,b,c,d)=CHR$(27)+"X"+CHR$(32+a)+CHR$(32+b)+CHR$(c-1+32)+CHR$(d-1+32) 200 RANDOMIZE PEEK(64504!) 210 fir1=0:fir2=0:fic1=0:fic2=0:ju=0 900 PRINT cls$ 910 t=36:PRINT FN at$(2,30);"*.*.*.* P A R A N O I D *.*.*.*" 915 PRINT FN at$(25,25);CHR$(134);:FOR r=1 TO 35:PRINT CHR$(138);:NEXT r:PRINT CHR$(140);FN at$(26,25);CHR$(133);FN at$(26,61);CHR$(133) 917 PRINT FN at$(27,25);CHR$(131);:FOR r=1 TO 35:PRINT CHR$(138);:NEXT r:PRINT CHR$(137) 922 PRINT FN at$(4,25);"(C)3.4.5-Enero-1988 JORGE PEREZ BARREIRO" 924 PRINT FN at$(8,t);"OPCIONES:";FN at$(9,t);"---------" 926 PRINT FN at$(11,t);"1.-EMPIEZA HUMANO";FN at$(13,t);"2.-EMPIEZA ORDENADOR";FN at$(15,t);"3.-JUEGO YO SOLO";FN at$(17,t);"4.-FIN" 927 v$=" * * * P A R A N O I D * * * (C) 5-Enero-1988 By Jorge Perez Barreiro - AMSTRAD PCW 8256-8512-9512 ..... PARANOID es igual que el juego de DAMAS pero con las siguientes excepciones: " 928 v2$=" No se permiten las capturas multiples,no existe bufar y cuando una ficha llega al final se combierte en Reina y desaparece del tablero. " 929 v3$=" La puntuacion final es igual a la siguiente expresion:(Fichas reinas conseguidas por 2)+fichas comidas al contrario+fichas finales propias en el tablero. ***** " 930 s$=INKEY$ 935 vb=vb+1 936 IF kl=0 THEN w$=v$ 937 IF kl=1 THEN w$=v2$ 938 IF kl=2 THEN w$=v3$ 940 IF vb+40=LEN(w$) THEN vb=0:kl=kl+1:IF kl=3 THEN kl=0 942 IF vb=0 THEN GOTO 935 945 PRINT FN at$(26,26);MID$(w$,vb,35) 950 IF s$="" THEN GOTO 930 960 IF s$<"1" OR s$>"4" THEN GOTO 930 970 IF s$="4" THEN PRINT cls$:END 1000 DIM k$(14):DIM e(51,7):DIM p$(14):DIM a$(14):c$="==============":FOR t=1 TO 3:a$(t)=c$:NEXT t:FOR t=12 TO 14:a$(t)=c$:NEXT t 1005 RESTORE 1010:FOR t=4 TO 11:READ b$:a$(t)="==="+b$+"===":NEXT t 1010 DATA " x x x x" 1020 DATA "x x x x " 1030 DATA " x x x x" 1040 DATA ". . . . " 1050 DATA " . . . ." 1060 DATA "o o o o " 1070 DATA " o o o o" 1080 DATA "o o o o " 1090 PRINT cls$ 1100 PRINT FN at$(0,32);"* * * * PARANOID * * * *" 1110 PRINT FN at$(5,2);" ORDENADOR:";FN at$(6,2);" ----------" 1120 PRINT FN at$(16,63);" HUMANO:";FN at$(17,65);" -------" 1200 GOSUB 8000 1210 IF s$="1" THEN GOTO 1780 1220 IF s$="2" THEN GOTO 1500 1230 IF s$="3" THEN aut=1:GOTO 1780 1300 STOP 1500 IF rec<>1 AND aut<>1 THEN PRINT FN at$(16,64);" ";FN at$(5,2);"*":PRINT FN at$(16,2);inverse1$;"* ESTOY PENSANDO *";inverse0$ 1505 ct=0:FOR l=4 TO 11:FOR c=4 TO 11 1510 IF MID$(a$(l),c,1)="x" THEN GOTO 3000 1550 NEXT c:NEXT l 1560 'analiza resultados 1570 IF ct=0 THEN GOTO 8750 1600 flo=0:ma=-400:FOR t=1 TO ct 1610 IF e(t,1)>ma THEN ma=e(t,1):sel=t 1620 IF e(t,1)=ma THEN flo=1 1630 NEXT t 1640 IF flo=1 THEN GOTO 1900 1650 lo1=e(sel,2):lo2=e(sel,3) 1660 li=e(sel,4):co=e(sel,5) 1670 bs3=e(sel,6):bs4=e(sel,7) 1680 IF aut=1 THEN GOTO 8870 1700 MID$(a$(li),co,1)="." 1710 IF bs3<>0 THEN MID$(a$(bs3),bs4,1)=".":fic2=fic2+1 1720 MID$(a$(lo1),lo2,1)="x" 1725 o$="":o$=o$+STR$(li-3)+STR$(co-3)+STR$(lo1-3)+STR$(lo2-3) 1726 t$="-" 1727 IF bs3<>0 THEN t$="x" 1728 PRINT FN at$(16,2);" " 1730 PRINT FN at$(12,2);inverse1$;"MI JUGADA:";inverse0$;MID$(o$,2,1);MID$(o$,4,1);t$;MID$(o$,6,1);MID$(o$,8,1) 1750 ju=ju+1:GOSUB 8000 1755 IF lo1=11 THEN fir2=fir2+1:MID$(a$(lo1),lo2,1)=".":FOR t=1 TO 30:PRINT FN at$(14,2);"** FICHA REINA **":PRINT FN at$(14,2);" ":NEXT t:GOSUB 8000 1760 IF (fir1+fic2=12) OR (fir2+fic1=12) THEN GOTO 8600 1770 IF aut=2 THEN aut=1 1780 PRINT FN at$(5,2);" ";FN at$(16,64);"*" 1782 v$="-":IF aut>0 THEN GOTO 8800 1783 PRINT FN at$(28,2);inverse1$;"TU MUEVES:"inverse0$;:INPUT "FC-FC:",f$:PRINT FN at$(28,2);SPC(25) 1784 IF f$="r" OR f$="R" THEN rec=1:aut=1:GOTO 8800 1785 IF rec=1 THEN rec=0:aut=0:PRINT FN at$(20,63);inverse1$;"TE RECOMIENDO:";inverse0$;f$:GOTO 1783 1788 fi=VAL(MID$(f$,1,1))+3 1790 co=VAL(MID$(f$,2,1))+3 1795 co2=VAL(MID$(f$,5,1))+3 1797 fi2=VAL(MID$(f$,4,1))+3 1800 IF MID$(a$(fi),co,1)<>"o" OR MID$(a$(fi2),co2,1)<>"." THEN GOTO 1780 1805 IF fi2>fi OR fi2=fi THEN GOTO 1780 1810 IF (fi-fi2=1 AND co2-co=1) THEN bs1=0:bs2=0:GOTO 1840 1820 IF (fi-fi2=1 AND co2-co=-1) THEN bs1=0:bs2=0:GOTO 1840 1822 IF (fi-fi2=2 AND co2-co=2) THEN IF (MID$(a$(fi-1),co+1,1)="x") THEN bs1=fi-1:bs2=co+1:v$="x":GOTO 1840 1824 IF (fi-fi2=2 AND co2-co=-2) THEN IF (MID$(a$(fi-1),co-1,1)="x") THEN bs1=fi-1:bs2=co-1:v$="x":GOTO 1840 1830 GOTO 1780 1840 PRINT FN at$(20,63);inverse1$;"TU JUGADA:";inverse0$;;MID$(f$,1,2);v$;MID$(f$,4,2);" " 1843 MID$(a$(fi),co,1)="." 1845 IF bs1<>0 THEN MID$(a$(bs1),bs2,1)=".":fic1=fic1+1 1850 MID$(a$(fi2),co2,1)="o" 1860 ju=ju+1:GOSUB 8000 1870 IF fi2=4 THEN fir1=fir1+1:MID$(a$(fi2),co2,1)=".":FOR t=1 TO 30:PRINT FN at$(18,62);"** FICHA REINA **":PRINT FN at$(18,62);" ":NEXT t:GOSUB 8000 1880 IF (fir1+fic2=12) OR (fir2+fic1=12) THEN GOTO 8600 1890 GOTO 1500 1900 sel=INT (RND*ct)+1:IF e(sel,1)<>ma THEN GOTO 1900 1910 GOTO 1650 2000 STOP 3000 'ANALIZA LOS MAVIMIENTOS 3010 IF MID$(a$(l+1),c+1,1)="." OR MID$(a$(l+1),c-1,1)="." OR (MID$(a$(l+2),c+2,1)="." AND MID$(a$(l+1),c+1,1)="o") OR (MID$(a$(l+2),c-2,1)="." AND MID$(a$(l+1),c-1,1)="o") THEN GOTO 3015 ELSE 1550 3015 mo1=0:mo2=0:mo3=0:mo4=0 3050 REM 3070 IF mo1=0 THEN IF MID$(a$(l+1),c+1,1)="." THEN lo1=l+1:lo2=c+1:bs1=0:bs2=0:mo1=1:GOTO 6000 3080 IF mo2=0 THEN IF MID$(a$(l+1),c-1,1)="." THEN lo1=l+1:lo2=c-1:bs1=0:bs2=0:mo2=1:GOTO 6000 3090 IF mo3=0 THEN IF (MID$(a$(l+2),c+2,1)="." AND MID$(a$(l+1),c+1,1)="o") THEN lo1=l+2:lo2=c+2:bs1=l+1:bs2=c+1:mo3=1:GOTO 6000 3100 IF mo4=0 THEN IF (MID$(a$(l+2),c-2,1)="." AND MID$(a$(l+1),c-1,1)="o") THEN lo1=l+2:lo2=c-2:bs1=l+1:bs2=c-1:mo4=1:GOTO 6000 3110 GOTO 1550 5999 STOP 6000 'EN PRUEVA MUEVE Y ANALIZA ESTADO DEL TABLERO 6002 ct=ct+1 6003 FOR y=4 TO 11:p$(y)=a$(y):NEXT y 6005 sum=0 6010 MID$(p$(lo1),lo2,1)="x" 6015 df=0 6020 IF bs1<>0 THEN MID$(p$(bs1),bs2,1)=".":sum=sum+50:df=1:IF (MID$(p$(lo1+1),lo2-1,1)<>"o" AND MID$(p$(lo1+1),lo2+1,1)<>"o") THEN sum=sum+800 6025 IF l=10 THEN sum=sum+15 6030 MID$(p$(l),c,1)="." 6200 FOR z=4 TO 11:FOR x=4 TO 11 6210 u$=MID$(p$(z),x,1) 6220 IF u$="x" THEN GOTO 6500 6230 REM IF u$="o" THEN GOTO 6240 NEXT x:NEXT z 6245 GOTO 3050 6500 REM 6510 IF df=1 THEN IF lo2"o" AND MID$(a$(lo1+1),lo2+1,1)<>"." AND MID$(a$(lo1-1),lo2-1,1)<>".") THEN sum=sum+500 6515 IF df=1 THEN IF lo2>c THEN IF (MID$(a$(lo1+1),lo2-1,1)<>"." AND MID$(a$(lo1+1),lo2+1,1)<>"o" AND MID$(a$(lo1-9),lo2+1,1)<>".") THEN sum=sum+500 6520 IF (MID$(p$(z+1),x+1,1)="o" AND MID$(p$(z+2),x+2,1)="." AND MID$(p$(z+3),x+3,1)="o") THEN sum=sum+20 6530 IF (MID$(p$(z+1),x-1,1)="o" AND MID$(p$(z+2),x-2,1)="." AND MID$(p$(z+3),x-3,1)="o") THEN sum=sum+20 6540 IF (MID$(p$(z+1),x-1,1)="o" AND MID$(p$(z+2),x-2,1)="." AND (MID$(p$(z+3),x-3,1)="." OR MID$(p$(z+3),x-3,1)="x") AND MID$(p$(z-1),x+1,1)<>"." AND MID$(p$(z+1),x+1)<>"o") THEN sum=sum+80 6550 IF (MID$(p$(z+1),x+1,1)="o" AND MID$(p$(z+2),x+2,1)="." AND (MID$(p$(z+3),x+3,1)="." OR MID$(p$(z+3),x+3,1)="x") AND MID$(p$(z-1),x-1,1)<>"." AND MID$(p$(z+1),x-1)<>"o") THEN sum=sum+80 6560 IF (MID$(p$(z+1),x+1,1)="o" AND MID$(p$(z-1),x-1,1)=".") THEN sum=sum-50 6570 IF (MID$(p$(z+1),x-1,1)="o" AND MID$(p$(z-1),x+1,1)=".") THEN sum=sum-50 6580 IF (MID$(p$(z+1),x+1,1)="o" AND MID$(p$(z-1),x-1,1)="." AND MID$(p$(z-2),x-2,1)="x") THEN sum=sum+10 6590 IF (MID$(p$(z+1),x-1,1)="o" AND MID$(p$(z-1),x+1,1)="." AND MID$(p$(z-2),x+2,1)="x") THEN sum=sum+10 6650 e(ct,1)=sum 6655 e(ct,2)=lo1 6660 e(ct,3)=lo2 6665 e(ct,4)=l 6670 e(ct,5)=c 6675 e(ct,6)=bs1 6680 e(ct,7)=bs2 6800 GOTO 6240 8000 FOR t=4 TO 11:FOR y=4 TO 11 8010 u$=MID$(a$(t),y,1) 8020 IF u$="x" THEN g1$=inverse1$+CHR$(134)+CHR$(138)+CHR$(138)+CHR$(140):g2$=CHR$(131)+CHR$(138)+CHR$(138)+CHR$(137)+inverse0$ 8030 IF u$="o" THEN g1$=CHR$(134)+CHR$(138)+CHR$(138)+CHR$(140):g2$=CHR$(131)+CHR$(138)+CHR$(138)+CHR$(137) 8040 IF u$="." THEN g1$=inverse1$+" ":g2$=" "+inverse0$ 8045 IF u$=" " THEN GOTO 8090 8050 PRINT FN at$(t*2,y*4+12);g1$;FN at$(t*2+1,y*4+12);g2$ 8090 NEXT y:NEXT t 8095 IF gt=1 THEN GOTO 8200 8097 gt=1 8100 u$="":FOR t=1 TO 32:u$=u$+CHR$(143):NEXT t 8110 PRINT FN at$(7,28);inverse1$+u$+inverse0$ 8115 PRINT FN at$(24,28);inverse1$+u$+inverse0$ 8120 FOR t=7 TO 24:PRINT FN at$(t,27);inverse1$;CHR$(143);FN at$(t,60);CHR$(143)+inverse0$:NEXT t 8150 FOR t=1 TO 8:PRINT FN at$(t*2+7,24);t;FN at$(6,t*4+25);t:NEXT t 8200 PRINT FN at$(8,2);"FICHAS COMIDAS:";fic2;FN at$(24,63);"FICHAS COMIDAS:";fic1 8210 PRINT FN at$(10,2);"FICHAS REINA:";fir2;FN at$(22,63);"FICHAS REINA:";fir1 8220 PRINT FN at$(25,35);"JUGADA NUMERO:";ju 8500 RETURN 8600 PRINT FN at$(26,36);inverse1$;"** GAME OVER **";inverse0$;FN at$(28,33);"...PULSA UNA TECLA..." 8605 IF INKEY$="" THEN GOTO 8605 8610 IF flq=1 THEN GOTO 8753 8616 FOR t=1 TO 40:PRINT scra$:NEXT t 8618 puo=(fir2*2)+fic2:puh=(fir1*2)+fic1:puo=puo+(12-(fic1+fir2)):puh=puh+(12-(fic2+fir1)) 8620 PRINT FN at$(5,30);"*** PUNTUACION FINAL ***";FN at$(8,30);"ORDENADOR:";puo;FN at$(10,30);"HUMANO:";puh 8625 IF puo>puh THEN PRINT FN at$(14,30);"$$$ YO HE GANADO $$$" 8630 IF puh>puo THEN PRINT FN at$(14,30);"$$$ TU HAS GANADO $$$" 8635 IF puh=puo THEN PRINT FN at$(14,30);"$$$ HA SIDO TABLAS $$$" 8650 PRINT FN at$(20,30);"OTRA PARTIDA ? (S/N):" 8652 r$=INKEY$ 8655 IF r$="s" OR r$="S" THEN RUN 8660 IF r$="n" OR r$="N" THEN PRINT cls$:PRINT "BIEN,OTRO DIA SERA.....":END 8665 GOTO 8652 8700 STOP 8750 flq=1:GOTO 8600 8753 FOR t=1 TO 40:PRINT scra$:NEXT t 8755 PRINT FN at$(5,30);"NO PUEDO MOVER NINGUNA FICHA";FN at$(7,30);"POR LO TANTO ES TABLAS." 8760 GOTO 8650 8800 FOR t=1 TO 14:p$(t)=a$(t):k$(t)=a$(t):NEXT t:FOR t=14 TO 1 STEP -1:FOR y=14 TO 1 STEP -1 8806 u$=MID$(a$(t),y,1) 8807 MID$(p$(15-t),15-y,1)=u$ 8810 NEXT y:NEXT t 8820 FOR t=1 TO 14:FOR y=1 TO 14 8825 u$=MID$(p$(t),y,1) 8827 h$=u$ 8830 IF u$="x" THEN h$="o" 8835 IF u$="o" THEN h$="x" 8840 MID$(p$(t),y,1)=h$ 8850 NEXT y:NEXT t 8852 FOR t=1 TO 14:a$(t)=p$(t):NEXT t:GOTO 1500 8870 liin=(8-li)+4:coin=(8-co)+4:lifi=(8-lo1)+4:cofi=(8-lo2)+4 8872 o$=STR$(liin)+STR$(coin)+STR$(lifi)+STR$(cofi) 8873 f$=" - " 8874 MID$(f$,1,1)=MID$(o$,2,1) 8876 MID$(f$,2,1)=MID$(o$,4,1) 8878 MID$(f$,4,1)=MID$(o$,6,1) 8880 MID$(f$,5,1)=MID$(o$,8,1) 8885 aut=2 8887 FOR t=1 TO 14:a$(t)=k$(t):NEXT t 8890 GOTO 1785 9900 STOP 9995 FOR t=1 TO 14:PRINT FN at$(t+10,25);a$(t):NEXT t:RETURN 9996 PRINT FN at$(11,0);:FOR t=1 TO 14:PRINT p$(t):NEXT t:RETURN 9997 FOR t=1 TO ct:FOR y=1 TO 7:PRINT e(t,y);" ";:NEXT y:PRINT:NEXT t 9998 STOP 9999 CLEAR:SAVE "paranoid" ===== Controls ===== It is played with the keyboard. To play, the coordinates are entered in the following order (and with a hyphen in the middle): row-column (of the piece to move) row-column (of the box to which we are going to move the piece) ===== 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 Paranoid game 4.- Type run "Paranoid" and press the "ENTER" key ===== Extras ===== * Program listing in high-circulation magazines of the time {{:otros:Paranoid_programa_01.jpg?170}} {{:otros:Paranoid_programa_02.jpg?170}} {{:otros:Paranoid_programa_03.jpg?170}} {{:otros:Paranoid_programa_04.jpg?170}} {{:otros:Paranoid_programa_05.jpg?180}} {{:otros:Paranoid_programa_06.jpg?180}} {{:otros:Paranoid_programa_07.jpg?180}} ===== Download ===== * {{:otros:Paranoid (Basic).zip|Paranoid }}(game in dsk format, compressed with zip) ===== Video ===== {{ youtube>Q5iRClYEj0c?large }} ===== Links ===== * [[http://www.ooparts-universe.com/prgs/index_esp.html|Official website of Jorge PĂ©rez Barreiro]]