Random game
Random game
Random demo
  • Entry name:
     Vrchcaby 
  • Category:
    Games
  • Publisher/Developer:
    Flop 9
  • Year:
    1988
  • Code:
    Petr Ornst
  • Programming language:
    Atari BASIC
  • Entry name:
    Vrchcaby
  • Category:
    Games
  • Publisher/Developer:
    Flop 9
  • Year:
    1988
Vrchcaby Vrchcaby Vrchcaby Vrchcaby Vrchcaby Vrchcaby Vrchcaby Vrchcaby Vrchcaby
Listing 1
1 ? "":​O=0:​DIM A$(8),​B$(45),​C$(3),​X$(3),​Q(6),​CH(6),​TAB(10,​5),​N(6):​Z=0:​S=0
2 FOR F=1 TO 5:​TAB(0,​F)=10:​FOR F1=1 TO 10:​TAB(F1,​F)=0:​NEXT F1:​NEXT F:​GOTO 2000
3 FOR F=1 TO 6:​Q(F)=0:​CH(F)=0:​N(F)=0:​NEXT F
4 REM 
5 REM KRESLENI KOSTEK
10 REM FOR X=2 TO 32 STEP 6
20 REM GOSUB 310
30 REM NEXT X
60 REM FOR F=0 TO 5:​P=INT(RND(0)*6)+1
70 REM ON P GOSUB 370,​371,​372,​373,​374,​375
80 REM POSITION 3+F*6,​18:​? A$:​POSITION 3+F*6,​19:​? B$:​POSITION 3+F*6,​20:​? C$
90 REM NEXT F
125 IF O=0 THEN GOTO 140
130 POSITION 7,​2*O+2:​? ""
140 O=O+1:​IF O>H THEN O=1
150 TAB(0,​O)=TAB(0,​O)+3
155 FOR X=16 TO 22:​POSITION 0,​X:​? " ":​NEXT X
160 POSITION 7,​2*O+2:​? ""
165 POSITION 8,​2*O+2:​? TAB(0,​O):​IF TAB(0,​O)>=10 THEN 170
167 POSITION 8,​2*O+2:​? " ";TAB(0,​O)
170 FOR X=1 TO 6:​Q(X)=0:​CH(X)=0:​NEXT X
200 POSITION 0,​23:​? " HZD";
205 IF PEEK(764)=57 THEN POKE 764,​255:​GOTO 208
206 IF PEEK(764)=58 OR PEEK(764)=23 THEN 1000
207 GOTO 205
208 HODY=INT(RND(0)*20)+3:​FOR HOD=1 TO HODY
209 SOUND 0,​240,​4,​6:​FOR X=1 TO 10:​NEXT X:​POKE 53761,​31:​POKE 53761,​16:​SOUND 1,​240,​4,​6
210 FOR X=1 TO 18:​NEXT X:​POKE 53763,​31:​POKE 53763,​16:​FOR P=1 TO 40:​NEXT P
211 NEXT HOD
222 TAB(0,​O)=TAB(0,​O)-1:​IF TAB(0,​O)<0 THEN TAB(0,​O)=0:​GOTO 140
225 FOR E=1 TO 6
230 IF CH(E)>0 THEN 250
232 X=(E-1)*6+2
235 P=INT(RND(0)*6)+1:​Q(E)=P
236 GOSUB 310
238 ON P GOSUB 370,​371,​372,​373,​374,​375
240 POSITION 1+X,​18:​? A$:​POSITION 1+X,​19:​? B$:​POSITION 1+X,​20:​? C$
250 NEXT E
260 POSITION 8,​2*O+2:​? TAB(0,​O):​IF TAB(0,​O)<10 THEN 280
270 GOTO 480
280 POSITION 8,​2*O+2:​? " ";TAB(0,​O)
290 GOTO 480
310 POSITION X,​17:​? ""
320 POSITION X,​18:​? "| |"
330 POSITION X,​19:​? "| |"
340 POSITION X,​20:​? "| |"
350 POSITION X,​21:​? ""
351 RETURN
370 A$=" ":​B$="  ":​C$=" ":​RETURN
371 A$=" ":​B$=" ":​C$=" ":​RETURN
372 A$=" ":​B$="  ":​C$=" ":​RETURN
373 A$=" ":​B$=" ":​C$=" ":​RETURN
374 A$=" ":​B$="  ":​C$=" ":​RETURN
375 A$=" ":​B$=" ":​C$=" ":​RETURN
480 POSITION 0,​23:​? " SpaceDelReturn";
490 Z=3:​F=1
495 POSITION 3,​16:​? "<->"
500 OPEN #2,​4,​0,​"K:​"
510 GET #2,​Y:​CLOSE #2
520 IF Y=42 OR Y=43 THEN 600
530 IF Y=32 OR Y=126 THEN 800
540 IF Y=155 THEN 900
550 GOTO 490
600 POSITION Z,​16:​? " ";
605 POSITION Z,​16:​? " ";
610 IF Y=43 THEN 700
620 Z=Z+6:​F=F+1
630 IF Z>33 THEN Z=3:​F=1
640 POSITION Z,​16:​? "<->";
650 GOTO 500
700 Z=Z-6:​F=F-1
710 IF Z<0 THEN Z=33:​F=6
720 POSITION Z,​16:​? "<->";
730 GOTO 500
800 IF Y=126 THEN 850
810 POSITION Z+1,​22:​? "";
830 CH(F)=F
840 GOTO 500
850 POSITION Z+1,​22:​? " ";
860 CH(F)=0
870 GOTO 500
900 POSITION Z,​16:​? " ";
910 FOR X=0 TO 5:​IF CH(X+1)>0 THEN 925
915 FOR M=0 TO 4:​POSITION 2+6*X,​17+M:​? " "
920 NEXT M
925 NEXT X
940 IF TAB(0,​O)=1 THEN 950
945 GOTO 200
950 POSITION 0,​23:​? "";:​FOR PAUSE=1 TO 350:​NEXT PAUSE:​GOTO 200
1000 IF PEEK(764)=58 THEN POKE 764,​255:​GOTO 1410
1002 POKE 764,​255
1003 S=0:​Z=0:​FOR X=1 TO 6:​IF CH(X)=0 THEN 1010
1005 S=S+Q(X):​Z=Z+1
1010 NEXT X
1020 IF Z<3 THEN 1310
1025 POSITION 0,​23:​? " <->Return ";
1030 X=2*O+2
1031 FOR W=3 TO 24 STEP 3
1032 IF TAB(W/3,​O)=0 THEN POP:​GOTO 1035
1033 NEXT W
1035 POSITION 9+W,​X:​? "<->"
1040 OPEN #3,​4,​0,​"K:​":​GET #3,​BOD:​CLOSE #3
1050 IF BOD=42 OR BOD=43 OR BOD=155 THEN 1070
1060 GOTO 1040
1070 IF BOD=155 THEN 1200
1075 IF BOD=43 THEN 1150
1080 POSITION 9+W,​X:​? "| "
1081 W=W+3:​IF TAB(W/3,​O)=0 THEN 1085
1082 IF W=27 THEN W=0
1083 GOTO 1081
1085 IF W>27 THEN W=3:​IF TAB(1,​O)>0 THEN 1081
1090 POSITION 9+W,​X:​? "<->"
1100 GOTO 1040
1150 POSITION 9+W,​X:​? "| "
1152 W=W-3:​IF TAB(W/3,​O)=0 THEN 1155
1153 IF W=0 THEN W=30
1154 GOTO 1152
1155 IF W=0 THEN W=27:​IF TAB(9,​0)>0 THEN 1152
1156 POSITION 9+W,​X:​? "<->"
1160 GOTO 1040
1200 IF TAB(W/3,​O)>0 THEN 1320
1210 IF Z<6 THEN 1290
1250 IF W/3=9 AND S=36 THEN 1400
1275 IF W/3=8 AND S=21 THEN 1480
1280 IF W/3=7 THEN 1510
1290 IF W/3<7 AND S/Z=W/3 THEN 1400
1300 POSITION 0,​23:​? " ";:​FOR PAUSE=1 TO 350:​NEXT PAUSE
1305 POSITION 9+W,​X:​? "|"
1306 GOTO 480
1310 POSITION 0,​23:​? " ";:​FOR PAUSE=1 TO 350:​NEXT PAUSE
1315 POSITION 12+W,​X:​? "|"
1316 GOTO 480
1320 POSITION 0,​23:​? " ";:​FOR PAUSE=1 TO 350:​NEXT PAUSE
1325 POSITION 9+W,​X:​? "|"
1326 GOTO 1025
1400 TAB(W/3,​O)=S:​POSITION 9+W,​X:​? "|";TAB(W/3,​O);:​IF TAB(W/3,​O)<10 THEN ? " "
1410 S=0:​Z=0
1415 POSITION 0,​22:​? " ";
1450 FOR X=1 TO 6:​Q(X)=0:​CH(X)=0:​NEXT X
1460 FOR X=1 TO 9:​IF TAB(X,​O)=0 THEN POP:​GOTO 130
1465 NEXT X
1470 GOTO 1600
1480 PO=0:​FOR J=6 TO 1 STEP -1:​FOR DR=1 TO 6
1485 IF Q(DR)=J THEN PO=PO+1
1487 NEXT DR:​NEXT J
1490 IF PO=6 THEN 1400
1500 GOTO 1300
1510 FOR L=1 TO 5:​FOR M=L+1 TO 6
1520 IF Q(L)<Q(M) THEN HOD=Q(L):​Q(L)=Q(M):​Q(M)=HOD
1530 NEXT M:​NEXT L
1540 IF Q(1)=Q(2) AND Q(1)=Q(3) THEN 1550
1545 GOTO 1300
1550 IF Q(4)=Q(5) AND Q(1)>Q(4) THEN 1560
1555 GOTO 1300
1560 IF Q(4)>Q(6) THEN 1400
1570 GOTO 1300
1600 FOR O=1 TO H:​FOR X=0 TO 9
1610 Q(O)=Q(O)+TAB(X,​O):​NEXT X:​CH(O)=Q(O):​NEXT O
1620 FOR X1=1 TO H-1:​FOR X2=X1+1 TO H
1630 IF Q(X1)<Q(X2) THEN HOD=Q(X1):​Q(X1)=Q(X2):​Q(X2)=HOD
1640 NEXT X2:​NEXT X1
1650 FOR Y=16 TO 23:​POSITION 0,​Y:​? " ";:​NEXT Y
1660 FOR X=1 TO H:​FOR O=1 TO H:​IF Q(X)=CH(O) THEN POP:​GOTO 1668
1665 NEXT O
1668 RESTORE 2500:​POKE 182,​O-1:​READ A$
1670 POSITION 3,​15+X:​C$=STR$(X):​B=ASC(C$)+128:​? CHR$(B);" ";A$
1680 POSITION 25,​15+X:​? Q(X);" BODU":​NEXT X
1690 POSITION 0,​23:​? " ";
1700 INPUT A$
1710 IF A$="ANO" THEN 2
1800 END
2000 GRAPHICS 2:​POSITION 5,​3:​? #6;"VRCHCABY"
2002 POSITION 2,​6:​? #6;"HRA S KOSTKAMI"
2003 POSITION 2,​8:​? #6;" PRO 1-5 HRACU"
2004 ? " (C) 1988 MUDr.Petr Ornst"
2010 RESTORE 2400:​FOR I=1 TO 66:​READ X,​Y
2015 Z=15:​IF X=0 THEN FOR P=1 TO 10:​NEXT P:​GOTO 2030
2020 FOR P=Z TO 5 STEP -2:​SOUND 0,​X,​10,​P:​SOUND 1,​Y,​10,​P:​NEXT P
2025 Z=Z-4:​IF Z<0 THEN 2030
2026 GOTO 2020
2030 NEXT I:​FOR X=1 TO 60:​NEXT X:​SOUND 0,​0,​0,​0:​SOUND 1,​0,​0,​0
2040 GRAPHICS 0:​POSITION 0,​23:​? " ";
2050 IF PEEK(732)=17 OR PEEK(53279)=6 THEN 2070
2060 GOTO 2050
2070 POKE 732,​0:​IF PEEK(53279)=6 THEN 2300
2080 GRAPHICS 17:​POSITION 4,​8:​? #6;"NAVOD NA HRU"
2085 FOR P=1 TO 150:​NEXT P
2090 GRAPHICS 0:​? "Na zacatku hry ma kazdy hrac 10 hodu k dobru"
2092 ? " oznacuje prave hrajiciho hrace"
2095 ? "Kazde kolo jsou k disposici 3 hody"
2100 ? "Nevyuzite hody se zapisuji k dobru"
2102 ? "Hodnoty kostek do dalsiho hodu zacho- vej oznacenim +"
2105 ? "Po splneni figury se do tabulky zapi- suji hodnoty vsech kostek oznacenych +";
2110 ? "Hra konci,​kdyz jeden z hracu splni vsechny figury"
2115 ? "Vyhrava hrac s nejvetsim poctem bodu"
2122 ?:​?:​?
2125 ? "Figury -=alespon 3 kostky stejne hodnoty"
2130 ? "Figura ozen=tri kostky vysoke,​dve nizsi,​jedna nejnizsi hodnoty"
2135 ? "Figura stupna=kazda kostka jine hod-noty"
2140 ? "Figura neral=sest kostek hodnoty 6"
2150 POSITION 0,​23:​? " ";
2160 GOTO 2050
2300 GRAPHICS 0:​POSITION 5,​5
2310 ? "Pocet hracu";:​INPUT H:​B$="DATA":​C$=",​"
2320 FOR X=1 TO H:​POSITION 5,​X+5:​? "JMENO ";X;". HRACE";:​INPUT A$:​IF X=H THEN 2340
2330 A$(LEN(A$)+1)=C$
2340 B$(LEN(B$)+1)=A$:​NEXT X
2350 ? "":​? 2500;B$:​? "CONT"
2360 POSITION 2,​0:​POKE 842,​13:​STOP
2370 POKE 842,​12:​? "":​POKE 752,​1
2400 DATA 91,​72,​0,​0,​91,​72,​96,​81,​91,​108,​0,​0,​0,​0,​0,​0,​96,​81,​91,​72,​91,​68,​81,​60,​0,​0,​96,​81,​0,​0,​96,​81,​0,​0,​0,​0,​0,​0
2401 DATA 91,​72,​91,​68,​91,​72,​96,​81,​91,​108,​0,​0,​0,​0,​96,​81,​91,​72,​91,​68,​81,​60,​0,​0,​91,​81,​0,​0,​0,​0,​0,​0,​0,​0
2402 DATA 91,​72,​81,​68,​91,​72,​96,​81,​91,​108,​0,​0,​91,​108,​96,​81,​91,​108,​96,​121,​108,​128,​121,​162,​0,​0,​121,​162,​0,​0,​0,​0,​0,​0
2403 DATA 91,​108,​0,​0,​96,​121,​0,​0,​91,​108,​0,​0,​81,​96,​0,​0,​68,​81,​0,​0,​72,​91,​0,​0,​81,​96
2500 DATA W,​E
3000 POSITION 7,​2:​? ""
3005 X=3
3010 POSITION 0,​X:​? "";:​FOR F=1 TO 27:​? "";:​NEXT F:​? ""
3020 POSITION 7,​X+1:​? "":​POSITION 11,​X+1:​? "":​POSITION 39,​X+1:​? ""
3030 X=X+2:​IF X>12 THEN 3050
3040 GOTO 3010
3050 POSITION 0,​13:​FOR X=0 TO 39:​? "";:​NEXT X
3051 FOR Y=4 TO 12 STEP 2
3052 FOR X=12 TO 36 STEP 3
3053 POSITION X,​Y:​? "|"
3054 NEXT X:​NEXT Y
3060 FOR X=0 TO H-1
3070 READ A$:​POSITION 0,​2*X+4:​? A$:​POSITION 8,​2*X+4:​? TAB(0,​X+1)
3090 NEXT X
3200 GOTO 5
5000 Q(1)=5:​Q(2)=3:​Q(3)=4
5010 FOR X1=1 TO 3:​FOR X2=X1-1 TO 3
5020 IF Q(X1)>=Q(X2) THEN GOSUB 1900
5030 NEXT X2:​NEXT X1
5040 FOR X=1 TO 3:​PRINT Q(X),​CH(X):​NEXT X
5050 END	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!