BOXAUTO
Beispiel eines Spielbrettes:
1....
2....
3....
4....
.ABCD
Zwei Figuren(Ziffern/Buchstaben) rennen im rechten Winkel ueber
das Spielbrett. Freie Stellen werden als Punkte gekennzeichnet
Du waehlst die Brettgroesse (Das oben ist 5 Einheiten gross)
N
:
W---O
:
S
Das Ziel ist, die Figuren ueber die gegenueberliegende Kante zu
bewegen.Sieger ist,wer zuerst mit allen Figuren d. Spielbrett
verlaesst. Um eine Figur zu ruecken, gib den Namen und des ersten
Buchstaben der Richtung ein, z.B. AN oder 1O. Du verlierst,
wenn du dem Gegner keine Zugmoeglichkeit laesst.
Tippe E f. ENDE oder H f. HILFE.
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
5 CLS
10 PRINT:PRINT:PRINT TAB(10);"BOXAUTO":PRINT:PRINT:PRINT
280 GOSUB 3130
290 INPUT "Spielbrettgroesse(3-8) ";A
320 IF A<3 OR A>8 THEN 290
340 P(1,0)=A-1:P(2,0)=A-1
380 FOR J=1 TO A-1
390 P(1,J)=10*J+1
400 P(2,J)=10*A+J+1
410 NEXT J
460 F=1
470 M$(1)="NOS"
480 M$(2)="NO W"
490 C$(1)="Ziffern "
500 C$(2)="Buchstaben"
510 A$(1)="1234567"
520 A$(2)="ABCDEFG"
530 X$=CHR$(213)
560 FOR J=1 TO A
570 IF J=A THEN 630
580 D$(J,1)=CHR$(48+J)
590 FOR K=2 TO A
600 D$(J,K)=X$
610 NEXT K
620 GOTO 670
630 D$(J,1)=X$
640 FOR K=2 TO A
650 D$(J,K)=CHR$(63+K)
660 NEXT K
670 NEXT J
690 INPUT "Wieviele Spieler (1/2) ";B
710 ON B GOTO 740,800
730 GOTO 690
740 PRINT "Der Computer bewegt die Ziffern"
750 INPUT "Wer zieht zuerst (1=COMPUTER 2=DU)";F
770 IF F<1 OR F>2 THEN PRINT "Bitte tippe nur 1/2 ein":GOTO 750
800 PRINT
810 PRINT "Wir fangen an..."
840 PRINT
850 FOR J=1 TO A
860 FOR K=1 TO A
870 PRINT D$(J,K);
880 NEXT K
890 PRINT
900 NEXT J
910 PRINT
950 FOR J=F TO 3-F STEP 3-2*F
960 FOR J1=1 TO A-1
990 R=INT(P(J,J1)/10)
1000 C=P(J,J1)-10*R
1020 ON J GOTO 1040,1100
1040 IF C=A THEN 1300
1050 IF C>A THEN 1250 ELSE 1160
1100 IF R=1 THEN 1300
1110 IF R=0 THEN 1250
1160 IF D$(R-1,C)=X$ THEN 1300
1170 IF D$(R,C+1)=X$ THEN 1300
1180 IF J=2 THEN 1220
1190 IF D$(R+1,C)=X$ THEN 1300 ELSE 1250
1220 IF D$(R,C-1)=X$ THEN 1300
1250 NEXT J1
1260 PRINT "Die ";C$(3-J);" koennen sich nicht an die ";C$(J);" bewegen"
1270 PRINT "Die ";C$(J);" GEWINNEN!!!"
1280 STOP
1300 IF B=2 OR J=2 THEN 1750
1340 L1=2
1350 FOR L0=1 TO 3
1360 ON L0 GOTO 1450,1380,1430
1380 IF RND(1)<.5 THEN 1410
1390 L1=1
1400 GOTO 1450
1410 L1=3
1420 GOTO 1450
1430 L1=4-L1
1450 P1=INT(RND(1)*A)
1460 FOR L2=1 TO A-1
1470 P1=P1+1
1480 IF P1<=A-1 THEN 1500
1490 P1=P1-(A-1)
1500 R=INT(P(J,P1)/10)
1510 C=P(J,P1)-10*R
1520 IF C>A THEN 1720
1540 ON L1 GOTO 1570,1620,1690
1570 IF D$(R-1,C)=X$ THEN 2090 ELSE 1720
1620 IF D$(R,C+1)=X$ THEN 2160
1630 IF C<>A THEN 1720
1650 P(J,0)=P(J,0)-1
1660 GOTO 2160
1690 IF D$(R+1,C)=X$ THEN 2230
1720 NEXT L2:NEXT L0
1740 GOTO 1260
1750 PRINT C$(J);" bewegen";
1760 INPUT A$
1790 IF A$="E"THEN 2860
1800 IF A$="H"THEN 2460
1810 A$=MID$(A$,1,2)
1811 P1=0
1813 FOR B0=1 TO A-1
1815 IF MID$(A$(J),B0,1)=MID$(A$,1,1)THEN P1=B0
1817 NEXT B0
1830 IF P1=0 THEN 2430
1832 P2=0
1834 FOR B0=1 TO 4
1836 IF MID$(M$(J),B0,1)=MID$(A$,2,1)THEN P2=B0
1838 NEXT B0
1850 IF P2=0 THEN 2430
1860 R=INT(P(J,P1)/10)
1870 C=P(J,P1)-10*R
1880 IF R=0 OR C>A THEN 2430
1910 ON J GOTO 1930,1990
1930 IF C<A OR P2<>2 THEN 2040
1950 P(1,0)=P(1,0)-1
1960 GOTO 2160
1990 IF R>1 OR P2<>1 THEN 2040
2010 P(2,0)=P(2,0)-1
2020 GOTO 2090
2040 ON P2 GOTO 2070,2140,2210,2280
2070 IF D$(R-1,C)<>X$ THEN 2430
2090 D$(R-1,C)=MID$(A$(J),P1,1)
2100 P(J,P1)=P(J,P1)-10
2110 GOTO 2330
2140 IF D$(R,C+1)<>X$ THEN 2430
2160 D$(R,C+1)=MID$(A$(J),P1,1)
2170 P(J,P1)=P(J,P1)+1
2180 GOTO 2330
2210 IF D$(R+1,C)<>X$ THEN 2430
2230 D$(R+1,C)=MID$(A$(J),P1,1)
2240 P(J,P1)=P(J,P1)+10
2250 GOTO 2330
2280 IF D$(R,C-1)<>X$ THEN 2430
2300 D$(R,C-1)=MID$(A$(J),P1,1)
2310 P(J,P1)=P(J,P1)-1
2330 D$(R,C)=X$
2340 IF B=2 OR J=2 THEN 2380
2360 PRINT "Die Ziffern bewegen: ";MID$(A$(J),P1,1);
2370 PRINT MID$(M$(J),L1,1)
2380 IF P(J,0)<>0 THEN 2900
2390 PRINT
2400 PRINT "*** Die ";C$(J);" gewinnen!! ***"
2410 END
2430 PRINT "Ungueltiger Zug/falsche Eingabe"
2440 PRINT "Eingabe ignoriert, tippe H fuer Hilfe"
2450 GOTO 1750
2460 PRINT "Die ";C$(J);" haben diese gueltigen Zuege:"
2480 FOR J3=1 TO A-1
2490 P$=MID$(A$(J),J3,1)
2500 R=INT(P(J,J3)/10)
2510 C=P(J,J3)-10*R
2530 ON J GOTO 2550,2620
2550 IF C=A THEN PRINT " ";P$;"0";:GOTO 2690
2560 IF C>A THEN 2830 ELSE 2690
2620 IF R=1 THEN 2700
2630 IF R=0 THEN 2830
2690 IF D$(R-1,C)=X$ THEN PRINT " ";P$;"N";
2730 IF D$(R,C+1)=X$ THEN PRINT " ";P$;"O";
2770 IF J=2 THEN 2810
2780 IF D$(R+1,C)=X$ THEN PRINT " ";P$;"S";
2800 GOTO 2830
2810 IF D$(R,C-1)=X$ THEN PRINT " ";P$;"W";
2830 NEXT J3
2840 PRINT
2850 GOTO 1750
2860 PRINT "Die ";C$(J);" geben auf!!"
2870 PRINT "* Die ";C$(3-J);" Gewinnen!!*"
2880 END
2900 NEXT J
2910 GOTO 840
3130 PRINT
3140 PRINT " Beispiel eines Spielbrettes:"
3150 PRINT
3160 PRINT " 1...."
3170 PRINT " 2...."
3180 PRINT " 3...."
3190 PRINT " 4...."
3200 PRINT " .ABCD"
3210 PRINT
3220 PRINT "Zwei Figuren(Ziffern/Buchstaben)"
3230 PRINT "rennen im rechten Winkel ueber"
3240 PRINT "das Spielbrett. Freie Stellen"
3250 PRINT "werden als Punkte gekennzeichnet"
3260 PRINT "Du waehlst die Brettgroesse"
3270 PRINT "(Das oben ist 5 Einheiten gross)"
3280 PRINT
3285 INPUT " DRUECKE -Ent-";A$
3287 CLS
3290 PRINT " N"
3300 PRINT " :"
3310 PRINT " W---O"
3320 PRINT " :"
3330 PRINT " S"
3340 PRINT
3350 PRINT "Das Ziel ist, die Figuren ueber"
3360 PRINT "die gegenueberliegende Kante zu"
3370 PRINT "bewegen.Sieger ist,wer zuerst"
3380 PRINT "mit allen Figuren d. Spielbrett"
3390 PRINT "verlaesst.Um ein.Figur zu ruek-"
3400 PRINT "ken,gib den Namen und d. ersten"
3410 PRINT "Buchstaben der Richtung ein,"
3420 PRINT "z.B. AN oder 1O. Du verlierst,"
3430 PRINT "wenn du dem Gegner keine Zug-"
3440 PRINT "moeglichkeit laesst."
3450 PRINT
3460 PRINT "Tippe E f. ENDE oder H f. HILFE."
3480 XX=0
3490 PRINT "Starte das Programm neu !!!"
3510 DELETE 3140,3510
3520 RETURN