Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß) 10 REM ============================== 11 REM Dieses Programm ist verfasst 12 REM von Hartmut Schwetlick 13 REM 14 REM -Alle Rechte vorbehalten! 15 REM -Aenderungen nur in 16 REM Kenntnis des Verfassers 17 REM ============================== 18 REM 20 WINDOW:CLS:CLEAR 255 30 WINDOW 4,23,8,39 31 PRINT "" 32 PRINT " " 33 PRINT " 19 85 " 34 PRINT " " 35 PRINT " " 36 PRINT " " 37 PRINT " " 38 PRINT " " 39 PRINT " " 40 PRINT " " 41 PRINT " " 42 PRINT " " 43 PRINT " " 44 PRINT "by HARTMUT SCHWETLICK" 45 PRINT "" 46 PAUSE 40 100 WINDOW:CLS:CLEAR:X=1:Y=1:GOTO 110 105 PRINT AT(X,Y);"":RETURN 110 GOSUB 105:IF Y<39 THEN Y=Y+1:GOTO 110 115 GOSUB 105:IF X<23 THEN X=X+1:GOTO 115 120 GOSUB 105:IF Y>0 THEN Y=Y-1:GOTO 120 125 GOSUB 105:IF X>1 THEN X=X-1:GOTO 125 127 PRINT AT(3,13);STRING$(15,"*") 130 PRINT AT(4,13);"* BOHNENSPIEL *" 135 PRINT AT(5,13);STRING$(15,"*") 140 PRINT AT(12,3);"Antworten Sie bitte auf meine" 145 PRINT AT(13,3);"Entscheidungsfragen mit J bzw N.":PAUSE 50 150 PRINT AT(12,1);STRING$(38," "):PRINT AT(13,1);STRING$(38," ") 155 PRINT AT(13,9);"Anleitung erwuenscht ?" 160 A$=INKEY$:IF A$="N"THEN 295:ELSE IF A$<>"J"THEN 160 165 WINDOW 5,22,2,38 170 PRINT "Vom Spieler wird die Anzahl seiner" 175 PRINT "Felder festgelegt. Der Gegner be-" 180 PRINT "sitzt ebensoviele. Auf jedem Feld" 185 PRINT "liegen am Spielbeginn 6 Bohnen. Der" 190 PRINT "am Zug befindliche Spieler waehlt" 195 PRINT "eines seiner Felder aus. Die auf" 200 PRINT "diesem Feld liegenden Bohnen werden" 205 PRINT "der Reihe nach auf die folgenden" 210 PRINT "Felder verteilt. Das Feld, auf dem" 215 PRINT "die letzte Bohne verteilt worden" 220 PRINT "ist,wird auf Gewinn geprueft. Wenn" 225 PRINT "auf diesem 2 od.4 od.6 Bohnen lie-" 230 PRINT "gen, werden diese dem Spieler" 235 PRINT "gutgeschrieben." 240 PRINT:PRINT:PRINT "Kann es weiter gehen ? J/N" 245 A$=INKEY$:IF A$<>"J"THEN 245 250 CLS:PRINT "Trifft das zu, werden ausserdem noch" 255 PRINT "die vorangegangenen Felder geprueft." 260 PRINT "Hat ein Spieler auf seinen Feldern" 265 PRINT "keine Bohne mehr, und kann deshalb"" 270 PRINT "nicht mehr verteilen, ist das Spiel" 275 PRINT "zu Ende. Die restlichen Bohnen sind" 280 PRINT "dem Gegner." 285 PRINT:PRINT:PRINT "Alles klar ?"; 290 A$=INKEY$:IF A$<>"J"THEN 290 295 WINDOW 5,22,2,38:CLS:PRINT 300 PRINT "Wollen Sie mit mir spielen ?";:W=0 305 A$=INKEY$:IF A$="J"THEN 360 310 IF A$<>"N"THEN 305:ELSE T1$=" nimmt":T2$=T1$:W=1:X=0 315 PRINT A$:PRINT "Dann brauche ich aber Ihren Namen" 320 PRINT "und den Ihres Partners.":INPUT "Ihr Name bitte:";S1$ 325 INPUT "Ihr Partner :";S2$:S1$=LEFT$(S1$,8):S2$=LEFT$(S2$,8) 330 IF S1$=S2$ THEN S1$=LEFT$(S1$,7)+"1":S2$=LEFT$(S2$,7)+"2":GOTO 350 335 INPUT "Wer will beginnen ? ";A$:IF S1$=A$ THEN 375 340 IF A$=S2$ THEN S2$=S1$:S1$=A$:GOTO 375 345 PRINT "Entscheiden Sie sich: ";S1$;" oder ";:PRINT S2$:GOTO 335 350 PRINT "Da Ihre Namen gleich sind, heissen":PRINT "Sie ";S1$; 355 PRINT " und Ihr Partner ";S2$:GOTO 335 360 PRINT A$:PRINT "Wollen Sie beginnen?"; 365 A$=INKEY$:IF A$="J"THEN X=0:ELSE X=1:IF A$<>"N"THEN 365 370 S2$="Ich":T2$=" nehme":S1$="Sie":T1$=" nehmen":PRINT A$ 375 PRINT "Mit wieviel Feldern spielen Sie?"; 380 A$=INKEY$:IF A$<"1"OR A$>"7"THEN 380:ELSE M=VAL(A$) 385 Y=INT((38-4*M)/(M+1)):WINDOW 1,22,1,38:CLS:Z=Y+1-(M=3 OR M=4 OR M=7) 390 WINDOW:A=Z:FOR I=1 TO M:PRINT AT(2,A);"___":PRINT AT(3,A);"!"+CHR$(64+I)+"!" 395 PRINT AT(4,A);"----":PRINT AT(5,A);"I I":PRINT AT(6,A);"I 6I" 400 PRINT AT(7,A);"I I":PRINT AT(8,A);"----":PRINT AT(12,A);"----" 405 PRINT AT(13,A);"I I":PRINT AT(14,A);"I 6I":PRINT AT(15,A);"I I" 410 PRINT AT(16,A);"----":PRINT AT(17,A);"!"+CHR$(64+M+I)+"!" 415 PRINT AT(18,A);"---":A=A+4+Y:NEXT:PRINT AT(19,1);STRING$(38,"_") 420 PRINT AT(20,21);"!"+S1$:PRINT AT(22,21);"!" 425 PRINT AT(20,30);"!"+S2$:PRINT AT(22,30);"!" 430 PRINT AT(21,21);"!--------!--------" 435 M=2*M:DIM Z(M):FOR I=1 TO M:Z(I)=6:NEXT:W$="":I=RND(-PEEK(31)):IF X=1 THEN 555 440 IF W$=S1$ THEN W$=S2$:X$=T2$:X=1:ELSE W$=S1$:X$=T1$:X=0 445 PRINT AT(20,1);W$+X$+" Feld" 450 A$=INKEY$:IF A$<CHR$(65+M*W*X/2)OR A$>=CHR$(65+M/2+M*W*X/2)THEN 450 455 U=ASC(A$)-64:IF Z(U)=0 THEN 450:ELSE PRINT AT(20,20);A$ 460 T=Z(U):Z(U)=-1:U=U-1:IF U=0 THEN U=M 465 U=U+1+M*(U=M):Z(U)=Z(U)+1:T=T-1:GOSUB 470:ON 1-(T>=0)GOTO 480,465 470 PRINT AT(6-8*(U>M/2),Z+1+(4+Y)*(U-1+M/2*(U>M/2)));RIGHT$(STR$(Z(U)),2) 475 RETURN 480 PRINT AT(21,1);"Letzte auf "+CHR$(64+U)+" -> "+RIGHT$(STR$(Z(U)),2) 485 PAUSE 25:S=Z(U):IF S<>2 AND S<>4 AND S<>6 THEN 505 490 PRINT AT(22,1);"GEWINN auf "+CHR$(64+U)+" -> "+RIGHT$(STR$(Z(U)),2) 495 Z(U)=0:GOSUB 470:IF X=0 THEN N=N+S:O=N:ELSE P=P+S:O=P 500 PRINT AT(22,25+9*X);RIGHT$(STR$(O),2):U=U-1-M*(U=1):GOTO 485 505 PAUSE 30:FOR O=1 TO 3:PRINT AT(19+O,1);" ":NEXT:S=0 510 FOR O=1 TO M/2:S=S+Z(O):NEXT:IF X+W=0 THEN ON(1-(6*M>N+P+S))GOTO 565,525 515 IF X=1 THEN ON(1-(S=0))GOTO 440,565 520 IF 6*M>N+P+S THEN 440:ELSE GOTO 565 525 T=0:X=1:FOR S=M/2+1 TO M:R=0:V=S+Z(S):IF V=S THEN 550 530 IF V>M THEN V=V-M:GOTO 530 535 Q=INT(Z(S)/M)-(Z(V)+1)*(V<>S) 540 IF Q=2 OR Q=4 OR Q=6 THEN R=R+Q:V=V-1-M*(V=1):GOTO 535 545 IF R>T THEN T=R:U=S 550 NEXT:IF T>0 THEN 560 555 U=INT(RND(1)*M/2+1+M/2):IF Z(U)=0 THEN 555 560 W$="Ich":PRINT AT(20,1);"Ich nehme Feld "+CHR$(64+U):GOTO 460 565 IF X=1 THEN R$=S1$:ELSE R$=S2$ 570 IF W=1 THEN S$=" hat":ELSE S$=" habe":IF X=1 THEN S$=" haben" 575 PRINT AT(20,1);R$+S$+" keine":PRINT AT(21,1);"Bohnen mehr. ENDE:":N=N+S 580 PRINT AT(22,25);RIGHT$(STR$(N),2):PRINT AT(22,34);RIGHT$(STR$(6*M-N),2) 585 PRINT AT(22,1);"Neues Spiel ?" 590 A$=INKEY$:IF A$="J"THEN 100 595 IF A$<>"N"THEN 590:ELSE CLS:END