Mensch ärgere Dich nicht
Das Programm Mensch ärgere Dich nicht entspricht den Regeln, nach denen ich spiele. Da dieses Spiel oft mit Varianten gespielt wird, können kleinere Differenzen zu den Ihnen bekannten Regeln auftreten.
An diesem Spiel können bis zu vier Personen teilnehmen. Fehlende Mitspieler können durch Computerspieler ersetzt werden.
Mensch ärgere Dich nicht besteht aus drei Teilen. Dem Lade-(Mensch), Anleitungs-(ärgere) und Hauptprogramm (Dich nicht). Die im Programm enthaltenen Unterprogramme sind durch REM-Zeilen gekennzeichnet. Die POKEs 808, 774 und 775, die sich in den REM-Zeilen befinden, sollten erst nach dem Eintippen eingegeben werden, da sie die LIST- und die RUN/STOP-Reset-Funktion sperren.
Die Namen der Teilprogramme (oben in Klammern angegeben) sollten beim Eintippen beibehalten werden, da das Ladeprogramm die anderen Teile nachlädt.
(Ralf Hahn / rg)10 rem mensch aergere doch nicht - lader 100 poke53281,0:poke53280,0 120 print"{clr}":poke211,7:poke214,7:sys58640:poke646,1 130 print"{wht}m{red}e{cyn}n{pur}s{grn}c{blu}h {yel}a{orng}e{brn}r{lred}g{gry1}e{lgrn}r{lblu}e "; 140 print"d{blu}i{yel}c{red}h {gry3}n{lred}i{yel}c{blu}h{wht}t" 150 print"{rght}{rght}{rght}{rght}{rght}{rght}{red}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}" 160 print"{down}{down}{down}{gry3} brauchen sie eine spielanleitung? (j/n)" 170 get a$:ifa$=""then170 180 if a$="j"then p$="aergere":goto210 190 if a$="n"then p$="dich nicht":goto210 200 goto170 210 print"{clr}{down}{down}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}bitte warten" 220 q=peek(186) 230 print"{home}{blk}load";chr$(34);p$;chr$(34);",";q:print"{down}{down}{down}{down}run" 240 poke23040,0:poke43,1:poke44,90 250 poke198,5:poke631,19:poke632,13:poke633,13:poke634,13:poke635,0:new
10 REM MENSCH AERGERE DOCH NICHT - LADER 100 POKE 53281,0:POKE 53280,0 120 PRINT"{CLR}":POKE 211,7:POKE 214,7:SYS 58640:POKE 646,1 130 PRINT"{WHITE}M{RED}E{CYAN}N{PURPLE}S{GREEN}C{BLUE}H{SPACE,YELLOW}A{ORANGE}E{BROWN}R{LIG.RED}G{GREY1}E{LIG.GREEN}R{LIG.BLUE}E "; 140 PRINT"D{BLUE}I{YELLOW}C{RED}H{SPACE,GREY3}N{LIG.RED}I{YELLOW}C{BLUE}H{WHITE}T" 150 PRINT"{6RIGHT,RED}***************************" 160 PRINT"{3DOWN,GREY3,SPACE}BRAUCHEN SIE EINE SPIELANLEITUNG? (J/N)" 170 GET A$:IF A$="" THEN170 180 IF A$="J" THEN P$="AERGERE":GOTO 210 190 IF A$="N" THEN P$="DICH NICHT":GOTO 210 200 GOTO 170 210 PRINT"{CLR,9DOWN,12RIGHT}BITTE WARTEN" 220 Q=PEEK (186) 230 PRINT"{HOME,BLACK}LOAD";CHR$ (34);P$;CHR$ (34);",";Q:PRINT"{4DOWN}RUN" 240 POKE 23040,0:POKE 43,1:POKE 44,90 250 POKE 198,5:POKE 631,19:POKE 632,13:POKE 633,13:POKE 634,13:POKE 635,0:NEW
10 rem ********************************* 20 rem * * 30 rem * --mensch aergere dich nicht-- * 40 rem * von * 50 rem * ralf hahn * 60 rem * luisenthalerstrasse 32 * 70 rem * 6623 altenkessel * 80 rem * * 90 rem ********************************* 100 poke53280,0:poke53281,0:poke774,226:poke775,225 110 rem poke774,226:poke775,225 listsperre 120 print"{clr}":poke211,14:poke214,24:sys58640 130 print"{gry3}anleitung" 140 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}" 150 print"{down}{down}* mensch aergere dich nicht wird mit {down}2-4 personen gespielt." 160 print"{down}{down}* jeder spieler erhaelt 4 figuren {down}einer farbe." 170 print"{down}{down}* ziel des spieles ist es alle 4 figuren {down}in uhrzeigerrichtung"; 180 print" um das spielfeld" 190 print"{down} zu bewegen und die gleichfarbigen" 200 print"{down} felder in der mitte zu erreichen. 210 poke198,0:wait198,1 220 print"{down}{down}* wuerfelt man eine '6' so darf man eine {down}neue figur 'ansetzen'." 230 print"{down} das heisst auf den gleichfarbigen {down}pfeil im spielfeld stellen." 240 print"{down} befinden sich noch figuren in den {down} feldern am spielfeldrand,so"; 250 print" muss man {down}zuerst das'loch'-das heisst den pfeil- {down}freimachen." 260 print"{down}{down}* wer eine '6' wuerfelt, darf nochmal {down}wuerfeln.{down}{down}{down}" 270 poke198,0:wait198,1 280 print"{down}{down}* trifft eine figur auf ein besetztes {down} feld, so wird die dort"; 290 print" stehende figur {down}'herausgeworfen' -zurueck zum start." 300 print"{down}{down}* hat eine figur das aeussere kreuz {down}vollstaendig umzogen,so"; 310 print" rueckt sie auf {down}die kreise ihrer farbe ein und darf {down}nicht mehr"; 320 print" herausgeworfen werden." 330 print"{down}{down}* kann ein spieler nicht ziehen,weil er {down}eine eigene figur "; 340 print"schlagen muesste {down}oder die gewuerfelte zahl zu gross ist" 350 print" -so ist der naechste spieler dran." 360 poke198,0:wait198,1 370 print"{clr}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}nochmal? (j/n)" 380 get a$:ifa$=""then380 390 if a$="n"then 420 400 if a$="j"then run 410 goto380 420 print"{clr}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{down}{down}{down}{down}{down}{down}{down}{down}bitte warten" 430 print"{home}{blk}load";chr$(34);"dich nicht";chr$(34);","peek(186) 440 print"{down}{down}{down}{down}run" 450 poke198,5:poke631,19:poke632,13:poke633,13:poke634,13:poke635,0:new
10 REM ********************************* 20 REM * * 30 REM * --MENSCH AERGERE DICH NICHT-- * 40 REM * VON * 50 REM * RALF HAHN * 60 REM * LUISENTHALERSTRASSE 32 * 70 REM * 6623 ALTENKESSEL * 80 REM * * 90 REM ********************************* 100 POKE 53280,0:POKE 53281,0:POKE 774,226:POKE 775,225 110 REM POKE774,226:POKE775,225 LISTSPERRE 120 PRINT"{CLR}":POKE 211,14:POKE 214,24:SYS 58640 130 PRINT"{GREY3}ANLEITUNG" 140 PRINT"{13RIGHT}***********" 150 PRINT"{2DOWN}* MENSCH AERGERE DICH NICHT WIRD MIT{6SPACE,DOWN}2-4 PERSONEN GESPIELT." 160 PRINT"{2DOWN}* JEDER SPIELER ERHAELT 4 FIGUREN{9SPACE,DOWN}EINER FARBE." 170 PRINT"{2DOWN}* ZIEL DES SPIELES IST ES ALLE 4 FIGUREN{2SPACE,DOWN}IN UHRZEIGERRICHTUNG"; 180 PRINT" UM DAS SPIELFELD" 190 PRINT"{DOWN,2SPACE}ZU BEWEGEN UND DIE GLEICHFARBIGEN" 200 PRINT"{DOWN,2SPACE}FELDER IN DER MITTE ZU ERREICHEN. 210 POKE 198,0:WAIT 198,1 220 PRINT"{2DOWN}* WUERFELT MAN EINE '6' SO DARF MAN EINE{2SPACE,DOWN}NEUE FIGUR 'ANSETZEN'." 230 PRINT"{DOWN,2SPACE}DAS HEISST AUF DEN GLEICHFARBIGEN{7SPACE,DOWN}PFEIL IM SPIELFELD STELLEN." 240 PRINT"{DOWN,2SPACE}BEFINDEN SICH NOCH FIGUREN IN DEN{SPACE,DOWN,6SPACE}FELDERN AM SPIELFELDRAND,SO"; 250 PRINT" MUSS MAN{4SPACE,DOWN}ZUERST DAS'LOCH'-DAS HEISST DEN PFEIL-{2SPACE,DOWN}FREIMACHEN." 260 PRINT"{2DOWN}* WER EINE '6' WUERFELT, DARF NOCHMAL{5SPACE,DOWN}WUERFELN.{3DOWN}" 270 POKE 198,0:WAIT 198,1 280 PRINT"{2DOWN}* TRIFFT EINE FIGUR AUF EIN BESETZTES{4SPACE,DOWN,SPACE}FELD, SO WIRD DIE DORT"; 290 PRINT" STEHENDE FIGUR{3SPACE,DOWN}'HERAUSGEWORFEN' -ZURUECK ZUM START." 300 PRINT"{2DOWN}* HAT EINE FIGUR DAS AEUSSERE KREUZ{7SPACE,DOWN}VOLLSTAENDIG UMZOGEN,SO"; 310 PRINT" RUECKT SIE AUF{2SPACE,DOWN}DIE KREISE IHRER FARBE EIN UND DARF{5SPACE,DOWN}NICHT MEHR"; 320 PRINT" HERAUSGEWORFEN WERDEN." 330 PRINT"{2DOWN}* KANN EIN SPIELER NICHT ZIEHEN,WEIL ER{3SPACE,DOWN}EINE EIGENE FIGUR "; 340 PRINT"SCHLAGEN MUESSTE{6SPACE,DOWN}ODER DIE GEWUERFELTE ZAHL ZU GROSS IST" 350 PRINT"{2SPACE}-SO IST DER NAECHSTE SPIELER DRAN." 360 POKE 198,0:WAIT 198,1 370 PRINT"{CLR,7DOWN,13RIGHT}NOCHMAL? (J/N)" 380 GET A$:IF A$="" THEN380 390 IF A$="N" THEN 420 400 IF A$="J" THEN RUN 410 GOTO 380 420 PRINT"{CLR,13RIGHT,8DOWN}BITTE WARTEN" 430 PRINT"{HOME,BLACK}LOAD";CHR$ (34);"DICH NICHT";CHR$ (34);","PEEK (186) 440 PRINT"{4DOWN}RUN" 450 POKE 198,5:POKE 631,19:POKE 632,13:POKE 633,13:POKE 634,13:POKE 635,0:NEW
10 rem ********************************* 20 rem * * 30 rem * --mensch aergere dich nicht-- * 40 rem * von * 50 rem * ralf hahn * 60 rem * luisenthalerstrasse 32 * 70 rem * 6623 altenkessel * 80 rem * * 90 rem ********************************* 100 rem dimensionieren ****************** 110 rem poke657,128:poke774,226:poke775,252 shift-sperre 120 v=53248:pokev+21,0 130 dim s(4),na$(4),st(16),d(4),f$(4),f(4),dr(4),z(16),b(16),zf(16) 140 dim po(75),ge(75),fa(75) 150 print"{clr}" 160 for i=1 to 16:z(i)=3:next 170 d(1)=4:d(2)=4:d(3)=4:d(4)=4 180 rem zeichenverschiebung ************* 190 fori=51200to51252 200 read x:pokei,x:s=s+x:next 210 data 120,165,1,72,41,251,133,1,169,208,133,3 220 data 169,48,133,5,160,0,132,2,132,4,162,32 230 data 177,2,145,4,200,208,249,230,3,230,5,202 240 data 208,242,104,133,1,173,24,208,41,241,9,12 250 data 141,24,208,88,96 260 sys51200 270 rem eingabemodus ******************* 280 poke53280,0:poke53281,0:t=20 290 rem buchstabenaenderungen ********** 300 fori=0to2 310 read as 320 for x=0to7 330 read da 340 poke12288+8*as+x,da 350 nextx:nexti 360 data 27,219,60,102,126,102,102,102,0 370 data 85,102,0,102,102,102,102,60,0 380 data 29,102,60,102,102,102,102,60,0 390 n=0:c=0 400 for i=1 to4:read f$(i),f(i):next 410 data "gelb",7,"blau",6,"grUn",5,"rot",2 420 print"{clr}{grn}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down} ralf hahn {orng}pr[sentiert" 430 fora=0to20:gosub630:next:t=700 440 print"{home}{down}{down}{down}{down}{down}{gry3} mensch [rgere dich nicht" 450 for a=0to20:forz=1to15:poke1231+54272+int(25*rnd(1)),z:next:next 460 print"{down}{down}{yel} anmerkung: " 470 print" CCCCCCCCCC{SHIFT-*}{SHIFT-*} " 480 print"{down}{down} dieses spiel entspricht den regeln," 490 print"{down} nach denen {wht}ich " 500 print"{down} {red}mensch [rgere dich nicht{yel}" 510 print"{down} spiele" 520 print"{down}{down} -es k]nnten also differenzen bestehen" 530 print"{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rvon}taste{rvof}" 540 poke198,0:wait198,1 550 print"{clr}{gry3}{down}{down}{down} anleitung" 560 print" {red}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{gry3} 570 print"{down}{down}*gewUrfelt wird mit {rvon}space{rvof}." 580 print"{down}*der computerspieler wUerfelt und zieht {down} selbstst[ndig." 590 print"{down}*die figur wird mit {rvon}space{rvof} ausgewaehlt {down}und mit {rvon}return{rvof} gezogen. 600 print"{down}{down}{down}{red}das war's {SHIFT-*} den rest macht der computer" 610 print"{down}{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{wht}{rvon}taste{rvof}" 620 t=2000:poke198,0:wait198,1:goto640 630 forb=0tot:next:print"{down}";:return 640 print"{clr}" 650 n=0:c=0:a$="" 660 for i=1 to 4 670 poke53280,f(i):print"{clr}{down}{down}{down}{wht} m]chte ein spieler ";f$(i);" haben? {rvon}j{rvof}/{rvon}n{rvof}" 680 get a$:ifa$=""then680 690 ifa$="j"thenn=n+1:s(i)=2:goto810 700 ifa$="n"then 720 710 goto680 720 print"{down}{down} soll der computer den spieler":printspc(9);"{down}Ubernehmen? {rvon}j{rvof}/{rvon}n{rvof} 730 get a$:ifa$=""then730 740 ifa$="j"then c=c+1:s(i)=1:on c goto 770,780,790,800 750 ifa$="n"then:s(i)=0:goto850 760 goto730 770 na$(i)="computer 1":goto850 780 na$(i)="computer 2":goto850 790 na$(i)="computer 3":goto850 800 na$(i)="computer 4":goto850 810 print"{down}{down} bitte geben sie den namen des spielers":print"{down}{rght} ein! "; 820 print"-aber h]chstens 10 buchstaben!{down}" 830 poke19,64:input na$:poke19,0 840 na$(i)=left$(na$,10) 850 print"{down}CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC":next:poke53280,0 860 ifn+c<2thenprint"{clr}{rght}{rght}{rght}{rght}{rght}{rght}{down}{down}{down}{down}2 spieler braucht man schon!!":du=1:goto880 870 print"{clr}":goto890 880 for z=1to1000:next:goto640 890 print"{clr}{down}{down}{down}":for q=1 to4 900 if s(q)=0 then na$(q)="nicht belegt" 910 print"{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}spieler";q;": ";na$(q) 920 next 930 print"{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}eingaben korrekt? j/n"; 940 get a$:ifa$=""then940 950 ifa$="j"thenprint"{left}{left}{left}{left}{left}! ":goto980 960 if a$="n" then run 970 goto940 980 rem zeichenaenderungen ************* 990 fori=0to27 1000 read as 1010 for x=0to7 1020 read da 1030 poke12288+8*as+x,da 1040 nextx:nexti 1050 data 35,0,0,0,7,31,63,127,127 1060 data 36,0,0,0,224,248,252,254,254 1070 data 37,127,127,63,31,7,0,0,0 1080 data 38,254,254,252,248,224,0,0,0 1090 data 81,0,0,0,7,24,32,64,64 1100 data 82,0,0,0,224,24,4,2,2 1110 data 83,64,64,32,24,7,0,0,0 1120 data 84,2,2,4,24,224,0,0,0 1130 data 86,1,7,15,15,15,7,3,3 1140 data 87,128,224,240,240,240,224,192,192 1150 data 88,7,7,15,15,31,31,15,0 1160 data 89,224,224,240,240,248,248,240,0 1170 data 39,0,0,0,7,31,62,124,122 1180 data 40,0,0,0,224,248,124,62,94 1190 data 41,126,126,62,31,7,0,0,0 1200 data 42,126,126,124,248,224,0,0,0 1210 data 68,0,0,0,7,31,63,127,124 1220 data 69,0,0,0,224,248,124,190,30 1230 data 70,124,127,63,31,7,0,0,0 1240 data 71,30,190,124,248,224,0,0,0 1250 data 72,0,0,0,7,31,62,126,126 1260 data 73,0,0,0,224,248,124,126,126 1270 data 74,122,124,62,31,7,0,0,0 1280 data 75,94,62,124,248,224,0,0,0 1290 data 76,0,0,0,7,31,62,125,120 1300 data 77,0,0,0,224,248,252,254,30 1310 data 78,120,125,62,31,7,0,0,0 1320 data 79,30,254,252,248,224,0,0,0 1330 rem bildaufbau ******************** 1340 print"{clr}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{wht}mensch";spc(8);"[rgere":print"{down}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}dich";spc(11);"nicht" 1350 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}":po(0)=1532 1360 fori=1to16:read po:read fa:po(i)=po:fa(i)=fa 1370 if s(int((i-1)/4)+1)=0 then ge(i)=35:goto1390 1380 ge(i)=86 1390 next 1400 ge=81:fa=12 1410 fori=17to56:read po:po(i)=po:ge(i)=ge:fa(i)=fa 1420 next 1430 ge=35 1440 fori=57to72:read po:read fa:po(i)=po:ge(i)=ge:fa(i)=fa 1450 next 1460 ge(17)=72:fa(17)=7 1470 ge(27)=76:fa(27)=6 1480 ge(37)=39:fa(37)=5 1490 ge(47)=68:fa(47)=2 1500 fori=1to72 1510 pokepo(i),ge(i):pokepo(i)+54272,fa(i) 1520 pokepo(i)+1,ge(i)+1:pokepo(i)+54273,fa(i) 1530 pokepo(i)+40,ge(i)+2:pokepo(i)+54312,fa(i) 1540 pokepo(i)+41,ge(i)+3:pokepo(i)+54313,fa(i) 1550 next 1560 fori=1to16:ge(i)=35:next 1570 fori=1090to1930step40:pokei,93:pokei+54272,5:next 1580 poke1650,107:fori=1651to1663:pokei,67:pokei+54272,5:next 1590 data1162,7,1165,7,1242,7,1245,7,1722,6,1725,6,1802,6,1805,6 1600 data 1707,5,1710,5,1787,5,1790,5,1147,2,1150,2,1227,2,1230,2,1078 1610 data 1158,1238,1318,1398,1400,1402,1404,1406,1486,1566,1564,1562,1560,1558 1620 data 1638,1718,1798,1878,1876,1874,1794,1714,1634,1554,1552,1550,1548,1546 1630 data 1466,1386,1388,1390,1392,1394,1314,1234,1154,1074,1076 1640 data 1156,7,1236,7,1316,7,1396,7,1484,6,1482,6,1480,6,1478,6 1650 data 1796,5,1716,5,1636,5,1556,5,1468,2,1470,2,1472,2,1474,2 1660 rem grundstellungen *************** 1670 for i=1to16:st(i)=i:next 1680 v=53248:pokev+16,126 1690 poke2040,184:pokev+39,1 1700 pokev+23,126:pokev+29,126 1710 for z=2 to12 step2:pokev+z,15:pokev+z+1,195:pokev+39+z/2,15 1720 poke2040+z/2,184+z/2:next 1730 poke211,30:poke214,2:sys58640:print"{wht}mensch":print"{down}{down}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{gry2}[rgere" 1740 print"{down}{down}{left}{left}{left}{left}{left}{left}{left}{left}{left}{gry2}dich":print"{down}{down}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{gry1}nicht!";"{down}{down}{left}{left}{left}{left}{left}{gry3}von"; 1750 print"{down}{down}{left}{left}{left}{left}{left}{left}{wht}ralf hahn{wht}" 1760 for z=0 to 6 1770 for n=0 to62 :read q:poke11776+z*64+n,q:next:next 1780 data63,255,252,32,0,4,32 1790 data0,4,32,0,4,32,0 1800 data4,32,0,4,32,0,4 1810 data32,0,4,32,0,4,32 1820 data0,4,32,0,4,32,0 1830 data4,32,0,4,32,0,4 1840 data32,0,4,32,0,4,32 1850 data0,4,32,0,4,32,0 1860 data4,32,0,4,63,255,252 1870 data7,255,254,15,255,253,31 1880 data255,251,63,255,247,127,255 1890 data239,0,0,31,127,255,223 1900 data127,255,223,127,255,223,127 1910 data255,223,127,255,223,127,255 1920 data223,127,31,223,127,31,223 1930 data127,31,223,127,255,223,127 1940 data255,222,127,255,220,127,255 1950 data216,127,255,208,127,255,192 1960 data7,255,254,15,255,253,31 1970 data255,251,63,255,247,127,255 1980 data239,0,0,31,127,255,223 1990 data127,248,223,127,248,223,127 2000 data248,223,127,255,223,127,255 2010 data223,127,255,223,127,255,223 2020 data127,255,223,127,255,223,127 2030 data255,222,99,255,220,99,255 2040 data216,99,255,208,127,255,192 2050 data7,255,254,15,255,253,31 2060 data255,251,63,255,247,127,255 2070 data239,0,0,31,127,255,223 2080 data127,248,223,127,248,223,127 2090 data248,223,127,255,223,127,255 2100 data223,127,31,223,127,31,223 2110 data127,31,223,127,255,223,127 2120 data255,222,99,255,220,99,255 2130 data216,99,255,208,127,255,192 2140 data7,255,254,15,255,253,31 2150 data255,251,63,255,247,127,255 2160 data239,0,0,31,127,255,223 2170 data99,248,223,99,248,223,99 2180 data248,223,127,255,223,127,255 2190 data223,127,255,223,127,255,223 2200 data127,255,223,127,255,223,127 2210 data255,222,99,248,220,99,248 2220 data216,99,248,208,127,255,192 2230 data7,255,254,15,255,253,31 2240 data255,251,63,255,247,127,255 2250 data239,0,0,31,127,255,223 2260 data99,248,223,99,248,223,99 2270 data248,223,127,255,223,127,255 2280 data223,127,31,223,127,31,223 2290 data127,31,223,127,255,223,127 2300 data255,222,99,248,220,99,248 2310 data216,99,248,208,127,255,192 2320 data7,255,254,15,255,253,31 2330 data255,251,63,255,247,127,255 2340 data239,0,0,31,127,255,223 2350 data99,248,223,99,248,223,99 2360 data248,223,127,255,223,127,255 2370 data223,99,248,223,99,248,223 2380 data99,248,223,127,255,223,127 2390 data255,222,99,248,220,99,248 2400 data216,99,248,208,127,255,192 2410 rem stechen *********************** 2420 if peek(po(k))<>18 then sys64738:rem"{del}{del}{del}{del}{del}{del}{del}{del}{del}{del}{del}{del}{del}{del} k=0 2430 poke211,0:poke214,24:sys58640 2440 print"wUrfeln wir ums anfangen!{up}":for i=1 to 1000 :next 2450 a=int(rnd(1)*4+3):g=int(4*rnd(1))+1 2460 if s(g)=0 then 2450 2470 forq=1to4:j=q 2480 if s(q)=0 then 2550 2490 poke646,f(q):print" ";na$(q);" ist dran! {up}":poke v+21,0 2500 if s(q)=1 then for i=1 to 1000:next:goto2520 2510 poke198,0:wait198,1 2520 if q=g then w=a:gosub2870:goto 2550 2530 w=rnd(1)*a:w=int(w):ifw=0thenw=1 2540 gosub 2870 2550 next 2560 pokev+21,0 2570 poke646,f(g):print" ";na$(g);" hat gewonnen! {up}" 2580 for i=1 to800:next 2590 j=g:goto 2640 2600 rem spielschleife ***************** 2610 j=0 2620 j=j+1:if j=5then j=1 2630 if s(j)=0 then 2620 2640 if d(j)=4then gosub 3360:goto2720 2650 if d(j)<4 and dr(j)>0 and d(j)+dr(j)=4 then 2670 2660 goto2710 2670 sp=0:for i=56+4*jto 56+4*j+1-dr(j) step-1 2680 if peek(po(i))=86 then sp=sp+1 2690 next 2700 if sp=dr(j)thengosub3360:goto2720 2710 gosub 2800:as=0 2720 if wu=6 then gosub 3470 2730 if wu=6 then gosub 3470 2740 if wu=6 then gosub 3470 2750 if as=1then as=0:goto2620 2760 gosub 2950 2770 if s(j)=1 then gosub 3700 2780 if s(j)=2 then gosub 3130 2790 goto 2620 2800 rem wuerfeln ********************** 2810 poke646,f(j):pokev+21,0 2820 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght} {up}" 2830 printna$(j);" ist dran! {up}":w=int(6*rnd(1))+1 2840 wu=w 2850 if s(j)=1 then for i=1 to1200:next:goto2870 2860 ifj<>3then poke198,0:wait198,1 2870 si=54272:poke54277,5:poke54278,0:poke54296,15 2880 for z=1 to8:for t=1 to50:next 2890 poke54279,100:pokesi+8,8:pokesi+12,0:pokesi+11,129:pokesi+13,16:pokesi+4,0 2900 pokesi+1,6:pokesi+4,129:pokesi+24,15:pokesi+24,15:pokesi+11,0:next 2910 pokev+21,2^w 2920 poke54276,0:poke54277,0:poke54278,0 2930 for i=1 to 1000:next 2940 return 2950 rem figuren sperren *************** 2960 for i=(j-1)*4+1to j*4:z(i)=3 2970 if st(i)<17 then z(i)=0:goto3110 2980 if j=1 then 3010 2990 if st(i)+wu>56 and st(i)<=56 then w=wu-40:goto3010 3000 if st(i)+wu>j*10+6 and st(i)<=j*10+6then w=wu+46-6*j 3010 if st(i)+w>56+j*4thenz(i)=0:goto3110 3020 if rs=1 then return 3030 if st(i)<=56 and st(i)+w>56 and st(i)+w<=56+j*4 then z(i)=2 3040 fo=0:for fi=1 to16 3050 if st(i)+w=st(fi)then fo=fi 3060 nextfi:if fo=0 then 3110 3070 f1=int((i-1)/4)+1 3080 f2=int((fo-1)/4)+1 3090 if f(f1)=f(f2)then z(i)=0:goto 3110 3100 if st(i)+w<=56+j*4 and z(i)<>2then z(i)=1:zf(i)=fo 3110 if rs=1 then return 3120 w=wu:nexti:return 3130 rem eingabe *********************** 3140 f=(j-1)*4 3150 if z(f+1)+z(f+2)+z(f+3)+z(f+4)=0 then 4660 3160 s=0:for q=1 to4 3170 if z(f+q)<>0 then s=s+5 3180 next 3190 if s>5 then 3220 3200 for q=1to4:if z(f+q)<>0thena$=chr$(13):f=(j-1)*4+q:goto3300 3210 next 3220 poke646,f(j):print"figurwahl: {rvon}space{rvof} eingabe: {rvon}return{rvof}{up}" 3230 t=t+1:if t>=5 then t=1 3240 f=(j-1)*4+t 3250 if z(f)=0 then 3230 3260 y=(int((po(st(f))-1024)/40)+1)*8 3270 x=(po(st(f))-983-5*y)*8 3280 pokev,x+12:pokev+1,y+40:pokev+21,1+2^wu 3290 get a$:ifa$=""then3290 3300 if a$=chr$(13) then pokev+21,0:goto 3330 3310 if a$=" "then w=wu:pokev+21,2^wu:goto 3230 3320 goto3290 3330 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght} {up}":rs=1:i=f:gosub 2980:rs=0 3340 gosub 4190 3350 return 3360 rem 3-mal wuerfeln **************** 3370 if s(j)=1 then for i=1 to 1000:next:goto3380 3380 poke v+21,0 3390 poke646,f(j):printna$(j);" darf 3-mal wUrfeln! {up}" 3400 for i=1 to 1300:next 3410 for q=1to3 3420 gosub 2800 3430 if s(j)=1 or q=3 then for i=1 to 1000:next:goto3440 3440 if w=6 then gosub3470:return 3450 next 3460 as=1:return 3470 rem ansetzen ********************** 3480 as=1 3490 for f=(j-1)*4+1to4*j 3500 if st(f)<17then 3520 3510 next 3520 if d(j)=0 then 4460 3530 w=1 3540 gosub2950:if s(j)=2 andd(j)=0then gosub 3130 3550 if s(j)=1 and d(j)=0 then gosub 3700 3560 d(j)=d(j)-1:w=1 3570 poke646,f(j):printna$(j);" muss ansetzen! {up}" 3580 for fi=1to 16 3590 if st(fi)=j*10+7 then z(f)=1:zf(f)=fi:goto3610 3600 next 3610 gosub 4190 3620 if d(j)=0 then gosub 2800:goto 4460 3630 print"loch freimachen! {up}":goto3640 3640 for i=1 to1000 :next:gosub2800 3650 gosub2950:if z(f)=0 ands(j)=2 thengosub3130:goto3680 3660 if z(f)=0 ands(j)=1 thengosub3700:goto 3680 3670 gosub 4190 3680 if wu=6 then gosub2800:as=0 3690 return 3700 rem denkphase ********************* 3710 w=wu:wu=w:f=(j-1)*4+1:gf=0 3720 if z(f)+z(f+1)+z(f+2)+z(f+3)=0 then 4660 3730 for i=f to f+3 3740 if z(i)=0 then b(i)=0:goto3870 3750 rs=1:gosub2980:rs=0:b(i)=0 3760 sv=0:sn=0 3770 if st(i)+w=17 and d(1)<>0 then b(i)=1:goto3870 3780 if st(i)+w=27 and d(2)<>0 then b(i)=1:goto3870 3790 if st(i)+w=37 and d(3)<>0 then b(i)=1:goto3870 3800 if st(i)+w=47 and d(4)<>0 then b(i)=1:goto3870 3810 if st(i)=17 and d(1)<>0 then b(i)=30:goto3870 3820 if st(i)=27 and d(2)<>0 then b(i)=30:goto3870 3830 if st(i)=37 and d(3)<>0 then b(i)=30:goto3870 3840 if st(i)=47 and d(4)<>0 then b(i)=30:goto3870 3850 if z(i)=1 then 3890 3860 goto 3970 3870 next 3880 goto4130 3890 rem schlagen ********************** 3900 for fi=1 to 16 3910 if i=fi then 3930 3920 if st(fi)=st(i)+w then 3940 3930 next 3940 b(i)=st(i)-j*10 3950 if b(i)<0 then b(i)=b(i)+40 3960 goto3870 3970 rem lage vorher ******************* 3980 for fi=1 to 16 3990 if i=fi then 4010 4000 if st(fi)+6>=st(i) and st(fi)<st(i)thensv=sv+1 4010 next 4020 b(i)=sv*5 4030 if z(i)=2 then b(i)=b(i)+50:goto3870 4040 rem lage nachher ****************** 4050 for fi=1 to 16 4060 if i=fi then 4080 4070 if st(fi)+6>=st(i)+w and st(fi)<st(i)+w then sn=sn+1 4080 next 4090 if sn>sv then b(i)=2:goto3870 4100 if sn=sv then b(i)=3:goto3870 4110 b(i)=4+(sv-sn)*3 4120 goto3870 4130 rem auswahl *********************** 4140 w=wu:f=(j-1)*4+1:c=f 4150 for i=f+1 to f+3:if b(c)<b(i)then c=i 4160 next 4170 f=c:i=f:rs=1:gosub2980:rs=0:gosub4190 4180 return 4190 rem zugphase ********************** 4200 if z(f)=1 then gosub4530 4210 if st(f)<=56 and st(f)+w>56 then dr(j)=dr(j)+1:wp=w:gosub2950:w=wp 4220 y=(int((po(st(f))-1024)/40)+1)*8 4230 x=(po(st(f))-983-5*y)*8 4240 pokev,x+12:pokev+1,y+40:pokev+21,1 4250 for z=1to300:next 4260 poke po(st(f)),ge(st(f)) 4270 poke po(st(f))+54272,fa(st(f)) 4280 poke po(st(f))+1,ge(st(f))+1 4290 poke po(st(f))+54273,fa(st(f)) 4300 poke po(st(f))+40,ge(st(f))+2 4310 poke po(st(f))+54312,fa(st(f)) 4320 poke po(st(f))+41,ge(st(f))+3 4330 poke po(st(f))+54313,fa(st(f)) 4340 if st(f)<17then st(f)=j*10+6 4350 pokev+21,0 4360 y=(int((po(st(f)+w)-1024)/40)+1)*8 4370 x=(po(st(f)+w)-983-5*y)*8 4380 pokev,x+12:pokev+1,y+40:pokev+21,1 4390 pokepo(st(f)+w),86:pokepo(st(f)+w)+54272,f(j) 4400 pokepo(st(f)+w)+1,87:pokepo(st(f)+w)+54273,f(j) 4410 pokepo(st(f)+w)+40,88:pokepo(st(f)+w)+54312,f(j) 4420 pokepo(st(f)+w)+41,89:pokepo(st(f)+w)+54313,f(j) 4430 st(f)=(st(f)+w) 4440 if dr(j)=4 then gosub 4770 4450 for z=1to300:next:pokev+21,0:return 4460 rem nochmal wuerfeln ************** 4470 gosub 2950 4480 if s(j)=2 then gosub 3130 4490 if s(j)=1 then gosub 3700 4500 if wu=6 and d(j)<>0 then gosub3470:goto 2620 4510 if wu=6 then gosub2800:wu=w:goto4460 4520 return 4530 rem schlagen ********************** 4540 ws=w:ff=f:f=zf(f) 4550 j=int((f-1)/4)+1:d(j)=d(j)+1 4560 w=f-st(f) 4570 poke54276,0:poke54277,0:poke54278,0 4580 for x=15 to 0 step-2 4590 poke54296,x:poke54277,15:poke54278,0:poke54273,16:poke54272,80:poke54276,129 4600 next 4610 poke54276,0:poke54277,0:poke54278,0 4620 gosub 4220 4630 w=ws:f=ff 4640 j=int((f-1)/4)+1 4650 return 4660 rem naechster spieler ************* 4670 poke646,f(j):print na$(j);" kann nicht ziehen! {up}" 4680 poke54296,15 4690 poke54277,25 4700 poke54278,150 4710 poke54273,3:poke54272,100 4720 poke54276,33 4730 for t=1 to 200:next 4740 poke54276,0:poke54277,0:poke54278,0 4750 for i=1 to1000 :next 4760 return 4770 rem spielende ********************* 4780 poke646,f(j):print na$(j);" hat gewonnen!!!!!! {up}" 4790 poke54296,15:for z=1 to3 4800 poke54277,25 4810 poke54278,150 4820 poke54273,7:poke54272,193 4830 poke54276,33 4840 for t=1 to 200:next 4850 poke54276,0:poke54277,0:poke54278,0:next 4860 poke54277,25:poke54278,150:poke54273,6:poke54272,39:poke54276,33 4870 for t=1 to 500:next:poke54276,0:poke54277,0:poke54278,0 4880 poke198,0:wait198,1 4890 dr(j)=0:s(j)=0 4900 if s(1)+s(2)+s(3)+s(4)=0 then 4960 4910 print" {wht} soll ich weiterspielen? j/n {up}" 4920 get a$:ifa$=""then4920 4930 if a$="j"then 4970 4940 if a$="n"then 4960 4950 goto4920 4960 print" {wht}-------spielende--------{up}":poke198,0:wait198,1:run 4970 print" {up}":return
10 REM ********************************* 20 REM * * 30 REM * --MENSCH AERGERE DICH NICHT-- * 40 REM * VON * 50 REM * RALF HAHN * 60 REM * LUISENTHALERSTRASSE 32 * 70 REM * 6623 ALTENKESSEL * 80 REM * * 90 REM ********************************* 100 REM DIMENSIONIEREN ****************** 110 REM POKE657,128:POKE774,226:POKE775,252 SHIFT-SPERRE 120 V=53248:POKE V+21,0 130 DIM S(4),NA$(4),ST(16),D(4),F$(4),F(4),DR(4),Z(16),B(16),ZF(16) 140 DIM PO(75),GE(75),FA(75) 150 PRINT"{CLR}" 160 FOR I=1 TO 16:Z(I)=3:NEXT 170 D(1)=4:D(2)=4:D(3)=4:D(4)=4 180 REM ZEICHENVERSCHIEBUNG ************* 190 FOR I=51200 TO51252 200 READ X:POKE I,X:S=S+X:NEXT 210 DATA 120,165,1,72,41,251,133,1,169,208,133,3 220 DATA 169,48,133,5,160,0,132,2,132,4,162,32 230 DATA 177,2,145,4,200,208,249,230,3,230,5,202 240 DATA 208,242,104,133,1,173,24,208,41,241,9,12 250 DATA 141,24,208,88,96 260 SYS 51200 270 REM EINGABEMODUS ******************* 280 POKE 53280,0:POKE 53281,0:T=20 290 REM BUCHSTABENAENDERUNGEN ********** 300 FOR I=0 TO2 310 READ AS 320 FOR X=0 TO7 330 READ DA 340 POKE 12288+8*AS+X,DA 350 NEXT X:NEXT I 360 DATA 27,219,60,102,126,102,102,102,0 370 DATA 85,102,0,102,102,102,102,60,0 380 DATA 29,102,60,102,102,102,102,60,0 390 N=0:C=0 400 FOR I=1 TO4:READ F$(I),F(I):NEXT 410 DATA "GELB",7,"BLAU",6,"GRUN",5,"ROT",2 420 PRINT"{CLR,GREEN,23DOWN,9SPACE}RALF HAHN{SPACE,ORANGE}PR[SENTIERT" 430 FOR A=0 TO20:GOSUB 630:NEXT :T=700 440 PRINT"{HOME,5DOWN,GREY3,7SPACE}MENSCH [RGERE DICH NICHT" 450 FOR A=0 TO20:FOR Z=1 TO15:POKE 1231+54272+INT (25*RND (1)),Z:NEXT :NEXT 460 PRINT"{2DOWN,YELLOW,14SPACE}ANMERKUNG:{2SPACE}" 470 PRINT"{13SPACE}CCCCCCCCCC**{4SPACE}" 480 PRINT"{2DOWN,SPACE}DIESES SPIEL ENTSPRICHT DEN REGELN," 490 PRINT"{DOWN,12SPACE}NACH DENEN{SPACE,WHITE}ICH " 500 PRINT"{DOWN,7SPACE,RED}MENSCH [RGERE DICH NICHT{YELLOW}" 510 PRINT"{DOWN,16SPACE}SPIELE" 520 PRINT"{2DOWN,SPACE}-ES K]NNTEN ALSO DIFFERENZEN BESTEHEN" 530 PRINT"{DOWN,16RIGHT,RVSON}TASTE{RVOFF}" 540 POKE 198,0:WAIT 198,1 550 PRINT"{CLR,GREY3,3DOWN,14SPACE}ANLEITUNG" 560 PRINT"{13SPACE,RED}***********{GREY3} 570 PRINT"{2DOWN}*GEWURFELT WIRD MIT{SPACE,RVSON}SPACE{RVOFF}." 580 PRINT"{DOWN}*DER COMPUTERSPIELER WUERFELT UND ZIEHT{SPACE,DOWN,SPACE}SELBSTST[NDIG." 590 PRINT"{DOWN}*DIE FIGUR WIRD MIT{SPACE,RVSON}SPACE{RVOFF,SPACE}AUSGEWAEHLT{4SPACE,DOWN}UND MIT{SPACE,RVSON}RETURN{RVOFF,SPACE}GEZOGEN. 600 PRINT"{3DOWN,RED}DAS WAR'S * DEN REST MACHT DER COMPUTER" 610 PRINT"{3DOWN,16RIGHT,WHITE,RVSON}TASTE{RVOFF}" 620 T=2000:POKE 198,0:WAIT 198,1:GOTO 640 630 FOR B=0 TOT:NEXT :PRINT"{DOWN}";:RETURN 640 PRINT"{CLR}" 650 N=0:C=0:A$="" 660 FOR I=1 TO 4 670 POKE 53280,F(I):PRINT"{CLR,3DOWN,WHITE,3SPACE}M]CHTE EIN SPIELER ";F$(I);" HABEN?{SPACE,RVSON}J{RVOFF}/{RVSON}N{RVOFF}" 680 GET A$:IF A$="" THEN680 690 IF A$="J" THENN=N+1:S(I)=2:GOTO 810 700 IF A$="N" THEN 720 710 GOTO 680 720 PRINT"{2DOWN,4SPACE}SOLL DER COMPUTER DEN SPIELER":PRINTSPC( 9);"{DOWN}UBERNEHMEN?{SPACE,RVSON}J{RVOFF}/{RVSON}N{RVOFF} 730 GET A$:IF A$="" THEN730 740 IF A$="J" THEN C=C+1:S(I)=1:ON C GOTO 770,780,790,800 750 IF A$="N" THEN:S(I)=0:GOTO 850 760 GOTO 730 770 NA$(I)="COMPUTER 1":GOTO 850 780 NA$(I)="COMPUTER 2":GOTO 850 790 NA$(I)="COMPUTER 3":GOTO 850 800 NA$(I)="COMPUTER 4":GOTO 850 810 PRINT"{2DOWN,SPACE}BITTE GEBEN SIE DEN NAMEN DES SPIELERS":PRINT"{DOWN,RIGHT,SPACE}EIN! "; 820 PRINT"-ABER H]CHSTENS 10 BUCHSTABEN!{DOWN}" 830 POKE 19,64:INPUT NA$:POKE 19,0 840 NA$(I)=LEFT$ (NA$,10) 850 PRINT"{DOWN}CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC":NEXT :POKE 53280,0 860 IF N+C<2 THENPRINT"{CLR,6RIGHT,4DOWN}2 SPIELER BRAUCHT MAN SCHON!!":DU=1:GOTO 880 870 PRINT"{CLR}":GOTO 890 880 FOR Z=1 TO1000:NEXT :GOTO 640 890 PRINT"{CLR,3DOWN}":FOR Q=1 TO4 900 IF S(Q)=0 THEN NA$(Q)="NICHT BELEGT" 910 PRINT"{2DOWN,8RIGHT}SPIELER";Q;": ";NA$(Q) 920 NEXT 930 PRINT"{2DOWN,8RIGHT}EINGABEN KORREKT? J/N"; 940 GET A$:IF A$="" THEN940 950 IF A$="J" THENPRINT"{5LEFT}!{4SPACE}":GOTO 980 960 IF A$="N" THEN RUN 970 GOTO 940 980 REM ZEICHENAENDERUNGEN ************* 990 FOR I=0 TO27 1000 READ AS 1010 FOR X=0 TO7 1020 READ DA 1030 POKE 12288+8*AS+X,DA 1040 NEXT X:NEXT I 1050 DATA 35,0,0,0,7,31,63,127,127 1060 DATA 36,0,0,0,224,248,252,254,254 1070 DATA 37,127,127,63,31,7,0,0,0 1080 DATA 38,254,254,252,248,224,0,0,0 1090 DATA 81,0,0,0,7,24,32,64,64 1100 DATA 82,0,0,0,224,24,4,2,2 1110 DATA 83,64,64,32,24,7,0,0,0 1120 DATA 84,2,2,4,24,224,0,0,0 1130 DATA 86,1,7,15,15,15,7,3,3 1140 DATA 87,128,224,240,240,240,224,192,192 1150 DATA 88,7,7,15,15,31,31,15,0 1160 DATA 89,224,224,240,240,248,248,240,0 1170 DATA 39,0,0,0,7,31,62,124,122 1180 DATA 40,0,0,0,224,248,124,62,94 1190 DATA 41,126,126,62,31,7,0,0,0 1200 DATA 42,126,126,124,248,224,0,0,0 1210 DATA 68,0,0,0,7,31,63,127,124 1220 DATA 69,0,0,0,224,248,124,190,30 1230 DATA 70,124,127,63,31,7,0,0,0 1240 DATA 71,30,190,124,248,224,0,0,0 1250 DATA 72,0,0,0,7,31,62,126,126 1260 DATA 73,0,0,0,224,248,124,126,126 1270 DATA 74,122,124,62,31,7,0,0,0 1280 DATA 75,94,62,124,248,224,0,0,0 1290 DATA 76,0,0,0,7,31,62,125,120 1300 DATA 77,0,0,0,224,248,252,254,30 1310 DATA 78,120,125,62,31,7,0,0,0 1320 DATA 79,30,254,252,248,224,0,0,0 1330 REM BILDAUFBAU ******************** 1340 PRINT"{CLR,7DOWN,3RIGHT,WHITE}MENSCH";SPC( 8);"[RGERE":PRINT"{8DOWN,3RIGHT}DICH";SPC( 11);"NICHT" 1350 PRINT"{9RIGHT}":PO(0)=1532 1360 FOR I=1 TO16:READ PO:READ FA:PO(I)=PO:FA(I)=FA 1370 IF S(INT ((I-1)/4)+1)=0 THEN GE(I)=35:GOTO 1390 1380 GE(I)=86 1390 NEXT 1400 GE=81:FA=12 1410 FOR I=17 TO56:READ PO:PO(I)=PO:GE(I)=GE:FA(I)=FA 1420 NEXT 1430 GE=35 1440 FOR I=57 TO72:READ PO:READ FA:PO(I)=PO:GE(I)=GE:FA(I)=FA 1450 NEXT 1460 GE(17)=72:FA(17)=7 1470 GE(27)=76:FA(27)=6 1480 GE(37)=39:FA(37)=5 1490 GE(47)=68:FA(47)=2 1500 FOR I=1 TO72 1510 POKE PO(I),GE(I):POKE PO(I)+54272,FA(I) 1520 POKE PO(I)+1,GE(I)+1:POKE PO(I)+54273,FA(I) 1530 POKE PO(I)+40,GE(I)+2:POKE PO(I)+54312,FA(I) 1540 POKE PO(I)+41,GE(I)+3:POKE PO(I)+54313,FA(I) 1550 NEXT 1560 FOR I=1 TO16:GE(I)=35:NEXT 1570 FOR I=1090 TO1930STEP 40:POKE I,93:POKE I+54272,5:NEXT 1580 POKE 1650,107:FOR I=1651 TO1663:POKE I,67:POKE I+54272,5:NEXT 1590 DATA 1162,7,1165,7,1242,7,1245,7,1722,6,1725,6,1802,6,1805,6 1600 DATA 1707,5,1710,5,1787,5,1790,5,1147,2,1150,2,1227,2,1230,2,1078 1610 DATA 1158,1238,1318,1398,1400,1402,1404,1406,1486,1566,1564,1562,1560,1558 1620 DATA 1638,1718,1798,1878,1876,1874,1794,1714,1634,1554,1552,1550,1548,1546 1630 DATA 1466,1386,1388,1390,1392,1394,1314,1234,1154,1074,1076 1640 DATA 1156,7,1236,7,1316,7,1396,7,1484,6,1482,6,1480,6,1478,6 1650 DATA 1796,5,1716,5,1636,5,1556,5,1468,2,1470,2,1472,2,1474,2 1660 REM GRUNDSTELLUNGEN *************** 1670 FOR I=1 TO16:ST(I)=I:NEXT 1680 V=53248:POKE V+16,126 1690 POKE 2040,184:POKE V+39,1 1700 POKE V+23,126:POKE V+29,126 1710 FOR Z=2 TO12 STEP 2:POKE V+Z,15:POKE V+Z+1,195:POKE V+39+Z/2,15 1720 POKE 2040+Z/2,184+Z/2:NEXT 1730 POKE 211,30:POKE 214,2:SYS 58640:PRINT"{WHITE}MENSCH":PRINT"{DOWN,DOWN,10LEFT,GREY2}[RGERE" 1740 PRINT"{2DOWN,9LEFT,GREY2}DICH":PRINT"{2DOWN,10LEFT,GREY1}NICHT!";"{2DOWN,5LEFT,GREY3}VON"; 1750 PRINT"{2DOWN,6LEFT,WHITE}RALF HAHN{WHITE}" 1760 FOR Z=0 TO 6 1770 FOR N=0 TO62 :READ Q:POKE 11776+Z*64+N,Q:NEXT :NEXT 1780 DATA 63,255,252,32,0,4,32 1790 DATA 0,4,32,0,4,32,0 1800 DATA 4,32,0,4,32,0,4 1810 DATA 32,0,4,32,0,4,32 1820 DATA 0,4,32,0,4,32,0 1830 DATA 4,32,0,4,32,0,4 1840 DATA 32,0,4,32,0,4,32 1850 DATA 0,4,32,0,4,32,0 1860 DATA 4,32,0,4,63,255,252 1870 DATA 7,255,254,15,255,253,31 1880 DATA 255,251,63,255,247,127,255 1890 DATA 239,0,0,31,127,255,223 1900 DATA 127,255,223,127,255,223,127 1910 DATA 255,223,127,255,223,127,255 1920 DATA 223,127,31,223,127,31,223 1930 DATA 127,31,223,127,255,223,127 1940 DATA 255,222,127,255,220,127,255 1950 DATA 216,127,255,208,127,255,192 1960 DATA 7,255,254,15,255,253,31 1970 DATA 255,251,63,255,247,127,255 1980 DATA 239,0,0,31,127,255,223 1990 DATA 127,248,223,127,248,223,127 2000 DATA 248,223,127,255,223,127,255 2010 DATA 223,127,255,223,127,255,223 2020 DATA 127,255,223,127,255,223,127 2030 DATA 255,222,99,255,220,99,255 2040 DATA 216,99,255,208,127,255,192 2050 DATA 7,255,254,15,255,253,31 2060 DATA 255,251,63,255,247,127,255 2070 DATA 239,0,0,31,127,255,223 2080 DATA 127,248,223,127,248,223,127 2090 DATA 248,223,127,255,223,127,255 2100 DATA 223,127,31,223,127,31,223 2110 DATA 127,31,223,127,255,223,127 2120 DATA 255,222,99,255,220,99,255 2130 DATA 216,99,255,208,127,255,192 2140 DATA 7,255,254,15,255,253,31 2150 DATA 255,251,63,255,247,127,255 2160 DATA 239,0,0,31,127,255,223 2170 DATA 99,248,223,99,248,223,99 2180 DATA 248,223,127,255,223,127,255 2190 DATA 223,127,255,223,127,255,223 2200 DATA 127,255,223,127,255,223,127 2210 DATA 255,222,99,248,220,99,248 2220 DATA 216,99,248,208,127,255,192 2230 DATA 7,255,254,15,255,253,31 2240 DATA 255,251,63,255,247,127,255 2250 DATA 239,0,0,31,127,255,223 2260 DATA 99,248,223,99,248,223,99 2270 DATA 248,223,127,255,223,127,255 2280 DATA 223,127,31,223,127,31,223 2290 DATA 127,31,223,127,255,223,127 2300 DATA 255,222,99,248,220,99,248 2310 DATA 216,99,248,208,127,255,192 2320 DATA 7,255,254,15,255,253,31 2330 DATA 255,251,63,255,247,127,255 2340 DATA 239,0,0,31,127,255,223 2350 DATA 99,248,223,99,248,223,99 2360 DATA 248,223,127,255,223,127,255 2370 DATA 223,99,248,223,99,248,223 2380 DATA 99,248,223,127,255,223,127 2390 DATA 255,222,99,248,220,99,248 2400 DATA 216,99,248,208,127,255,192 2410 REM STECHEN *********************** 2420 IF PEEK (PO(K))<>18 THEN SYS 64738:REM "{14DEL,SPACE}K=0 2430 POKE 211,0:POKE 214,24:SYS 58640 2440 PRINT"WURFELN WIR UMS ANFANGEN!{UP}":FOR I=1 TO 1000 :NEXT 2450 A=INT (RND (1)*4+3):G=INT (4*RND (1))+1 2460 IF S(G)=0 THEN 2450 2470 FOR Q=1 TO4:J=Q 2480 IF S(Q)=0 THEN 2550 2490 POKE 646,F(Q):PRINT"{4SPACE}";NA$(Q);" IST DRAN!{10SPACE,UP}":POKE V+21,0 2500 IF S(Q)=1 THEN FOR I=1 TO 1000:NEXT :GOTO 2520 2510 POKE 198,0:WAIT 198,1 2520 IF Q=G THEN W=A:GOSUB 2870:GOTO 2550 2530 W=RND (1)*A:W=INT (W):IF W=0 THENW=1 2540 GOSUB 2870 2550 NEXT 2560 POKE V+21,0 2570 POKE 646,F(G):PRINT"{4SPACE}";NA$(G);" HAT GEWONNEN!{9SPACE,UP}" 2580 FOR I=1 TO800:NEXT 2590 J=G:GOTO 2640 2600 REM SPIELSCHLEIFE ***************** 2610 J=0 2620 J=J+1:IF J=5 THEN J=1 2630 IF S(J)=0 THEN 2620 2640 IF D(J)=4 THEN GOSUB 3360:GOTO 2720 2650 IF D(J)<4 AND DR(J)>0 AND D(J)+DR(J)=4 THEN 2670 2660 GOTO 2710 2670 SP=0:FOR I=56+4*J TO 56+4*J+1-DR(J) STEP -1 2680 IF PEEK (PO(I))=86 THEN SP=SP+1 2690 NEXT 2700 IF SP=DR(J) THENGOSUB 3360:GOTO 2720 2710 GOSUB 2800:AS=0 2720 IF WU=6 THEN GOSUB 3470 2730 IF WU=6 THEN GOSUB 3470 2740 IF WU=6 THEN GOSUB 3470 2750 IF AS=1 THEN AS=0:GOTO 2620 2760 GOSUB 2950 2770 IF S(J)=1 THEN GOSUB 3700 2780 IF S(J)=2 THEN GOSUB 3130 2790 GOTO 2620 2800 REM WUERFELN ********************** 2810 POKE 646,F(J):POKE V+21,0 2820 PRINT"{17RIGHT,18SPACE,UP}" 2830 PRINTNA$(J);" IST DRAN!{16SPACE,UP}":W=INT (6*RND (1))+1 2840 WU=W 2850 IF S(J)=1 THEN FOR I=1 TO1200:NEXT :GOTO 2870 2860 IF J<>3 THEN POKE 198,0:WAIT 198,1 2870 SI=54272:POKE 54277,5:POKE 54278,0:POKE 54296,15 2880 FOR Z=1 TO8:FOR T=1 TO50:NEXT 2890 POKE 54279,100:POKE SI+8,8:POKE SI+12,0:POKE SI+11,129:POKE SI+13,16:POKE SI+4,0 2900 POKE SI+1,6:POKE SI+4,129:POKE SI+24,15:POKE SI+24,15:POKE SI+11,0:NEXT 2910 POKE V+21,2^W 2920 POKE 54276,0:POKE 54277,0:POKE 54278,0 2930 FOR I=1 TO 1000:NEXT 2940 RETURN 2950 REM FIGUREN SPERREN *************** 2960 FOR I=(J-1)*4+1 TO J*4:Z(I)=3 2970 IF ST(I)<17 THEN Z(I)=0:GOTO 3110 2980 IF J=1 THEN 3010 2990 IF ST(I)+WU>56 AND ST(I)<=56 THEN W=WU-40:GOTO 3010 3000 IF ST(I)+WU>J*10+6 AND ST(I)<=J*10+6 THEN W=WU+46-6*J 3010 IF ST(I)+W>56+J*4 THENZ(I)=0:GOTO 3110 3020 IF RS=1 THEN RETURN 3030 IF ST(I)<=56 AND ST(I)+W>56 AND ST(I)+W<=56+J*4 THEN Z(I)=2 3040 FO=0:FOR FI=1 TO16 3050 IF ST(I)+W=ST(FI) THEN FO=FI 3060 NEXT FI:IF FO=0 THEN 3110 3070 F1=INT ((I-1)/4)+1 3080 F2=INT ((FO-1)/4)+1 3090 IF F(F1)=F(F2) THEN Z(I)=0:GOTO 3110 3100 IF ST(I)+W<=56+J*4 AND Z(I)<>2 THEN Z(I)=1:ZF(I)=FO 3110 IF RS=1 THEN RETURN 3120 W=WU:NEXT I:RETURN 3130 REM EINGABE *********************** 3140 F=(J-1)*4 3150 IF Z(F+1)+Z(F+2)+Z(F+3)+Z(F+4)=0 THEN 4660 3160 S=0:FOR Q=1 TO4 3170 IF Z(F+Q)<>0 THEN S=S+5 3180 NEXT 3190 IF S>5 THEN 3220 3200 FOR Q=1 TO4:IF Z(F+Q)<>0 THENA$=CHR$ (13):F=(J-1)*4+Q:GOTO 3300 3210 NEXT 3220 POKE 646,F(J):PRINT"FIGURWAHL:{SPACE,RVSON}SPACE{RVOFF,3SPACE}EINGABE:{SPACE,RVSON}RETURN{RVOFF,UP}" 3230 T=T+1:IF T>=5 THEN T=1 3240 F=(J-1)*4+T 3250 IF Z(F)=0 THEN 3230 3260 Y=(INT ((PO(ST(F))-1024)/40)+1)*8 3270 X=(PO(ST(F))-983-5*Y)*8 3280 POKE V,X+12:POKE V+1,Y+40:POKE V+21,1+2^WU 3290 GET A$:IF A$="" THEN3290 3300 IF A$=CHR$ (13) THEN POKE V+21,0:GOTO 3330 3310 IF A$=" " THEN W=WU:POKE V+21,2^WU:GOTO 3230 3320 GOTO 3290 3330 PRINT"{28RIGHT,11SPACE,UP}":RS=1:I=F:GOSUB 2980:RS=0 3340 GOSUB 4190 3350 RETURN 3360 REM 3-MAL WUERFELN **************** 3370 IF S(J)=1 THEN FOR I=1 TO 1000:NEXT :GOTO 3380 3380 POKE V+21,0 3390 POKE 646,F(J):PRINTNA$(J);" DARF 3-MAL WURFELN!{4SPACE,UP}" 3400 FOR I=1 TO 1300:NEXT 3410 FOR Q=1 TO3 3420 GOSUB 2800 3430 IF S(J)=1 OR Q=3 THEN FOR I=1 TO 1000:NEXT :GOTO 3440 3440 IF W=6 THEN GOSUB 3470:RETURN 3450 NEXT 3460 AS=1:RETURN 3470 REM ANSETZEN ********************** 3480 AS=1 3490 FOR F=(J-1)*4+1 TO4*J 3500 IF ST(F)<17 THEN 3520 3510 NEXT 3520 IF D(J)=0 THEN 4460 3530 W=1 3540 GOSUB 2950:IF S(J)=2 AND D(J)=0 THEN GOSUB 3130 3550 IF S(J)=1 AND D(J)=0 THEN GOSUB 3700 3560 D(J)=D(J)-1:W=1 3570 POKE 646,F(J):PRINTNA$(J);" MUSS ANSETZEN!{8SPACE,UP}" 3580 FOR FI=1 TO 16 3590 IF ST(FI)=J*10+7 THEN Z(F)=1:ZF(F)=FI:GOTO 3610 3600 NEXT 3610 GOSUB 4190 3620 IF D(J)=0 THEN GOSUB 2800:GOTO 4460 3630 PRINT"LOCH FREIMACHEN!{17SPACE,UP}":GOTO 3640 3640 FOR I=1 TO1000 :NEXT :GOSUB 2800 3650 GOSUB 2950:IF Z(F)=0 AND S(J)=2 THENGOSUB 3130:GOTO 3680 3660 IF Z(F)=0 AND S(J)=1 THENGOSUB 3700:GOTO 3680 3670 GOSUB 4190 3680 IF WU=6 THEN GOSUB 2800:AS=0 3690 RETURN 3700 REM DENKPHASE ********************* 3710 W=WU:WU=W:F=(J-1)*4+1:GF=0 3720 IF Z(F)+Z(F+1)+Z(F+2)+Z(F+3)=0 THEN 4660 3730 FOR I=F TO F+3 3740 IF Z(I)=0 THEN B(I)=0:GOTO 3870 3750 RS=1:GOSUB 2980:RS=0:B(I)=0 3760 SV=0:SN=0 3770 IF ST(I)+W=17 AND D(1)<>0 THEN B(I)=1:GOTO 3870 3780 IF ST(I)+W=27 AND D(2)<>0 THEN B(I)=1:GOTO 3870 3790 IF ST(I)+W=37 AND D(3)<>0 THEN B(I)=1:GOTO 3870 3800 IF ST(I)+W=47 AND D(4)<>0 THEN B(I)=1:GOTO 3870 3810 IF ST(I)=17 AND D(1)<>0 THEN B(I)=30:GOTO 3870 3820 IF ST(I)=27 AND D(2)<>0 THEN B(I)=30:GOTO 3870 3830 IF ST(I)=37 AND D(3)<>0 THEN B(I)=30:GOTO 3870 3840 IF ST(I)=47 AND D(4)<>0 THEN B(I)=30:GOTO 3870 3850 IF Z(I)=1 THEN 3890 3860 GOTO 3970 3870 NEXT 3880 GOTO 4130 3890 REM SCHLAGEN ********************** 3900 FOR FI=1 TO 16 3910 IF I=FI THEN 3930 3920 IF ST(FI)=ST(I)+W THEN 3940 3930 NEXT 3940 B(I)=ST(I)-J*10 3950 IF B(I)<0 THEN B(I)=B(I)+40 3960 GOTO 3870 3970 REM LAGE VORHER ******************* 3980 FOR FI=1 TO 16 3990 IF I=FI THEN 4010 4000 IF ST(FI)+6>=ST(I) AND ST(FI)<ST(I) THENSV=SV+1 4010 NEXT 4020 B(I)=SV*5 4030 IF Z(I)=2 THEN B(I)=B(I)+50:GOTO 3870 4040 REM LAGE NACHHER ****************** 4050 FOR FI=1 TO 16 4060 IF I=FI THEN 4080 4070 IF ST(FI)+6>=ST(I)+W AND ST(FI)<ST(I)+W THEN SN=SN+1 4080 NEXT 4090 IF SN>SV THEN B(I)=2:GOTO 3870 4100 IF SN=SV THEN B(I)=3:GOTO 3870 4110 B(I)=4+(SV-SN)*3 4120 GOTO 3870 4130 REM AUSWAHL *********************** 4140 W=WU:F=(J-1)*4+1:C=F 4150 FOR I=F+1 TO F+3:IF B(C)<B(I) THEN C=I 4160 NEXT 4170 F=C:I=F:RS=1:GOSUB 2980:RS=0:GOSUB 4190 4180 RETURN 4190 REM ZUGPHASE ********************** 4200 IF Z(F)=1 THEN GOSUB 4530 4210 IF ST(F)<=56 AND ST(F)+W>56 THEN DR(J)=DR(J)+1:WP=W:GOSUB 2950:W=WP 4220 Y=(INT ((PO(ST(F))-1024)/40)+1)*8 4230 X=(PO(ST(F))-983-5*Y)*8 4240 POKE V,X+12:POKE V+1,Y+40:POKE V+21,1 4250 FOR Z=1 TO300:NEXT 4260 POKE PO(ST(F)),GE(ST(F)) 4270 POKE PO(ST(F))+54272,FA(ST(F)) 4280 POKE PO(ST(F))+1,GE(ST(F))+1 4290 POKE PO(ST(F))+54273,FA(ST(F)) 4300 POKE PO(ST(F))+40,GE(ST(F))+2 4310 POKE PO(ST(F))+54312,FA(ST(F)) 4320 POKE PO(ST(F))+41,GE(ST(F))+3 4330 POKE PO(ST(F))+54313,FA(ST(F)) 4340 IF ST(F)<17 THEN ST(F)=J*10+6 4350 POKE V+21,0 4360 Y=(INT ((PO(ST(F)+W)-1024)/40)+1)*8 4370 X=(PO(ST(F)+W)-983-5*Y)*8 4380 POKE V,X+12:POKE V+1,Y+40:POKE V+21,1 4390 POKE PO(ST(F)+W),86:POKE PO(ST(F)+W)+54272,F(J) 4400 POKE PO(ST(F)+W)+1,87:POKE PO(ST(F)+W)+54273,F(J) 4410 POKE PO(ST(F)+W)+40,88:POKE PO(ST(F)+W)+54312,F(J) 4420 POKE PO(ST(F)+W)+41,89:POKE PO(ST(F)+W)+54313,F(J) 4430 ST(F)=(ST(F)+W) 4440 IF DR(J)=4 THEN GOSUB 4770 4450 FOR Z=1 TO300:NEXT :POKE V+21,0:RETURN 4460 REM NOCHMAL WUERFELN ************** 4470 GOSUB 2950 4480 IF S(J)=2 THEN GOSUB 3130 4490 IF S(J)=1 THEN GOSUB 3700 4500 IF WU=6 AND D(J)<>0 THEN GOSUB 3470:GOTO 2620 4510 IF WU=6 THEN GOSUB 2800:WU=W:GOTO 4460 4520 RETURN 4530 REM SCHLAGEN ********************** 4540 WS=W:FF=F:F=ZF(F) 4550 J=INT ((F-1)/4)+1:D(J)=D(J)+1 4560 W=F-ST(F) 4570 POKE 54276,0:POKE 54277,0:POKE 54278,0 4580 FOR X=15 TO 0 STEP -2 4590 POKE 54296,X:POKE 54277,15:POKE 54278,0:POKE 54273,16:POKE 54272,80:POKE 54276,129 4600 NEXT 4610 POKE 54276,0:POKE 54277,0:POKE 54278,0 4620 GOSUB 4220 4630 W=WS:F=FF 4640 J=INT ((F-1)/4)+1 4650 RETURN 4660 REM NAECHSTER SPIELER ************* 4670 POKE 646,F(J):PRINT NA$(J);" KANN NICHT ZIEHEN!{10SPACE,UP}" 4680 POKE 54296,15 4690 POKE 54277,25 4700 POKE 54278,150 4710 POKE 54273,3:POKE 54272,100 4720 POKE 54276,33 4730 FOR T=1 TO 200:NEXT 4740 POKE 54276,0:POKE 54277,0:POKE 54278,0 4750 FOR I=1 TO1000 :NEXT 4760 RETURN 4770 REM SPIELENDE ********************* 4780 POKE 646,F(J):PRINT NA$(J);" HAT GEWONNEN!!!!!!{4SPACE,UP}" 4790 POKE 54296,15:FOR Z=1 TO3 4800 POKE 54277,25 4810 POKE 54278,150 4820 POKE 54273,7:POKE 54272,193 4830 POKE 54276,33 4840 FOR T=1 TO 200:NEXT 4850 POKE 54276,0:POKE 54277,0:POKE 54278,0:NEXT 4860 POKE 54277,25:POKE 54278,150:POKE 54273,6:POKE 54272,39:POKE 54276,33 4870 FOR T=1 TO 500:NEXT :POKE 54276,0:POKE 54277,0:POKE 54278,0 4880 POKE 198,0:WAIT 198,1 4890 DR(J)=0:S(J)=0 4900 IF S(1)+S(2)+S(3)+S(4)=0 THEN 4960 4910 PRINT"{SPACE,WHITE,SPACE}SOLL ICH WEITERSPIELEN? J/N{SPACE,UP}" 4920 GET A$:IF A$="" THEN4920 4930 IF A$="J" THEN 4970 4940 IF A$="N" THEN 4960 4950 GOTO 4920 4960 PRINT"{5SPACE,WHITE}-------SPIELENDE--------{UP}":POKE 198,0:WAIT 198,1:RUN 4970 PRINT"{35SPACE,UP}":RETURN