Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4
2bc0 38ef 0302 B ... INVERSO
Durch Angabe von Zeile und Spalte wird jeweils ein Feld der 4x4-Matrix ausgewählt. Danach werden die Inhalte der Nachbarfelder in Nord-, Süd-, Ost-,u. West-Richtung invertiert --> ZIEL: mit möglichst wenigen Versuchen die Endstellung zu erreichen.
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

   10 WINDOW:CLS
   20 PRINT:PRINT:PRINT:PRINT "";
   30 PRINT ""
   40 PRINT "        Spielprogramm"
   50 PRINT ""
   60 PRINT "           INVERSO"
   70 PRINT ""
   80 PRINT AT(4,31);"":PRINT AT(5,31);"":PRINT AT(6,31);""
   90 PRINT AT(7,31);"":PRINT AT(8,31);""
  100 PRINT "";
  110 PRINT "Autor:    Wagenknecht, Christian"
  120 PRINT:PRINT SPC(12);"- 1985 -":PRINT AT(14,0);" "
  130 PRINT AT(21,22);"f.d.R.d.A."
  140 PRINT AT(22,17);"Z1013/ Helm,H-J"
  150 PRINT AT(24,13);"Ebw.,den 1.Mai 1988":PRINT AT(23,0);" "
  160 PRINT AT(26,8);"bearbeitet: 16.5.88 *UG*":PRINT AT(30,24);">ENTER<"
  170 IF INKEY$<>CHR$(13)THEN 170
  180 WINDOW:CLS
  190 REM INVERSO-SOLOSPIEL
  200 REM SPIELBESCHREIBUNG LOG IN 4(1984)2
  210 REM HAUPTPROGRAMM
  220 DIM F(16): DIM S(16): DIM Z(16):DIM F$(16,4): FR=1:V=0
  230 GOSUB 490
  240 GOSUB 920:GOSUB 1050
  250 FE=1:GOSUB 620
  260 FOR I=1 TO 16
  270 F(I)=Z(I)
  280 NEXT I
  290 GOSUB 1050
  300 FE=2:GOSUB 810:FE=1
  310 FOR I=1 TO 16
  320 F(I)=S(I)
  330 NEXT I
  340 WINDOW 28,30,0,31:CLS
  350 FOR I=1 TO 16
  360 IF NOT(F(I)=Z(I))THEN 390
  370 NEXT I
  380 GOTO 420
  390 IF NOT(0<FR)THEN 430
  400 GOSUB 1190
  410 GOTO 350
  420 PRINT "DAS ZIEL IST ERREICHT!";:PAUSE 30:GOTO 480
  430 CLS:PRINT "NOCH EINMAL-MIT START? (J/N)"
  435 CALL*F6C5
  440 T$=INKEY$:IF T$=""THEN 440
  450 IF T$="N"THEN 480
  460 IF T$="J"THEN 470 ELSE 440
  470 FR=1:V=0:FOR I=1 TO 16:F(I)=S(I):NEXT I:GOSUB 1050:GOSUB 810:GOTO 340
  480 WINDOW:CLS:PRINT AT(0,0);" ":PRINT AT(15,5);"ENDE VON INVERSO":PAUSE 50:CLS:END
  490 REM UP SPIELREGEL
  500 WINDOW
  510 PRINT:PRINT:PRINT:PRINT:PRINT "Durch Angabe von Zeile u. Spalte"
  520 PRINT "wird jeweils ein Feld der":PRINT
  530 PRINT "4x4-Matrix ausgewaehlt.":PRINT:PRINT:PRINT:PRINT
  540 PRINT "Danach werden die Inhalte der":PRINT
  550 PRINT "Nachbarfelder in Nord-, Sued-,":PRINT
  560 PRINT "Ost-,u. West-Richtung invertiert"
  570 PRINT:PRINT:PRINT:PRINT "-->  ZIEL:":PRINT
  580 PRINT "mit moeglichst wenigen Versuchen" 
  590 PRINT "die Endstellung zu erreichen."
  600 PRINT AT(31,24);">ENTER<":PRINT AT(27,0);" "
  610 IF INKEY$<>CHR$(13)THEN 610 ELSE RETURN
  620 REM UP SPIELFELD (FE...FELD;FE=1...START;FE=2...ZIEL)
  630 CLS:PRINT
  640 PRINT "          ";
  650 PRINT "                   ";
  660 PRINT "            ";
  670 PRINT "                ";
  680 PRINT "           "
  690 PRINT "":PRINT:PRINT:PRINT
  700 D1$="     "
  710 D2$="                     "
  720 D3$="     "
  730 D4$="     "
  740 PRINT D1$
  750 FOR D=1 TO 3
  760 PRINT D2$:PRINT D2$
  770 PRINT D3$
  780 NEXT D
  790 PRINT D2$:PRINT D2$
  800 PRINT D4$:PRINT:PRINT AT(25,0);"S T A R T":PRINT AT(25,24);"Z I E L"
  810 REM UP START/ZIEL
  820 IF FE=1 THEN WINDOW 13,25,1,14
  830 IF FE=2 THEN WINDOW 13,25,19,31
  840 FOR LA=1 TO 13 STEP 4
  850 FOR A2=LA TO LA+3
  860 PRINT F$(A2,1);F$(A2,2);CHR$(9);
  870 NEXT A2
  880 PRINT
  890 FOR A2=LA TO LA+3
  900 PRINT F$(A2,3);F$(A2,4);CHR$(9);
  910 NEXT A2:PRINT:PRINT:NEXT LA:RETURN
  920 REM UP ANFANGSSTELLUNG
  930 FOR I=1 TO 16
  940 F(I)=INT(RND(I)*2)
  950 NEXT I
  960 REM UP STARTVEKTOR
  970 FOR I=1 TO 16
  980 S(I)=F(I)
  990 NEXT I
 1000 REM UP ZIELSTELLUNG
 1010 FOR I=1 TO 16
 1020 Z(I)=INT(RND(I)*2)
 1030 NEXT I
 1040 RETURN
 1050 REM UP BERECHNUNG:F$(Z,S)
 1060 FOR I=1 TO 16
 1070 IF NOT(F(I)=1)THEN 1130
 1080 F$(I,1)=""
 1090 F$(I,2)=""
 1100 F$(I,3)=""
 1110 F$(I,4)=""
 1120 GOTO 1170
 1130 F$(I,1)=" "
 1140 F$(I,2)=" "
 1150 F$(I,3)=" "
 1160 F$(I,4)=" "
 1170 NEXT I
 1180 RETURN
 1190 REM UP AUSWAHL ELEMENT;BERECHNUNG F(I)
 1200 V=V+1:PRINT AT(15,14);V
 1205 CALL*F6B8
 1210 WINDOW 28,31,0,31:CLS:PRINT "WAHL DES FELDES      ENDE MIT:"
 1211 PRINT:PRINT AT(29,20);"":PRINT AT(30,20);" <0>"
 1212 INPUT "ZEILE  ?:";Z:PRINT AT(31,20);" <0>"
 1214 INPUT "SPALTE ?:";S
 1220 IF(Z=0 AND S=0)THEN FR=-4:GOTO 1300
 1230 IF(Z<1 OR Z>4 OR S<1 OR S>4)THEN 1210
 1240 FR=(Z-1)*4+S
 1250 IF FR+4<17 THEN NR=FR+4:GOSUB 1310
 1260 IF(FR-4*INT(FR/4)<>0)THEN NR=FR+1:GOSUB 1310
 1270 IF(FR-1-4*INT((FR-1)/4)<>0)THEN NR=FR-1:GOSUB 1310
 1280 IF FR-4>0 THEN NR=FR-4:GOSUB 1310
 1290 GOSUB 1050:GOSUB 810
 1300 RETURN
 1310 REM UP INVERSE ZU F(I) (NR...NUMMER)
 1320 IF F(NR)=1 THEN F(NR)=0:ELSE F(NR)=1
 1330 RETURN