User Tools

Site Tools


en:paranoid

PARANOID

Info

Author Jorge Perez Barreiro
Computer Amstrad PCW 8256 / 8512 / 9512
Year 1988
Gender Board
Controls Keyboard
Languages Spanish
Status Preserved

Screenshots

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<c THEN IF (MID$(a$(lo1+1),lo2-1,1)<>"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

paranoid_programa_01.jpg paranoid_programa_02.jpg paranoid_programa_03.jpg paranoid_programa_04.jpg

paranoid_programa_05.jpg paranoid_programa_06.jpg paranoid_programa_07.jpg

Download

  • Paranoid (game in dsk format, compressed with zip)

Video

en/paranoid.txt · Last modified: 2022/06/30 14:51 by jevicac