100 rem KARTENSPIEL "POLTERSCHNACK" 10 rem --------------------------- 20 dim a(32),b(32),c(32) 30 dim h(32),r(32),s(32) 40 e=1:z=10:n=0:a(0)=32 50 n=n+1:a(n)=e+z 60 e=e+1 70 if e=9 then z=z+10:e=1 80 if z<50 then 150 90 print "=============" 00 print "POLTERSCHNACK" 10 print "=============" 20 print:print "KENNEN SIE DIE SPIELREGELN?" 30 input "(J/N):",a$ 40 if a$="J" then 350 50 if a$<>"N" then print "BITTE NUR N ODER J EINGEBEN!":goto 230 60 print "SPIELREGELN:" 70 print "============" 80 print "GEWONNEN HAT,WER ALS ERSTER ALLE SEINE KARTEN " 90 print "ABLEGEN KONNTE. ABGELEGT WERDEN DUERFEN KARTEN, " 00 print "DIE IN BILD ODER FARBE MIT DER KARTE AUF DEM " 10 print "TISCH UEBEREINSTIMMEN. WER KEINE PASSENDE KARTE " 20 print "HAT, MUSS SOLANGE NACHSCHUB VOM TALON NEHMEN, " 30 print "BIS ER SPIELEN KANN. UND JETZT: VIEL GLUECK!" 40 for n=1 to 50:print "-";:next:print 50 input "SIND SIE BEREIT (J)";a$ 60 if a$<>"J" then 350 70 print "BITTE EIN PAAR SEKUNDEN GEDULD, ICH MISCHE" 80 for d=0 to 3 90 nb=0:nc=a(0)+1 00 for n=1 to a(0) 10 on (int(2*rnd(1)+1)) goto 500,520 20 next n 30 for n=1 to a(0) 40 a(n)=b(n)+c(n):b(n)=0:c(n)=0 50 next n 60 next d 70 fr=0: nr=0: goto 600 00 nb=nb+1 10 b(nb)=a(n): goto 420 20 nc=nc-1 30 c(nc)=a(n):goto 420 00 gosub 1000 10 print ta$ 20 input "(J/N):";b$ 30 if b$="J" then f=1:goto 660 40 if b$="N" then f=2:goto 660 50 print th$:goto 610 60 for n=1 to 6:h(n)=a(33-n):a(0)=a(0)-1:h(0)=h(0)+1 70 a(33-n)=0:next n 80 for n=1 to 6:r(n)=a(27-n):a(0)=a(0)-1:r(0)=r(0)+1 90 a(27-n)=0:next n 00 t=a(0):r=s(0)+1:s(r)=a(t):a(t)=0:a(0)=a(0)-1:s(0)=r 10 print "PROTOKOLLIERUNG GEWUENSCHT?" 20 input "(J/N):",a$ 30 if a$="N" then fd=0:goto 800 40 if a$<>"J" then print th$:goto 710 50 fd=1:print "LEGEN SIE DISKETTE EIN" 60 input "FERTIG? (J):",a$ 70 if a$<>"J" then print "??":goto 760 80 print "AUGENBLICK, GLEICH GEHT'S LOS!*" 90 open "O",#1,"SPIELMEM.PRT" 00 gosub 2500 10 n=s(0):x=s(n):gosub 2000 20 print "***";tb$;" ";a$;" ";tg4;" ";r(0) 30 if fr=1 then fr=0:print "ICH MUSSTE EINE KARTE NEHMEN" 40 for n=1 to 40:print "-";:next n:print 50 print tc$ 60 m=h(0) 70 for n=1 to m:x=h(n):gosub 2000 80 print " ";n;" ";a$ 90 next n:print 00 for n=1 to 40:print " ";:next n:print 10 if h(0)=0 then print tk$:goto 5040 20 if r(0)=0 then print tl$:goto 5040 30 if a(0)=0 then gosub 1350 40 if f=2 then print te$;tf$:input "RETURN:";a$:goto 980 50 if f=3 then print tj$ 60 if f=4 then print th$ 70 f=1:input "BITTE NUMMER DER KARTE (NACHSCHUB=0):",a 80 on f gosub 1110,1160 90 goto 800 000 ta$="WOLLEN SIE VOR DEM RECHNER MIT SPIELEN BEGINNEN?" 010 tb$="AUF DEM TISCH LIEGT" 020 tc$="IHRE KARTEN:" 030 te$="DER RECHNER IST AN DER REIHE ZU SPIELEN" 040 tf$=",QUITTIEREN SIE MIT" 050 tg$="ZAHL DER KARTEN, DIE ICH AUF DER HAND HABE:" 060 th$="???FEHLERHAFTE EINGABE, BITTE WIEDERHOLEN!" 070 tj$="VERSTOSS GEGEN DIE SPIELREGEL, WIEDERHOLEN:" 080 tk$="SIE HABEN GEWONNEN, GLUECKWUNSCH!" 090 tl$="***DAMIT HABE ICH GEWONNEN, AETSCH!***" 100 return 110 if a>h(0) then f=4:return 120 if a=0 then gosub 1550:return 130 p=h(a):gosub 1400 140 if fp=2 then f=3:return 150 gosub 1500:f=2:return 160 gosub 1450 170 if fp=1 then gosub 1600:f=1:return 180 fr=1:gosub 1650:rx=r(0):p=r(rx):gosub 1400 190 if fp=2 then goto 1180 200 a=r(0):gosub 1600:f=1:return 350 m=s(0):x=s(m):s(m)=0:m=m-1:s(0)=s(0)-1 360 for n=1 to m:a(n)=s(m):s(m)=0:a(0)=a(0)+1 370 s(0)=s(0)-1:m=m-1:next n 380 s(1)=x:s(0)=s(0)+1 390 print "TALON WAR LEER":return 400 vx=s(0):v=s(vx):pg=int(p/10):vg=int(v/10) 410 if pg=vg then fp=1:return 420 pk=int(p-10*pg):vk=int(v-10*vg) 430 if pk=vk then fp=1:return 440 fp=2:return 450 for a=1 to r(0) 460 p=r(a):gosub 1400 470 if fp=2 then next 480 return 500 s(0)=s(0)+1:sx=s(0):s(sx)=h(a) 510 for n=a to h(0):h(n)=h(n+1):next n 520 h(0)=h(0)-1:return 550 h(0)=h(0)+1:hx=h(0):ax=a(0):h(hx)=a(ax) 560 a(ax)=0:a(0)=a(0)-1:return 600 s(0)=s(0)+1:sx=s(0):s(sx)=r(a) 610 for n=a to r(0):r(n)=r(n+1):next n 620 r(0)=r(0)-1:return 650 r(0)=r(0)+1:rx=r(0):ax=a(0):r(rx)=a(ax) 660 a(ax)=0:a(0)=a(0)-1:return 000 if x>40 then a$="HERZ":goto 2040 010 if x>30 then a$="KARO":goto 2040 020 if x>20 then a$="PIQU":goto 2040 030 a$="KRZ-" 040 x=x/10:x=x-int(x):x=x*10 050 if x>7.5 then a$=a$+"ASS":return 060 if x>6.5 then a$=a$+"KOE":return 070 if x>5.5 then a$=a$+"DME":return 080 if x>4.5 then a$=a$+"BUB":return 090 if x>3.5 then a$=a$+" 10":return 100 if x>2.5 then a$=a$+" 9 ":return 110 if x>1.5 then a$=a$+" 8 ":return 120 if x>.5 then a$=a$+" 7 ":return 130 a$="--":return 500 if fd=0 then return 510 nr=nr+1 520 print#1,fr:print#1,f:print#1,nr 530 print#1,a(0):print#1,h(0):print#1,r(0):print#1,s(0) 540 for n=1 to a(0):print#1,a(n):next n 550 for n=1 to h(0):print#1,h(n):next n 560 for n=1 to r(0):print#1,r(n):next n 570 for n=1 to s(0):print#1,s(n):next n 580 return 000 gosub 1000 010 dim a(32),h(32),r(32),s(32) 020 open "I",#1,"SPIELMEM.PRT" 025 if eof(1) then end 030 input#1,fr:input#1,f:input#1,nr 040 input#1,a(0):input#1,h(0):input#1,r(0):input#1,s(0) 050 for n=1 to a(0):input#1,a(n):next n 060 for n=1 to h(0):input#1,h(n):next n 070 for n=1 to r(0):input#1,r(n):next n 080 for n=1 to s(0):input#1,s(n):next n 090 x=a(0)+h(0)+r(0)+s(0) 100 if x<>32 then print "ABBRUCH KARTENSUMME",x:close #1 110 print "DURCHGANG NR.:",nr 120 if fr=1 then print "RECHNER NAHM KARTE VOM TALON" 130 on f gosub 5000,5010,5020,5030 140 print:print "TALON MIT ";a(0);"KARTEN" 149 m=1:print " "; 150 for n=1 to a(0):x=a(n):gosub 2000:print " ";a$;" "; 151 if m=6 then print:m=1:print " "; else m=m+1 160 next n:print:print "HANDKARTEN DES SPIELERS:",h(0) 169 m=1:print " "; 170 for n=1 to h(0):x=h(n):gosub 2000:print " ";a$;" "; 171 if m=6 then print:m=1:print " "; else m=m+1 180 next n:print:print "HANDKARTEN DES RECHNERS: ",r(0) 189 m=1:print " "; 190 for n=1 to r(0):x=r(n):gosub 2000:print " ";a$;" "; 191 if m=6 then print:m=1:print " "; else m=m+1 200 next n:print:print "AUF DEM TISCH: ",s(0) 209 m=1:print " "; 210 for n=1 to s(0):x=s(n):gosub 2000:print " ";a$;" "; 211 if m=6 then print:m=1:print " "; else m=m+1 212 next n 220 print:if a(0)=0 or r(0)=0 then close 1#:end 230 print "WEITER, ZURUECK INS SPIEL ODER SCHLUSS?" 240 input "(W/Z/S):";a$ 250 if a$="W" then 3025 260 if a$="S" then print "SCHLUSS.":close #1:end 270 if a$="Z" then close #1:goto 800 280 goto 3025 000 print "SPIELER JETZT AN DER REIHE":return 010 print "RECHNER JETZT AN DER REIHE":return 020 print "SPIELER NACH REGELVERSTOSS ERNEUT DRAN":return 030 print "SPIELER NACH IRRTUM ERNEUT DRAN":return 040 close #1:end