Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4
2bc0 4410 00e0 B ... EXPANSION
Spielregel: EXPANSION wird auf einem quadratischen Spielfeld mit einer Feldanzahl von 2x2 bis 6x6 gespielt. Auf jedes Feld kann ein Spieler eine bestimmte Anzahl von Steinen setzen. Die maximale Anzahl betraegt: - auf Eckfeldern 1 Stein - auf Randfeldern 2 Steine - auf Mittelfeldern 3 Steine. Jeder Spieler darf nur auf Leerfelder oder seine eigenen Steine setzen. Wird die maximale Anzahl ueberschritten, werden die Steine auf die Nachbarfelder gesprengt. Dabei werden alle Nachbarsteine in seine umgewandelt. Sieger ist der Spieler, der alle Steine in seine verwandelt hat.
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

   10 WINDOW:CLS:HY=1:PRINT AT(0,0);" "
   15 GOSUB 6500:GOTO 500
   20!Bild aendern
   21 IM=I:JM=J
   22 FOR II=1 TO 5:IF B(II,1)=0 THEN II=5:GOTO 24
   23 I=B(II,1):J=B(II,2):FA=A2(I,J):AN=A1(I,J):GOSUB 90
   24 NEXT II:I=IM:J=JM
   25 FOR II=1 TO 5:B(II,1)=0:NEXT II
   26 F=2
   27 IF K>2 THEN GOSUB 60
   28 RETURN
   30!Sprung
   32 H3=0:F=2:FOR I=1 TO N:FOR J=1 TO N
   34 IF A1(I,J)<A3(I,J)GOTO 50
   36 IF I-1>0 THEN A1(I-1,J)=A1(I-1,J)+1:A2(I-1,J)=KA:B(F,1)=I-1:B(F,2)=J:F=F+1
   38 IF I+1<=N THEN A1(I+1,J)=A1(I+1,J)+1:A2(I+1,J)=KA:B(F,1)=I+1:B(F,2)=J:F=F+1
   40 IF J-1>0 THEN A1(I,J-1)=A1(I,J-1)+1:A2(I,J-1)=KA:B(F,1)=I:B(F,2)=J-1:F=F+1
   42 IF J+1<=N THEN A1(I,J+1)=A1(I,J+1)+1:A2(I,J+1)=KA:B(F,1)=I:B(F,2)=J+1:F=F+1
   44 A1(I,J)=A1(I,J)-A3(I,J):B(1,1)=I:B(1,2)=J
   46 IF A1(I,J)=0 THEN A2(I,J)=0
   48 ZL=I:SL=J:GOSUB 20:H3=1
   50 NEXT J,I
   51 IF H3=0 THEN RETURN:ELSE GOTO 32
   60! SUCHE NACH ABBRUCH
   62 H1=0:H2=0
   64 FOR I1=1 TO N:FOR J1=1 TO N
   66 IF A2(I1,J1)=1 THEN H1=1 
   68 IF A2(I1,J1)=2 THEN H2=2
   70 NEXT J1,I1
   72 IF H1*H2>0 THEN RETURN
   74 PRINT:PRINT "und hat gewonnen!"
   76 PRINT:PRINT "Neues Spiel ?";
   78 A$=INKEY$:IF A$="" GOTO 78
   80 IF A$="N"THEN WINDOW:CLS:END:ELSE WINDOW:CLS:RUN 500
   90 ZE=255-FA*223+223:IF AN=0 THEN ZE=197:AN=149
   92 FOR I4=1 TO 3:PRINT AT(3*I+I4,3*J);CHR$(ZE)+CHR$(ZE)+CHR$(ZE):NEXT I4
   94 PRINT AT(3*I+2,3*J+1);CHR$(48+AN)
   96 RETURN
  100 REM COMPUTERZUG
  105 IF K>0 GOTO 115
  110 PRINT "Computer beginnt!":GOTO 120
  115 PRINT "Computer setzt"
  120 IF KA=1 GOTO 300:ELSE PRINT "Schwarz :":Q=0:U=Q:FOR N1=1 TO N:FOR J=1 TO N
  125 P(N1,J)=0:IF A2(N1,J)=KA AND A1(N1,J)=A3(N1,J)-1 THEN P(N1,J)=1:Q=Q+1
  130 IF A2(N1,J)<>1 THEN U=U+1
  135 NEXT J,N1:IF Q=0 GOTO 205
  140 FOR N1=1 TO N:FOR J=1 TO N:IF P(N1,J)=0 GOTO 180
  145 O=J:FOR P=N1-1 TO 1 STEP-1:GOSUB 270:IF A1(P,J)<>A3(P,J)-1 THEN P=1
  150 NEXT:IF N1>N-1 THEN FOR P=1 TO 1:GOTO 160
  155 FOR P=N1+1 TO N:GOSUB 270:IF A1(P,J)<>A3(P,J)-1 THEN P=N
  160 NEXT:P=N1:FOR O=J TO 1 STEP-1:GOSUB 270:IF A1(N1,O)<>A3(N1,O)-1 THEN O=1
  165 NEXT:IF J>N-1 GOTO 180
  170 FOR O=J+1 TO N:GOSUB 270:IF A1(N1,O)<>A3(N1,O)-1 THEN O=N
  175 NEXT
  180 NEXT:NEXT
  185 M=0:FOR P=1 TO N:FOR O=1 TO N
  190 IF P(P,O)>M THEN M=P(P,O):N1=P:J=O
  195 NEXT:NEXT:IF Q<>1 OR((N1=1 OR N1=N)AND(J=1 OR J=N1)AND FN R(2)=1)THEN 265
  200 IF Q=1 AND P(N1,J)>50 THEN 265
  205 B=0:IF FN R(3)=1 OR U>N*(N-1)GOTO 220
  210 FOR P=1 TO N:FOR O=1 TO N:IF A2(P,O)=KA THEN N1=P:J=O:P=N:O=N
  215 NEXT:NEXT:GOTO 225
  220 N1=FN R(N):J=FN R(N):IF A2(N1,J)=1 GOTO 220
  225 R=0:FOR P=N1-1 TO N1-(N1<N):IF A2(P,J)<> 1 GOTO 235
  230 IF A1(P,J)=A3(P,J)-1 THEN R=1
  235 NEXT:FOR O=J-1 TO J-(J<N):IF A2(N1,O)<>1 GOTO 245
  240 IF A1(N1,O)=A3(N1,O)-1 THEN R=1
  245 NEXT:IF R>0 THEN B=B+1:IF B<U GOTO 220
  250 GOTO 265
  255 FOR P=1 TO N:FOR O=1 TO N:IF A2(P,O)<>1 THEN N1=P:J=O:P=N:O=N
  260 NEXT:NEXT
  265 PRINT "Zeile :";N1:PRINT "Spalte:";J:ZL=N1:SL=J:K=K+1:RETURN
  270 P(N1,J)=P(N1,J)+1:IF A2(P,O)=2 THEN P(N1,J)=P(N1,J)+50
  275 RETURN
  300 REM COMPUTERZUG
  302 PRINT "Weiss  :"
  304 FOR P=1 TO N:FOR J=1 TO N
  306 P(P,J)=0:IF A2(P,J)=2 THEN NEXT J,P:GOTO 348
  308 P(P,J)=30
  310 DR=A3(P,J)-A1(P,J)-1:NO=4:NU=4:NL=4:NR=4
  312 IF A2(P+1,J)=2 THEN NR=A3(P+1,J)-A1(P+1,J)-1
  314 IF A2(P-1,J)=2 THEN NL=A3(P-1,J)-A1(P-1,J)-1
  316 IF A2(P,J+1)=2 THEN NO=A3(P,J+1)-A1(P,J+1)-1
  318 IF A2(P,J-1)=2 THEN NU=A3(P,J-1)-A1(P,J-1)-1
  320 NG=NR:IF NG>NU THEN NG=NU
  322 IF NG>NL THEN NG=NL
  324 IF NG>NO THEN NG=NO
  326 IF A2(P,J)=0 THEN P(P,J)=P(P,J)+10:ELSE GOTO 340
  328 IF NG=4 THEN P(P,J)=P(P,J)+10-5*DR:NEXT J,P:GOTO 348
  330 IF NG>DR THEN P(P,J)=P(P,J)+5:NEXT J,P:GOTO 348
  332 IF NG=DR THEN P(P,J)=P(P,J)+30:NEXT J,P:GOTO 348
  334 IF NG<DR THEN P(P,J)=P(P,J)-10
  336 IF NG=0 THEN P(P,J)=P(P,J)-10
  338 NEXT J,P:GOTO 348
  340 IF NG=4 THEN P(P,J)=P(P,J)-5:NEXT J,P:GOTO 348
  342 IF NG=DR THEN P(P,J)=P(P,J)+35:IF NG=0 THEN P(P,J)=P(P,J)+10:NEXT J,P:GOTO 348
  344 IF NG<DR THEN P(P,J)=P(P,J)-0:IF NG=0 THEN P(P,J)=P(P,J)-15
  346 NEXT J,P
  348 MA=1
  350 AI=0:FOR P=1 TO N:FOR J=1 TO N
  352 IF P(P,J)>MA THEN MA=P(P,J):P=N:J=N:NEXT J,P:GOTO 350
  353 IF P(P,J)<MA GOTO 356
  354 AI=AI+1:IX(AI,1)=P:IX(AI,2)=J
  356 NEXT J,P
  358 P=FN R(AI)
  360 N1=IX(P,1):J=IX(P,2):GOTO 265
  500 WINDOW 17,23,HX,31:HY=1
  505 INPUT "Feldgroesse (2 ... 6):";N
  510 IF N<2 THEN PRINT:PRINT "Bitte Feldgrenzen beachten":PRINT:GOTO 505
  515 N=INT(N):IF N<7 GOTO 530:ELSE N=6:PRINT
  520 PRINT "Feldgroesse wird in Ihrem  Interesse auf 6 reduziert !":PRINT
  525 PAUSE 30
  530 DIM A1(N,N),A2(N+1,N+1),A3(N,N),P(N,N),B(5,2),IX(N*N,2)
  532 DEF FN R(X)=INT(RND(1)*X+1)
  545 IF N<=2 GOTO 560
  550 FOR I=2 TO N-1:A3(1,I)=3:A3(N,I)=3:A3(I,1)=3:A3(I,N)=3:NEXT
  555 FOR I=2 TO N-1:FOR J=2 TO N-1:A3(I,J)=4:NEXT J,I
  560 A3(1,1)=2:A3(1,N)=2:A3(N,1)=2:A3(N,N)=2
  570 INPUT "0, 1 oder 2 Spieler ?";G
  575 IF G<1 THEN PRINT "Computer spielt allein!":PAUSE 20:GOTO 589
  576 IF G>2 THEN PRINT G-2;" muessen zuschaun!":G=2:PAUSE 20:GOTO 589
  580 IF G=2 GOTO 589
  585 INPUT "Spielstaerke 1 oder 2 ?";ST
  589 GOSUB 6000
  590 WINDOW 4+19*HY,20+11*HY,23-21*HY,39-18*HY
  595 IF FN R(6)<4 THEN KA=1:ELSE KA=2
  596 K=0
  600 CLS:PRINT K+1;". Zug":PRINT
  601 IF G=2 THEN GOSUB 1000:GOTO 607
  602 IF G=0 THEN GOSUB 100:GOTO 607
  605 IF ST*KA=2 THEN GOSUB 100:ELSE GOSUB 1000
  607 ZH=3*ZL+2:SH=3*SL+1:HH=A1(ZL,SL)+48
  608 FOR IJ=1 TO 2:PRINT AT(ZH,SH);CHR$(255):PAUSE 4:PRINT AT(ZH,SH);CHR$(HH)
  609 PAUSE 4:NEXT
  610!Setzen Matrix
  615 A1(ZL,SL)=A1(ZL,SL)+1:A2(ZL,SL)=KA:B(1,1)=ZL:B(1,2)=SL:GOSUB 20
  620 GOSUB 30
  625 IF KA=1 THEN KA=2:ELSE KA=1
  630 GOTO 600
 1000!Eingabe Zeile(ZL)/Spalte(SL)
 1001 IF K>0 GOTO 1005
 1002 IF KA=1 THEN PRINT "Weiss beginnt !":ELSE PRINT "Schwarz beginnt !"
 1003 GOTO 1010
 1005 IF KA=1 THEN PRINT "Weiss setzt :":ELSE PRINT "Schwarz setzt :"
 1010 K=K+1:PRINT:INPUT "Zeile :";ZL:INPUT "Spalte:";SL
 1012 B(1,1)=ZL:B(1,2)=SL
 1015 IF SL=0 OR SL>N OR ZL=0 OR ZL>N GOTO 1024
 1022 IF A2(ZL,SL)=KA OR A2(ZL,SL)=0 GOTO 1030
 1024 PRINT "Das geht nicht !":PRINT "Noch mal :":PRINT
 1026 BEEP:BEEP:BEEP:PAUSE 20:K=K-1:GOTO 1001
 1030 I=ZL:J=SL:RETURN
 6000 WINDOW:CLS
 6010 FOR I4=1 TO N:PRINT AT(2,3*I4);I4
 6020 PRINT AT(3*I4+2,0);I4:NEXT
 6021 PRINT AT(3,2);CHR$(168):N3=3*N
 6022 FOR I4=3 TO N3+2:PRINT AT(3,I4);CHR$(160):NEXT
 6023 PRINT AT(3,N3+3);CHR$(169)
 6024 FOR I4=4 TO N3+3:PRINT AT(I4,N3+3);CHR$(161):NEXT
 6025 PRINT AT(N3+4,N3+3);CHR$(170)
 6026 FOR I4=N3+2 TO 3 STEP-1:PRINT AT(N3+4,I4);CHR$(160):NEXT
 6027 PRINT AT(N3+4,2);CHR$(167)
 6028 FOR I4=N3+3 TO 4 STEP-1:PRINT AT(I4,2);CHR$(161):NEXT
 6030 FOR I4=1 TO 3*N:FOR J4=1 TO 3*N
 6040 PRINT AT(I4+3,J4+2);CHR$(197)
 6050 NEXT J4,I4
 6060 RETURN
 6500!TITELBILD
 6505 HX=0
 6510 FOR J=1 TO 3:FOR I=1 TO 5
 6520 TI=5*RND(1)+1:HZ=9+TI
 6530 ON I GOSUB 6600,6610,6620,6630,6640
 6540 PAUSE 5:NEXT I,J
 6550 FOR I=1 TO 5
 6555 HZ=I+9
 6560 ON I GOSUB 6600,6610,6620,6630,6640
 6570 PAUSE 5:NEXT:GOTO 6650
 6600 PRINT AT(HZ,HX);"           ":RETURN
 6610 PRINT AT(HZ,HX);"              ":RETURN
 6620 PRINT AT(HZ,HX);"           ":RETURN 
 6630 PRINT AT(HZ,HX);"               ":RETURN 
 6640 PRINT AT(HZ,HX);"              ":RETURN
 6650 PRINT AT(23,23);"Weiter ?"
 6660 A$=INKEY$
 6670 IF INKEY$="" GOTO 6670
 6680 CLS:WINDOW 2,23,0,31
 6690 PRINT AT(0,10);"EXPANSION"
 6700 PRINT "Spielregel:  EXPANSION wird auf einem quadratischen Spielfeld " 
 6710 PRINT "mit einer Feldanzahl von 2x2 bis6x6 gespielt. Auf jedes Feld  "
 6720 PRINT "kann ein  Spieler eine bestimmteAnzahl von Steinen setzen. Die" 
 6730 PRINT "maximale Anzahl betraegt:         - auf Eckfeldern 1 Stein "
 6740 PRINT "  - auf Randfeldern 2 Steine      - auf Mittelfeldern 3 Steine.
 6750 PRINT "Jeder Spieler darf nur auf Leer-felder oder seine eigenen     "
 6760 PRINT "Steine setzen. Wird die maximaleAnzahl ueberschritten, werden "
 6780 PRINT "die Steine auf die Nachbarfeldergesprengt. Dabei werden alle  "
 6790 PRINT "Nachbarsteine in seine umgewan- delt. Sieger ist der Spieler, "
 6800 PRINT "der alle Steine in seine verwan-delt hat."
 6810 PRINT "Alles klar? Dann >ENTER<"
 6820 A$=INKEY$:IF A$=""GOTO 6820
 6830 CLS:RETURN