Verschiebe solange,
bis die Grafikzeichen
zeilenweise geordnet
sind !
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
10 REM SCHIEBEPUZZLE
20 WINDOW:CLS
30 REM ZUFAELLIGE ANF.ZAHL
40 I=RND(1)*(-1000):A=RND(I)
50 DIM GF(6,6):DEF FN ZU(I)=INT(RND(I)*5+1):LET AN=0
60 REM ZUFAELLIGE GRAFIKVERTEILUNG
70 FOR I=1 TO 5
80 FOR J=1 TO 5
90 LET GR=J+192:GOSUB 570
100 NEXT J,I
110 REM ZEILEN UND SPALTENNUMMERN
120 LET J=1
130 FOR I=3 TO 19 STEP 4
140 PRINT AT(I,9);J:LET J=J+1
150 NEXT I
160 FOR I=12 TO 28 STEP 4
170 PRINT AT(23,I);J:LET J=J+1
180 NEXT I
190 WINDOW 0,9,0,9
200 PRINT "Verschiebe";:PRINT "solange,":PRINT "bis die":PRINT "Grafikz."
210 PRINT "zeilen-":PRINT "weise ge-":PRINT "ordnet":PRINT "sind !"
220 WINDOW 10,31,0,9
230 REM GRAFIKFELD
240 FOR Z=1 TO 5
250 LET P=Z*4-2
260 FOR I=0 TO 3
270 LET J=1
280 FOR S=12 TO 28 STEP 4
290 LET MU=GF(Z,J)
300 PRINT AT(P+I,S);CHR$(MU)+CHR$(MU)+CHR$(MU)+CHR$(MU)
310 LET J=J+1
320 NEXT S,I,Z
330 REM ENDEABFRAGE
340 FOR I=1 TO 5
350 FOR J=2 TO 5
360 IF GF(I,1)<>GF(I,J) THEN LET AN=AN+1:GOTO 430
370 NEXT J,I
380 WINDOW 0,31,0,9:CLS
390 PRINT "geschafft":PRINT "in";AN:PRINT "Schritten!"
400 PRINT:PRINT "noch":PRINT "einmal":INPUT "(J/N)?";A$
410 WINDOW:CLS
420 IF A$="J" THEN CLEAR:GOTO 50:ELSE END
430 PRINT "Zeilen-":PRINT "oder":PRINT "Spalten-":PRINT "Nummer"
440 INPUT NR
450 IF NR<1 OR NR>10 THEN CLS:GOTO 430
460 PRINT:PRINT "Verschie-"
470 PRINT "bung mit":PRINT "Kursor-":PRINT "Tasten"
480 IF NR>5 THEN LET NR=NR-5:GOTO 530
490 LET KU$=INKEY$
500 IF KU$=CHR$(9) THEN CLS:GOSUB 620:GOTO 240
510 IF KU$=CHR$(8) THEN CLS:GOSUB 680:GOTO 240
520 GOTO 490
530 LET KU$=INKEY$
540 IF KU$=CHR$(10) THEN CLS:GOSUB 740:GOTO 240
550 IF KU$=CHR$(11) THEN CLS:GOSUB 800:GOTO 240
560 GOTO 530
570 REM UP ZUFALLSZAHLEN
580 LET Z=FN ZU(1):LET S=FN ZU(1)
590 IF GF(Z,S)<>0 THEN GOTO 580
600 LET GF(Z,S)=GR
610 RETURN
620 REM UP NACH RECHTS
630 FOR I=6 TO 2 STEP -1
640 LET GF(NR,I)=GF(NR,I-1)
650 NEXT I
660 LET GF(NR,1)=GF(NR,6)
670 RETURN
680 REM UP NACH LINKS
690 LET GF(NR,6)=GF(NR,1)
700 FOR I=1 TO 5
710 LET GF(NR,I)=GF(NR,I+1)
720 NEXT I
730 RETURN
740 REM UP NACH UNTEN
750 FOR I=6 TO 2 STEP -1
760 LET GF(I,NR)=GF(I-1,NR)
770 NEXT I
780 LET GF(1,NR)=GF(6,NR)
790 RETURN
800 REM UP NACH OBEN
810 LET GF(6,NR)=GF(1,NR)
820 FOR I=1 TO 5
830 LET GF(I,NR)=GF(I+1,NR)
840 NEXT I
850 RETURN