home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
extensions
/
jd
/
progs
/
logikraetsel.amos
/
logikraetsel.amosSourceCode
Wrap
AMOS Source Code
|
1994-02-02
|
20KB
|
569 lines
Set Buffer 50
Screen Open 0,680,257,4,Hires : Limit Mouse 112,42 To 447,298
Flash Off : Palette ,$444,$7BF,$FC4 : Colour 0,Colour(1) : Colour Back Colour(1) : Curs Off
Reserve Zone 250 : Dim A(5,5,5,5),W(4),BEZ$(5),BLOCK1$(5),BLOCK2$(5),BLOCK3$(5),BLOCK4$(5),BLOCK5$(5)
Goto FIRST
'
RESTART:
MX=0
Reset Zone
Cls
For X=1 To 5
BEZ$(X)="" : BLOCK1$(X)="" : BLOCK2$(X)="" : BLOCK3$(X)="" : BLOCK4$(X)="" : BLOCK5$(X)=""
Next
For V=1 To 5
For W=1 To 5
For X=1 To 5
For Y=1 To 5
A(V,W,X,Y)=0
Next
Next
Next
Next
FIRST:
Gosub AUSGABE
Gosub DATIN
'
' Zuweisungen und Rahmenausgabe
'
If MX=0
For X=1 To 5
FELD1$=Left$(BLOCK1$(X),8)
FELD2$=Left$(BLOCK5$(X),8)
FELD3$=Left$(BLOCK4$(X),8)
FELD4$=Left$(BLOCK3$(X),8)
Text 4,((X-1)*8)+54, Extension_22_011A(FELD1$,8,-1)
Text 4,((X-1)*8)+103, Extension_22_011A(FELD2$,8,-1)
Text 4,((X-1)*8)+150, Extension_22_011A(FELD3$,8,-1)
Text 4,((X-1)*8)+199, Extension_22_011A(FELD4$,8,-1)
Next
End If
If MX=1
For X=1 To 5
FELD1$=Left$(BLOCK1$(X),8)
FELD2$=Left$(BLOCK4$(X),8)
FELD3$=Left$(BLOCK3$(X),8)
Text 4,((X-1)*8)+54, Extension_22_011A(FELD1$,8,-1)
Text 4,((X-1)*8)+103, Extension_22_011A(FELD2$,8,-1)
Text 4,((X-1)*8)+150, Extension_22_011A(FELD3$,8,-1)
Next
End If
For X=1 To 5
FELD1$= Extension_22_011A(Left$(BLOCK2$(X),4),4,-1)
FELD2$= Extension_22_011A(Left$(BLOCK3$(X),4),4,-1)
FELD3$= Extension_22_011A(Left$(BLOCK4$(X),4),4,-1)
FELD4$= Extension_22_011A(Left$(BLOCK5$(X),4),4,-1)
For Y=1 To 4
Text((X-1)*16)+88,(Y*8)+5,Mid$(FELD1$,Y,1)
Text((X-1)*16)+176,(Y*8)+5,Mid$(FELD2$,Y,1)
Text((X-1)*16)+265,(Y*8)+5,Mid$(FELD3$,Y,1)
Text((X-1)*16)+352,(Y*8)+5,Mid$(FELD4$,Y,1)
Next
Next
If MX=0 Then W(2)=4 : W(3)=3 : W(4)=2
If MX=1 Then W(2)=3 : W(3)=2
Gosub _SETZONEN
Gosub AUSGABE
HELP=0
Timer=0
'
' Hauptteil
'
MAIN:
MZ=Mouse Zone
If Key State(68) Then Gosub AUSGABE
If Key State(69) Then Goto RESTART
If Key State(95) Then HELP=1 : Goto LOP
If MZ=0 Then Goto MAIN
X=X Screen(X Mouse) : Y=Y Screen(Y Mouse)
TX=X Text(X) : TY=Y Text(Y)
If Extension_22_0080(TX,10,19)=1 and Extension_22_032A(TX)=0 Then TX=TX-1
If Extension_22_0080(TX,21,30)=1 and Extension_22_032A(TX)=1 Then TX=TX-1
If Extension_22_0080(TX,32,41)=1 and Extension_22_032A(TX)=0 Then TX=TX-1
If Extension_22_0080(TX,43,52)=1 and Extension_22_032A(TX)=1 Then TX=TX-1
Locate TX,TY
If Key State(70) Then Gosub FELDNR : Goto DEL
If Mouse Key=1 Then Gosub FELDNR : Goto _SET_PLUS
If Mouse Key=2 Then Gosub FELDNR : Goto _SET_MINUS
Goto MAIN
'
' Berechne Punkt in Dimensionierung
'
FELDNR:
If Extension_22_0080(Y,48,87)=1 Then PV=1
If Extension_22_0080(Y,96,135)=1 Then PV=2
If Extension_22_0080(Y,144,183)=1 Then PV=3
If Extension_22_0080(Y,192,231)=1 Then PV=4
If Extension_22_0080(X,82,160)=1 Then PW=1
If Extension_22_0080(X,170,248)=1 Then PW=2
If Extension_22_0080(X,258,336)=1 Then PW=3
If Extension_22_0080(X,346,424)=1 Then PW=4
If TX=10 or TX=21 or TX=32 or TX=43 Then PY=1
If TX=12 or TX=23 or TX=34 or TX=45 Then PY=2
If TX=14 or TX=25 or TX=36 or TX=47 Then PY=3
If TX=16 or TX=27 or TX=38 or TX=49 Then PY=4
If TX=18 or TX=29 or TX=40 or TX=51 Then PY=5
If TY=6 or TY=12 or TY=18 or TY=24 Then PX=1
If TY=7 or TY=13 or TY=19 or TY=25 Then PX=2
If TY=8 or TY=14 or TY=20 or TY=26 Then PX=3
If TY=9 or TY=15 or TY=21 or TY=27 Then PX=4
If TY=10 or TY=16 or TY=22 or TY=28 Then PX=5
Return
'
' l�sche Punkt
'
DEL:
Locate TX,TY
Print " ."
A(PV,PW,PX,PY)=0
Goto MAIN
'
' setze Flags
'
' positiv
_SET_PLUS:
Locate TX,TY
Print " X"
If A(PV,PW,PX,PY)=0 Then A(PV,PW,PX,PY)=1 : Else Bell
While Mouse Key<>0 : Wend
Goto MAIN
' negativ
_SET_MINUS:
Locate TX,TY
Print " -"
If A(PV,PW,PX,PY)=0 Then A(PV,PW,PX,PY)=-1 : Else Bell
While Mouse Key<>0 : Wend
Goto MAIN
'
' Berechnungen
'
LOP:
Clear Key
Change Mouse 3
K=0
For V=1 To 4-MX
For W=1 To 4-MX
For X=1 To 5
For Y=1 To 5
If A(V,W,X,Y)=1 Then For Z=1 To 5 : A(V,W,X,Z)=-1 : A(V,W,Z,Y)=-1 : Next : A(V,W,X,Y)=1
Next
Next
Next
Next
Gosub AUSGABE
If MX=1 Then Goto SKIPMAIN
For Y=1 To 5
For X=1 To 5
For W=1 To 4
For V=1 To 4
For Z=1 To 5-V
For Q=1 To 5
If A(V,W,X,Y)=0 Then Goto NO2
If V=Z and W(V)=W and X=Q Then Goto NO1
If W(V)>5-V Then Goto NO1
If W(V)=0 Then Goto NO1
If A(V,W(V),X,Q)=0 and A(V,W,X,Y)=-1 and A(Z,W,Q,Y)=1 Then A(V,W(V),X,Q)=-1 : K=1 : Goto NO1
If A(V,W(V),X,Q)=0 and A(V,W,X,Y)=1 and A(Z,W,Q,Y)=-1 Then A(V,W(V),X,Q)=-1 : K=1 : Goto NO1
If A(V,W(V),X,Q)=0 and A(V,W,X,Y)=1 and A(Z,W,Q,Y)=1 Then A(V,W(V),X,Q)=1 : K=1
NO1:
If W(Z)>5-V Then Goto NO2
If W(Z)=0 Then Goto NO2
If W=Z Then Goto NO2
If A(W(Z),W,Q,Y)=0 and A(V,W,X,Y)=-1 and A(V,Z,X,Q)=1 Then A(W(Z),W,Q,Y)=-1 : K=1
If A(W(Z),W,Q,Y)=0 and A(V,W,X,Y)=1 and A(V,Z,X,Q)=-1 Then A(W(Z),W,Q,Y)=-1 : K=1
If A(W(Z),W,Q,Y)=0 and A(V,W,X,Y)=1 and A(V,Z,X,Q)=1 Then A(W(Z),W,Q,Y)=1 : K=1
Goto NONO2
NO2:
If V=Z and W(V)=W and X=Q Then Goto NO12
If W(V)>5-V Then Goto NO12
If W(V)=0 Then Goto NO12
If A(V,W(V),X,Q)=-1 and A(V,W,X,Y)=0 and A(Z,W,Q,Y)=1 Then A(V,W,X,Y)=-1 : K=1 : Goto NO12
If A(V,W(V),X,Q)=1 and A(V,W,X,Y)=0 and A(Z,W,Q,Y)=-1 Then A(V,W,X,Y)=-1 : K=1 : Goto NO12
If A(V,W(V),X,Q)=1 and A(V,W,X,Y)=0 and A(Z,W,Q,Y)=1 Then A(V,W,X,Y)=1 : K=1
NO12:
If W(Z)>5-V Then Goto NONO2
If W(Z)=0 Then Goto NONO2
If W=Z Then Goto NONO2
If A(W(Z),W,Q,Y)=-1 and A(V,W,X,Y)=0 and A(V,Z,X,Q)=1 Then A(V,W,X,Y)=-1 : K=1 : Goto NONO2
If A(W(Z),W,Q,Y)=1 and A(V,W,X,Y)=0 and A(V,Z,X,Q)=-1 Then A(V,W,X,Y)=-1 : K=1 : Goto NONO2
If A(W(Z),W,Q,Y)=1 and A(V,W,X,Y)=0 and A(V,Z,X,Q)=1 Then A(V,W,X,Y)=1 : K=1 : Goto NONO2
NONO2:
Next
Next
Next
Next
For W=2 To 4
For Z=1 To 5
If A(1,1,X,Z)<>0 Then Goto NO8
If A(1,W,X,Y)=-1 and A(W(W),1,Y,Z)=1 Then A(1,1,X,Z)=-1 : K=1
If A(1,W,X,Y)=1 and A(W(W),1,Y,Z)=-1 Then A(1,1,X,Z)=-1 : K=1
If A(1,W,X,Y)=1 and A(W(W),1,Y,Z)=1 Then A(1,1,X,Z)=1 : K=1
NO8:
Next
Next
For V=1 To 4
For W=1 To 4
For Z=1 To 5-V
For Q=1 To 5
If A(V,W,X,Y)=0 Then Goto NO4
If A(V,Z,X,Y)=0 Then Goto NO4
If W=Z and Y=Q Then Goto NO4
For R=1 To 5
If A(Q,Z,R,Y)<>0 Then Goto NO10
If A(V,W,X,Y)=1 and A(V,Z,X,Y)=1 and A(Q,W,R,Y)=-1 Then A(Q,Z,R,Y)=-1 : K=1 : Goto NO10
If A(V,W,X,Y)=1 and A(V,Z,X,Y)=1 and A(Q,W,R,Y)=1 Then A(Q,Z,R,Y)=1 : K=1
NO10:
Next
NO9:
If A(V,Z,X,Q)=0 Then Goto NO4
If W(Z)>5-V Then Goto NO4
If W(Z)=0 Then Goto NO4
For R=1 To 4
For S=1 To 5
If A(V,W(R),X,S)<>0 Then Goto NO4
If R=V Then Goto NO5
If W(R)=0 or W(R)>4 Then Goto NO5
If A(R,Z,S,Q)=1 and A(V,Z,X,Q)=-1 Then A(V,W(R),X,S)=-1 : K=1 : Goto NO5
If A(R,Z,S,Q)=1 and A(V,Z,X,Q)=1 Then A(V,W(R),X,S)=1 : K=1
NO5:
Next
Next
NO4:
Next
Next
For Z=1 To 5-W
For Q=1 To 5
If A(V,W,X,Y)=0 Then Goto NO3
If A(V,W(Z),X,Q)<>0 Then Goto NO3
If V=Z Then Goto NO3
If W(Z)>5-V Then Goto NO3
If W(Z)=0 Then Goto NO3
If A(V,W,X,Y)=1 and A(Z,W,Q,Y)=-1 Then A(V,W(Z),X,Q)=-1 : K=1 : Goto NO3
If A(V,W,X,Y)=1 and A(Z,W,Q,Y)=1 Then A(V,W(Z),X,Q)=1 : K=1
NO3:
Next
Next
Next
Next
For W=2 To 5-W
If A(1,W,X,Y)=0 Then Goto NO6
If A(1,1,X,Y)<>0 Then Goto NO6
For R=1 To 4
For S=1 To 5
If R=W Then Goto NO7
If A(R,1,X,Y)=1 and A(R,W,X,Y)=-1 Then A(1,1,X,Y)=-1 : K=1 : Goto NO7
If A(R,1,X,Y)=1 and A(R,W,X,Y)=1 Then A(1,1,X,Y)=1 : K=1
NO7:
Next
Next
NO6:
Next
If A(2,2,X,Y)<1 or A(2,3,X,Y)<1 Then Goto NO11
For Q=1 To 5
If A(1,1,X,Q)<>0 and A(W(W(2)),1,X,Y)<>0 Then Goto NON11
If A(1,W(2),Q,X)=-1 and A(1,1,X,Q)=0 Then A(1,1,X,Q)=-1 : K=1
If A(1,W(2),Q,X)=-1 and A(W(W(2)),1,X,Y)=0 Then A(W(W(2)),1,X,Y)=-1 : K=1
NON11:
Next
NO11:
Next
Next
If K=1 Then Gosub AUSGABE
For X=1 To 5
For Y=1 To 5
For V=1 To 4
For W=1 To 4
For Z=1 To 4
For Q=1 To 5
If W(Z)=0 Then Goto NON0
If A(V,W(Z),X,Q)=0 and A(V,W,X,Y)=-1 and A(Z,W,Q,Y)=1 Then A(V,W(Z),X,Q)=-1 : K=2
If A(V,W(Z),X,Q)=0 and A(V,W,X,Y)=1 and A(Z,W,Q,Y)=-1 Then A(V,W(Z),X,Q)=-1 : K=2
If A(V,W(Z),X,Q)=0 and A(V,W,X,Y)=1 and A(Z,W,Q,Y)=1 Then A(V,W(Z),X,Q)=1 : K=2
NON0:
Next
Next
Next
Next
Next
Next
If K=2 Then Gosub AUSGABE
Goto SKIPMAIN2
SKIPMAIN:
For V=2 To 3
For X=1 To 5
For Y=1 To 5
For Q=1 To 5
If A(1,1,X,Y)=0 Then Goto NO_11
If A(1,1,X,Y)=1 and A(1,V,X,Q)=-1 and A(W(V),1,Q,Y)=0 Then A(W(V),1,Q,Y)=-1 : K=1
If A(1,1,X,Y)=1 and A(V,1,Q,Y)=-1 and A(1,W(V),X,Q)=0 Then A(1,W(V),X,Q)=-1 : K=1
If A(1,1,X,Y)=-1 and A(1,V,X,Q)=1 and A(W(V),1,Q,Y)=0 Then A(W(V),1,Q,Y)=-1 : K=1
If A(1,1,X,Y)=-1 and A(V,1,Q,Y)=1 and A(1,W(V),X,Q)=0 Then A(1,W(V),X,Q)=-1 : K=1
If A(1,1,X,Y)=1 and A(1,V,X,Q)=1 and A(W(V),1,Q,Y)=0 Then A(W(V),1,Q,Y)=1 : K=1
If A(1,1,X,Y)=1 and A(V,1,Q,Y)=1 and A(1,W(V),X,Q)=0 Then A(1,W(V),X,Q)=1 : K=1
NO_11:
If A(W(V),Q,Q,Y)=0 Then Goto NO_WV1
If A(W(V),1,Q,Y)=1 and A(1,V,X,Q)=-1 and A(1,1,X,Y)=0 Then A(1,1,X,Y)=-1 : K=1
If A(W(V),1,Q,Y)=-1 and A(1,V,X,Q)=1 and A(1,1,X,Y)=0 Then A(1,1,X,Y)=-1 : K=1
If A(W(V),1,Q,Y)=1 and A(1,V,X,Q)=1 and A(1,1,X,Y)=0 Then A(1,1,X,Y)=1 : K=1
If A(W(V),1,Q,Y)=1 and A(1,1,X,Y)=-1 and A(1,V,X,Q)=0 Then A(1,V,X,Q)=-1 : K=1
If A(W(V),1,Q,Y)=-1 and A(1,1,X,Y)=1 and A(1,V,X,Q)=0 Then A(1,V,X,Q)=-1 : K=1
If A(W(V),1,Q,Y)=1 and A(1,1,X,Y)=1 and A(1,V,X,Q)=0 Then A(1,V,X,Q)=1 : K=1
NO_WV1:
If A(1,W(V),X,Q)=0 Then Goto NO_1WV
If A(1,W(V),X,Q)=1 and A(V,1,Q,Y)=-1 and A(1,1,X,Y)=0 Then A(1,1,X,Y)=-1 : K=1
If A(1,W(V),X,Q)=-1 and A(V,1,Q,Y)=1 and A(1,1,X,Y)=0 Then A(1,1,X,Y)=-1 : K=1
If A(1,W(V),X,Q)=1 and A(V,1,Q,Y)=1 and A(1,1,X,Y)=0 Then A(1,1,X,Y)=1 : K=1
If A(1,W(V),X,Q)=1 and A(1,1,X,Y)=-1 and A(V,1,Q,Y)=0 Then A(V,1,Q,Y)=-1 : K=1
If A(1,W(V),X,Q)=-1 and A(1,1,X,Y)=1 and A(V,1,Q,Y)=0 Then A(V,1,Q,Y)=-1 : K=1
If A(1,W(V),X,Q)=1 and A(1,1,X,Y)=1 and A(V,1,Q,Y)=0 Then A(V,1,Q,Y)=1 : K=1
NO_1WV:
Next
Next
Next
Next
If K=1 Then Gosub AUSGABE
For X=1 To 5
For Y=1 To 5
For Q=1 To 5
If A(1,2,X,Y)=0 Then Goto NO_12
If A(1,2,X,Y)=1 and A(1,3,X,Q)=1 and A(2,2,Q,Y)=0 Then A(2,2,Q,Y)=1 : K=2
If A(1,2,X,Y)=1 and A(2,2,Q,Y)=1 and A(1,3,X,Q)=0 Then A(1,3,X,Q)=1 : K=2
If A(1,2,X,Y)=-1 and A(1,3,X,Q)=1 and A(2,2,Q,Y)=0 Then A(2,2,Q,Y)=-1 : K=2
If A(1,2,X,Y)=-1 and A(2,2,Q,Y)=1 and A(1,3,X,Q)=0 Then A(1,3,X,Q)=-1 : K=2
If A(1,2,X,Y)=1 and A(1,3,X,Q)=-1 and A(2,2,Q,Y)=0 Then A(2,2,Q,Y)=-1 : K=2
If A(1,2,X,Y)=1 and A(2,2,Q,Y)=-1 and A(1,3,X,Q)=0 Then A(1,3,X,Q)=-1 : K=2
NO_12:
If A(1,3,X,Q)=0 Then Goto NO_13
If A(1,3,X,Q)=1 and A(2,2,Q,Y)=1 and A(1,2,X,Y)=0 Then A(1,2,X,Y)=1 : K=2
If A(1,3,X,Q)=-1 and A(2,2,Q,Y)=1 and A(1,2,X,Y)=0 Then A(1,2,X,Y)=-1 : K=2
If A(1,3,X,Q)=1 and A(2,2,Q,Y)=-1 and A(1,2,X,Y)=0 Then A(1,2,X,Y)=-1 : K=2
NO_13:
If A(2,1,X,Y)=0 Then Goto NO_21
If A(2,1,X,Y)=1 and A(3,1,Q,Y)=1 and A(2,2,X,Q)=0 Then A(2,2,X,Q)=1 : K=2
If A(2,1,X,Y)=1 and A(2,2,X,Q)=1 and A(3,1,Q,Y)=0 Then A(3,1,Q,Y)=1 : K=2
If A(2,1,X,Y)=-1 and A(3,1,Q,Y)=1 and A(2,2,X,Q)=0 Then A(2,2,X,Q)=-1 : K=2
If A(2,1,X,Y)=-1 and A(2,2,X,Q)=1 and A(3,1,Q,Y)=0 Then A(3,1,Q,Y)=-1 : K=2
If A(2,1,X,Y)=1 and A(3,1,Q,Y)=-1 and A(2,2,X,Q)=0 Then A(2,2,X,Q)=-1 : K=2
If A(2,1,X,Y)=1 and A(2,2,X,Q)=-1 and A(3,1,Q,Y)=0 Then A(3,1,Q,Y)=-1 : K=2
NO_21:
If A(3,1,Q,Y)=0 Then Goto NO_31
If A(3,1,Q,Y)=1 and A(2,2,X,Q)=1 and A(2,1,X,Y)=0 Then A(2,1,X,Y)=1 : K=2
If A(3,1,Q,Y)=-1 and A(2,2,X,Q)=1 and A(2,1,X,Y)=0 Then A(2,1,X,Y)=-1 : K=2
If A(3,1,Q,Y)=1 and A(2,2,X,Q)=-1 and A(2,1,X,Y)=0 Then A(2,1,X,Y)=-1 : K=2
NO_31:
Next
Next
Next
If K=2 Then Gosub AUSGABE
SKIPMAIN2:
For V=1 To 4-MX
For W=1 To 4-MX
For X=1 To 5
Q=0
For Y=1 To 5
If A(V,W,X,Y)=-1 Then Q=Q+1
Next
If Q<>4 Then Goto SKIP1
For Y=1 To 5
If A(V,W,X,Y)=0 Then A(V,W,X,Y)=1 : K=3
Next
SKIP1:
Next
For Y=1 To 5
Q=0
For X=1 To 5
If A(V,W,X,Y)=-1 Then Q=Q+1
Next
If Q<>4 Then Goto SKIP2
For X=1 To 5
If A(V,W,X,Y)=0 Then A(V,W,X,Y)=1 : K=3
Next
SKIP2:
Next
Next
Next
If K=3 Then Gosub AUSGABE
If K>0 Then Goto LOP
Change Mouse 1
Goto MAIN
'
' Ausgabe der Berechnungen und Statistik
'
AUSGABE:
Locate 9,5 : For Q1=1 To 11*(4-MX)+1 : Print "-"; : Next : Print
For Z1=1 To 4-MX
Locate 9,Y Curs : Print "|";
For X1=1 To 5
For W1=1 To 5-Z1-MX
For Y1=1 To 5
If A(Z1,W1,X1,Y1)=0 Then Print " .";
If A(Z1,W1,X1,Y1)=1 Then Print " X";
If A(Z1,W1,X1,Y1)=-1 Then Print " -";
Next
Print "|";
Next
Print : Locate 9,Y Curs : Print "|";
Next
For Q1=1 To 11*(5-Z1-MX) : Print "-"; : Next : Print
Next
Locate 9,Y Curs-1
For X1=1 To 4-MX
Print "-" : Locate 9,Y Curs-7
Next
' Statistik
Locate 10*MX+32,21
For X1=1 To 10*(5-MX)+1
Print "-";
Next
Locate 10*MX+32,22 : Print "|";
For X1=1 To 5-MX
Print " |";
Next
For X1=1 To 5-MX
Locate 10*MX+X1*10+23,22
BEZ$(X1)=Left$(BEZ$(X1),8)
Print Extension_22_011A(BEZ$(X1),8,1)
Next
Locate 10*MX+32,23 : Print "|";
For X1=1 To 10*(5-MX)-1
Print "-";
Next
Print "|"
Locate 10*MX+32,29
For X1=1 To 10*(5-MX)+1
Print "-";
Next
For X1=1 To 5
Locate 10*MX+32,23+X1 : Print "|";BLOCK1$(X1)
Next
E=5
For X1=1 To 5
For Y1=1 To 5
AUSGABE$="" : If A(1,1,X1,Y1)=1 Then AUSGABE$=BLOCK2$(Y1) : E=E+1
AUSGABE$=Left$(AUSGABE$,8) : AUSGABE$= Extension_22_011A(AUSGABE$,8,1)
Locate 10*MX+42,23+X1 : Print "|";AUSGABE$
AUSGABE$="" : If A(1,2,X1,Y1)=1 Then AUSGABE$=BLOCK3$(Y1) : E=E+1
AUSGABE$=Left$(AUSGABE$,8) : AUSGABE$= Extension_22_011A(AUSGABE$,8,1)
Locate 10*MX+52,23+X1 : Print "|";AUSGABE$
AUSGABE$="" : If A(1,3,X1,Y1)=1 Then AUSGABE$=BLOCK4$(Y1) : E=E+1
AUSGABE$=Left$(AUSGABE$,8) : AUSGABE$= Extension_22_011A(AUSGABE$,8,1)
Locate 10*MX+62,23+X1 : Print "|";AUSGABE$
If MX=1 Then Goto NOOUT
AUSGABE$="" : If A(1,4,X1,Y1)=1 Then AUSGABE$=BLOCK5$(Y1) : E=E+1
AUSGABE$=Left$(AUSGABE$,8) : AUSGABE$= Extension_22_011A(AUSGABE$,8,1)
Locate 10*MX+72,23+X1 : Print "|";AUSGABE$
NOOUT:
Locate 82,23+X1 : Print "|"
Next
Next
If E=5*(5-MX) Then Goto OK
Return
'
' Setze Mauszonen
'
_SETZONEN:
KX0=81 : KY1=48
NR=0
For V=0 To 3-MX
Q=3-V-MX
For W=0 To 4
KX1=KX0 : KY2=KY1+7 : KX2=KX1+15
For Y=0 To Q
For X=1 To 5
NR=NR+1
Set Zone NR,KX1,KY1 To KX2,KY2
KX1=KX2+1 : KX2=KX1+15
Next
KX1=KX2-7 : KX2=KX1+15
Next
KX1=KX0 : KY1=KY2+1
Next
KY1=KY2+9
Next
Return
'
' R�tsel gel�st
'
OK:
Change Mouse 1 : Bell
S=Timer/50
If S>60 Then M=S/60 : S=S mod 60
Locate 35,19 : Pen 3 : Print "Du hast";M;" Minuten und";S;" Sekunden gebraucht!"
If HELP=1 Then Locate 35,20 : Print "Das n�chste Mal versuchst Du es aber alleine!"
Pen 2 : Clear Key : Extension_22_0266 : If Key State(69) Then End
Goto RESTART
'
' Dateneingabe
'
DATIN:
Curs On
For X=1 To 5
GIN1:
Locate X*10+23,22 : Inverse On : Print " " : Locate X*10+23,22
BEZ$(X)= Extension_22_024E("",9) : Inverse Off : Locate X*10+23,22 : Print Extension_22_011A(BEZ$(X),9,1)
If X=1 Then If BEZ$(1)="" Then End
If X=1 Then If BEZ$(1)="4" Then AUTO=4 : X=5 : Goto AUT
If X=1 Then If BEZ$(1)="5" Then AUTO=5 : X=5 : Goto AUT
If X=5 Then If BEZ$(5)="" Then Locate X*10+23,22 : Print " " : MX=1
If X<5 Then If BEZ$(X)="" Then Goto GIN1
AUT:
Next
If AUTO>0 Then Goto AUTOM
For X=1 To 5
GIN2:
Locate 33,23+X : Inverse On : Print " " : Locate 33,23+X
BLOCK1$(X)= Extension_22_024E("",9) : Inverse Off : Locate 33,23+X : Print Extension_22_011A(BLOCK1$(X),9,1)
If BLOCK1$(X)="" Then Goto GIN2
Next
For X=1 To 5
GIN3:
Locate 43,23+X : Inverse On : Print " " : Locate 43,23+X
BLOCK2$(X)= Extension_22_024E("",9) : Inverse Off : Locate 43,23+X : Print Extension_22_011A(BLOCK2$(X),9,1)
If BLOCK2$(X)="" Then Goto GIN3
Next
For X=1 To 5
GIN4:
Locate 53,23+X : Inverse On : Print " " : Locate 53,23+X
BLOCK3$(X)= Extension_22_024E("",9) : Inverse Off : Locate 53,23+X : Print Extension_22_011A(BLOCK3$(X),9,1)
If BLOCK3$(X)="" Then Goto GIN4
Next
For X=1 To 5
GIN5:
Locate 63,23+X : Inverse On : Print " " : Locate 63,23+X
BLOCK4$(X)= Extension_22_024E("",9) : Inverse Off : Locate 63,23+X : Print Extension_22_011A(BLOCK4$(X),9,1)
If BLOCK4$(X)="" Then Goto GIN5
Next
If BEZ$(5)="" Then Goto NOIN
For X=1 To 5
GIN6:
Locate 73,23+X : Inverse On : Print " " : Locate 73,23+X
BLOCK5$(X)= Extension_22_024E("",9) : Inverse Off : Locate 73,23+X : Print Extension_22_011A(BLOCK5$(X),9,1)
If BLOCK5$(X)="" Then Goto GIN6
Next
NOIN:
Curs Off : Cls
Return
AUTOM:
If AUTO=4
For X=1 To 5
BEZ$(X)="Feld"+Str$(X)
BLOCK1$(X)="a"+(Str$(X)-" ") : Locate 33,23+X : Print BLOCK1$(X)
BLOCK2$(X)="b"+(Str$(X)-" ") : Locate 33,23+X : Print BLOCK2$(X)
BLOCK3$(X)="c"+(Str$(X)-" ") : Locate 33,23+X : Print BLOCK3$(X)
BLOCK4$(X)="d"+(Str$(X)-" ") : Locate 33,23+X : Print BLOCK4$(X)
Next
MX=1
End If
If AUTO=5
For X=1 To 5
BEZ$(X)="Feld"+Str$(X)
BLOCK1$(X)="a"+(Str$(X)-" ") : Locate 33,23+X : Print BLOCK1$(X)
BLOCK2$(X)="b"+(Str$(X)-" ") : Locate 33,23+X : Print BLOCK2$(X)
BLOCK3$(X)="c"+(Str$(X)-" ") : Locate 33,23+X : Print BLOCK3$(X)
BLOCK4$(X)="d"+(Str$(X)-" ") : Locate 33,23+X : Print BLOCK4$(X)
BLOCK5$(X)="e"+(Str$(X)-" ") : Locate 33,23+X : Print BLOCK5$(X)
Next
End If
AUTO=0
Curs Off : Cls
Return