home *** CD-ROM | disk | FTP | other *** search
- 10 rem lotterie ===============c64
- 20 rem (p) commodore disc
- 30 rem ===========================
- 40 rem (c) by g. kramer v3.5
- 50 rem emsdetten
- 60 rem
- 70 rem a. mittelmeyer v2.0
- 80 rem c64
- 90 rem ===========================
- 100 poke646,0:gosub2240:rem definitionen
- 110 gosub2980:rem spielregel
- 120 gosub2470:rem abfrage am anfang
- 130 gosub2730:rem anfangsbild aufbauen
- 140 gosub200:rem eingeben der einsaetze
- 150 gosub690:rem spiel laeuft
- 160 goto130
- 170 ------------------------------
- 180 eingeben der einsaetze
- 190 ------------------------------
- 200 fori=0to31:ka(i)=0:nexti
- 210 fori=1to8:sz(i,2)=0:sz(i,1)=1
- 220 ifi-int(i/2)*2=0thensz(i,1)=25
- 230 nexti:vk=0:cs=15
- 240 fori=1toan:z=sz(i,2):c=sz(i,1)
- 250 cz=4:printchr$(30);:gosub1370
- 260 printna$(i)" ":forj=1to99:nextj
- 270 cz=4:getz$:ifz$<>""then310
- 280 gosub1370:printchr$(18)na$(i)"[160]"
- 290 printchr$(146):ifvk=32then530
- 300 forj=1to99:nextj:goto250
- 310 forj=175to184:pokebi+j,160:nextj
- 320 ifz$=chr$(133)then590
- 330 ifz$="+"then530
- 340 ifz$<"0"orz$>"9"then270
- 350 j=1:b=val(z$):ifb=0thenb=10
- 360 cz=3+int((i-1)/2)*24/int((an+1)/2)
- 370 ifc=13thenc=1:z=z+3:ifan>6then530
- 380 ifc=37thenc=25:z=z+3:ifan>6then530
- 390 cz=cz+z:cs=c:ifz=6andan>4then530
- 400 ifz=9andan>2then530
- 410 vk=vk+1:ifvk>32then530
- 420 gosub1540:gosub1370
- 430 ka(a)=b*10+i+cp:printk0$
- 440 gosub1370:printz$
- 450 gosub1370:printz1$;
- 460 ifz>0andan>4then500
- 470 gosub1370:printk1$;
- 480 ifan>6orz>3andan>2then500
- 490 gosub1370:printk2$;
- 500 ge(i)=ge(i)+b*ei:gb=gb+b*ei
- 510 gs(i)=gs(i)-b*ei:gosub1680
- 520 c=c+2:cs=15:goto250
- 530 sz(i,1)=c:sz(i,2)=z:cs=15:nexti
- 540 ifvk<32then240
- 550 z2$=""
- 560 fori=1to10
- 570 z2$=chr$(32)+z2$
- 580 next
- 590 z$="f1 = spiel"
- 600 cz=4:printchr$(30);:gosub1370
- 610 printz$:forj=1to99:nextj:cz=cz-1
- 620 gosub1370:printcr$z2$co$
- 630 getz1$:ifz1$=chr$(133)thenreturn
- 640 forj=1to50:nextj
- 650 cz=cz-1:goto600
- 660 ------------------------------
- 670 spiel laeuft
- 680 ------------------------------
- 690 j=999999:cz=3:fori=1to4:aa=1.1
- 700 gosub1540
- 710 z2$=z$:z3$=z1$
- 720 b=peek(646)+1
- 730 c=a:gosub1540:cs=16:gosub1370
- 740 fb=peek(646)+1
- 750 poke646,b-1
- 760 printk0$;
- 770 poke646,fb-1
- 780 printk0$
- 790 gosub1370
- 800 poke646,b-1
- 810 printz2$;
- 820 poke646,fb-1
- 830 printz$
- 840 gosub1370
- 850 poke646,b-1
- 860 printz3$;
- 870 poke646,fb-1
- 880 printz1$
- 890 gosub1370
- 900 poke646,b-1
- 910 printk1$;
- 920 poke646,fb-1
- 930 printk1$
- 940 gosub1370
- 950 poke646,b-1
- 960 printk2$;
- 970 poke646,fb-1
- 980 printk2$
- 990 b=ka(a):ka(a)=j:z=cz
- 1000 a=ka(c):ka(c)=j:gosub1950
- 1010 getz$:ifz$<>chr$(133)then1010
- 1020 cz=z-2:nexti
- 1030 cs=18:gosub1540:gosub1370
- 1040 printk0$:gosub1370
- 1050 printz$:gosub1370
- 1060 printz1$:gosub1370
- 1070 printk1$:gosub1370
- 1080 printk2$:a=ka(a):i=10
- 1090 gosub1950
- 1100 cz=24:cs=15:gosub1370
- 1110 printchr$(30)cr$" f2 = ende";
- 1120 cz=20:gosub1370
- 1130 printchr$(150)cr$"f1=weiter "
- 1140 getz$:ifz$=chr$(133)then1210
- 1150 ifz$=chr$(137)thenprintcc$:goto1230
- 1160 fori=1to99:nexti:cz=20:gosub1370
- 1170 printchr$(30)cr$" f1=weiter"
- 1180 cz=24:cs=15:gosub1370
- 1190 printchr$(150)cr$"f2 = ende ";
- 1200 fori=1to99:nexti:goto1100
- 1210 fori=1toan:gw(i)=0:ge(i)=0:nexti
- 1220 vk=0:return
- 1230 printtab(12)"l o t t e r i e"c1$
- 1240 printtab(13)"endabrechnung"c1$
- 1250 fori=1toan:a=gs(i):gosub1420
- 1260 poke646,0
- 1270 ifgs(i)<0thenpoke646,10
- 1280 printtab(11)na$(i)z$c1$
- 1290 nexti:a=gb:gosub1420
- 1300 poke646,0
- 1310 ifgb<0thenpoke646,10
- 1320 printtab(11)"bank "z$;
- 1330 end
- 1340 -----------------------------
- 1350 cursor setzen
- 1360 -----------------------------
- 1370 poke781,cz:poke782,cs:syscu
- 1380 cp=100*(cz*40+cs):cz=cz+1:return
- 1390 -----------------------------
- 1400 betragsfelder aufbereiten
- 1410 -----------------------------
- 1420 ifa<0thena=a*-1
- 1430 z$=str$(int(a/100))
- 1440 z$=right$(z$,len(z$)-1)
- 1450 z$=right$(" "+z$,5)
- 1460 ifright$(str$(a),2)<"10"then1490
- 1470 z$=z$+","+right$(str$(a),2)
- 1480 return
- 1490 z$=z$+",0"+right$(str$(a),1)
- 1500 return
- 1510 -----------------------------
- 1520 karte setzen
- 1530 -----------------------------
- 1540 a=int(rnd(a)*32)
- 1550 ifa=aathen1570
- 1560 ifka(a)<jthen1590
- 1570 a=a+1:ifa>31thena=0
- 1580 goto1550
- 1590 aa=a:fb=int(a/8):z$=fa$(fb)
- 1600 z1$=bi$(a-fb*8)
- 1610 z$=chr$(98)+z$+chr$(32)+chr$(98)
- 1620 z1$=chr$(98)+z1$+right$(z$,2)
- 1630 iffb>1thenpoke646,10:return
- 1640 poke646,0:return
- 1650 -----------------------------
- 1660 betraege ins bild setzen
- 1670 -----------------------------
- 1680 i=i-1:k=int((an+1)/2):fb=144
- 1690 cs=0:ifi-int(i/2)*2=1thencs=25
- 1700 cz=1+24/k*(int(i/2))
- 1710 gosub1370:a=ge(i+1):gosub1420
- 1720 a$=left$(na$(i+1)+right$(z$,6),14)
- 1730 poke646,0:printa$
- 1740 a$=right$(z$,1)
- 1750 pokebi+40*cz+cs-26,asc(a$)
- 1760 a=gs(i+1):ifa<0thenpoke646,10
- 1770 gosub1420:z1$=z$
- 1780 a=gw(i+1):gosub1420:gosub1370
- 1790 a$=z1$+chr$(144)
- 1800 a$=left$(a$+right$(z$,7),15)
- 1810 printa$
- 1820 a$=right$(z$,1)
- 1830 pokebi+40*cz+cs-26,asc(a$)
- 1840 a=gb:poke646,0
- 1850 ifa<0thenpoke646,10
- 1860 gosub1420:cz=1:cs=16:gosub1370
- 1870 printz$:poke646,0:i=i+1
- 1880 a=32-vk:z$=right$(str$(a),2)
- 1890 pokebi+979,asc(left$(z$,1))
- 1900 pokebi+980,asc(right$(z$,1))
- 1910 return
- 1920 -----------------------------
- 1930 gewinne speichern
- 1940 -----------------------------
- 1950 d=i:ifa=0then1970
- 1960 gosub2150
- 1970 ifb=0then2000
- 1980 ifd=10then2000
- 1990 a=b:gosub2150
- 2000 i=d:return
- 2010 -----------------------------
- 2020 gewinnkarte umschalten
- 2030 -----------------------------
- 2040 c=c+41+bi
- 2050 ifpeek(c)=66orpeek(c)=32thenc=c-1
- 2060 fori=1to10+d*3
- 2070 pokec,peek(c)and127
- 2080 c=c+40:pokec,peek(c)and127
- 2090 c=c-40:pokec,peek(c)or128
- 2100 c=c+40:pokec,peek(c)or128
- 2110 c=c-40:nexti:return
- 2120 -----------------------------
- 2130 gewinn verrechnen
- 2140 -----------------------------
- 2150 c=int(a/100):a=a-c*100:gosub2040
- 2160 c=int(a/10):i=a-c*10
- 2170 ifc=0thenc=10
- 2180 a=c:gw(i)=gw(i)+a*ei*d
- 2190 gs(i)=gs(i)+a*ei*d
- 2200 gb=gb-a*ei*d:gosub1680:return
- 2210 -----------------------------
- 2220 definitionen
- 2230 -----------------------------
- 2240 bi=1024:fa=55296:cu=65520
- 2250 dimka(31),na$(8),fa$(3),bi$(7)
- 2260 dimgs(8),ge(8),gw(8),sz(8,2)
- 2270 c1$=chr$(17):c2$=chr$(145)
- 2280 c3$=chr$(29):c4$=chr$(157)
- 2290 ch$=chr$(19):cc$=chr$(147)
- 2300 fa$(0)="[216]":fa$(1)="[193]"
- 2310 fa$(2)="[211]":fa$(3)="[218]"
- 2320 bi$(0)="7":bi$(1)="8"
- 2330 bi$(2)="9":bi$(3)="x"
- 2340 bi$(4)="b":bi$(5)="d"
- 2350 bi$(6)="k":bi$(7)="a"
- 2360 cr$=chr$(18):co$=chr$(146)
- 2370 poke53281,1:poke53280,0
- 2380 k0$=chr$(117)+chr$(96)+chr$(96)+chr$(105)
- 2390 k1$=chr$(98)+chr$(32)+chr$(32)+chr$(98)
- 2400 k2$=chr$(106)+chr$(96)+chr$(96)+chr$(107)
- 2430 return
- 2440 -----------------------------
- 2450 abfrage am anfang
- 2460 -----------------------------
- 2470 printcc$tab(11)"l o t t e r i e"
- 2480 printc1$c1$c1$
- 2490 printtab(10)"wieviele spieler ?"
- 2500 printc1$c1$
- 2510 a0$="*"
- 2520 fori=1to8
- 2530 a0$=chr$(32)+a0$
- 2540 next
- 2550 geta$:an=val(a$)
- 2560 ifan<1oran>8then2550
- 2570 fori=1toan:a$=str$(i)+str$(i)
- 2580 printi". name";:inputa$
- 2590 na$(i)=left$(a$+a0$,9)
- 2600 nexti:printc1$
- 2610 printtab(10)"einsatz dm 0,01 (1)"
- 2620 printtab(12)"oder dm 0,10 (2)"
- 2630 printtab(12)"oder dm 1,00 (3)"
- 2640 geta$:ei=val(a$)
- 2650 ifei=1then2690
- 2660 ifei=2thenei=10:goto2690
- 2670 ifei=3thenei=100:goto2690
- 2680 goto2640
- 2690 return
- 2700 -----------------------------
- 2710 anfangsbild
- 2720 -----------------------------
- 2730 z$=""
- 2740 fori=1to10
- 2750 z$=z$+chr$(32)
- 2760 next
- 2770 printcc$;
- 2780 printchr$(144)chr$(18)z$z$z$z$;
- 2790 z1$=z$+left$(z$,5)
- 2800 z1$=z1$+chr$(30)+z$+chr$(144)+z1$
- 2810 fori=1to23:printz1$;:nexti
- 2820 fori=960to999
- 2830 pokebi+i,160:pokefa+i,0
- 2840 next
- 2850 cz=0:cs=12:gosub1370
- 2860 print" l o t t e r i e "
- 2870 j=int((an+1)/2):fori=0toan-1:cs=0
- 2880 i=i+1:gosub1680:i=i-1:nexti
- 2890 a=ei:gosub1420
- 2900 cz=21:cs=16:gosub1370
- 2910 print"einsatz=":gosub1370
- 2920 printright$(z$,4)+"- ":a=ei*10
- 2930 gosub1370:gosub1420
- 2940 printz$:return
- 2950 -----------------------------
- 2960 spielregel
- 2970 -----------------------------
- 2980 printcc$tab(12)"spielregel?(j/n)"
- 2990 getz$:ifz$="n"thenreturn
- 3000 ifz$<>"j"then2990
- 3010 printcc$tab(12)" l o t t e r i e "chr$(17)
- 3020 print"zuerst geben sie die anzahl der spieler"
- 3030 print"ein (1-8). anschliessend die namen."
- 3040 print"sie koennen bis neun stellen eingeben. "chr$(17)
- 3050 print"darauf geben sie eine ziffer (1-3) ein,"
- 3060 print"um den mindesteinsatz festzulegen. sie"
- 3070 print"koennen spaeter bis zu 10-fach setzen. "
- 3080 getz$:ifz$=""then3080
- 3090 printcc$tab(12)" l o t t e r i e "chr$(17)
- 3100 print"jetzt koennen die spieler ihren einsatz"
- 3110 print"machen. der spieler, dessen name blinkt"
- 3120 print"drueckt eine der tasten 1 - 0 und kauft"
- 3130 print"damit eine karte aus einem satz von 32"
- 3140 print"karten. der einsatz ist je nach der ge-"
- 3150 print"drueckten taste einfach(1) bis zehnfach"
- 3160 print"(0). je nach einsatz ist nachher auch "
- 3170 print"der gewinn ein- bis zehnfach. "
- 3180 print"sie koennen weitere karten kaufen, bis"
- 3190 print"ihr spielfeld voll ist. doch denken sie"
- 3200 print"auch daran, dass nach ihnen die anderen"
- 3210 print"spieler auch noch ihre einsaetze taeti-"
- 3220 print"gen wollen. wenn sie keine karten mehr"
- 3230 print"kaufen wollen, geben sie + ein. darauf "
- 3240 print"ist der naechste dran.wenn alle spieler"
- 3250 print"ihre einsaetze getaetigt haben, aber es"
- 3260 print"sind noch nicht alle karten verkauft,"
- 3270 print"koennen die mitspieler noch nachkaufen."
- 3280 print"sind alle 32 karten verkauft, oder wird"
- 3290 print"die f1-taste gedrueckt, koennen keine"
- 3300 print"karten mehr gekauft werden - eine runde"
- 3310 print"beginnt."
- 3320 getz$:ifz$=""then3320
- 3330 printcc$tab(12)" l o t t e r i e "chr$(17)
- 3340 print"betaetigen sie nun die f1-taste."
- 3350 print"nun werden aus einem zweiten kartensatz"
- 3360 print"die ersten zwei karten aufgedeckt. "
- 3370 print"wer eine der beiden karten gesetzt hat,"
- 3380 print"erhaelt seinen einsatz (1-10) zurueck. "
- 3390 print"nach weiterem druecken der f1-taste er-"
- 3400 print"scheinen weitere 2 karten, bis vier mal"
- 3410 print"zwei gewinne ausgezahlt wurden. der ge-"
- 3420 print"winn errechnet sich jeweils aus einsatz"
- 3430 print"mal reihennummer fuer die entsprechen-"
- 3440 print"de karte. in der dritten reihe also 3-"
- 3450 print"facher einsatz. zuletzt wird mit f1 der"
- 3460 print"haupgewinn gezogen. dafuer wird der 10-"
- 3470 print"fache einsatz ausgezahlt."
- 3480 print"nun ist eine runde zu ende. die naech- "
- 3490 print"ste runde beginnt, wenn sie f1 druecken"
- 3500 getz$:ifz$=""then3500
- 3510 printcc$tab(12)" l o t t e r i e "chr$(17)
- 3520 print"noch ein paar erklaerungen zum bild: "chr$(17)
- 3530 print"in jedem feld erscheint links oben der"
- 3540 print"anfangs eingegebene name. wurde jedoch "
- 3550 print"kein name eingegeben,sehen sie die num-"
- 3560 print"mer des spielers zweimal. daneben zeigt"
- 3570 print"der bildschirm die hoehe ihres gesamten"
- 3580 print"einsatzes in der laufenden runde. "
- 3590 print"in der naechsten reihe wird rechts der"
- 3600 print"gewinn in der laufenden runde angezeigt"
- 3610 print"links wird schwarz der von der bank zu-"
- 3620 print"zahlende gewinn angezeigt. ein rot an-"
- 3630 print"gezeigter betrag ist an die bank zu zah"
- 3640 print"len."chr$(17)
- 3650 print"der betrag im mittleren spielfeld oben "
- 3660 print"ist gewinn (schwarz) oder verlust (rot)"
- 3670 print"der bank. unter dem bankfeld wird ange-"
- 3680 print"zeigt, wieviele karten noch zu verkau-"
- 3690 print"en sind - und nun viel spass beim spiel"chr$(17)
- 3700 print"alles in ordnung ?"
- 3710 getz$:ifz$=""then3710
- 3720 return
- 3730 rem =programmende============
-