Fenêtre 0,0-500,500
Titre de la fenêtre "Labyrinth"
var l%=0
Déclarer z%,k$[],e%,pos%,w%,pxb%,pyb%,px%,py%
Randomiser
Proc Newgame
cls
UseBrush 1,0
Rectangle 100,100-400,350
WhileLoop 20
k$[&loop]="11111111111111111111"
Endwhile
px%=rnd(9)+7
py%=rnd(8)+7
pxb%=px%
pyb%=py%
WhileLoop 2*l%
w%=rnd(5)+4
pos% = rnd(80)
Si pos% <= 20
WhileLoop w%
k$[py%] = Del$(k$[py%],px%,1)
k$[py%] = Ins$("0",k$[py%],px%)
Cas py% > 2 : Décembre py%
Endwhile
ElseIf (pos% <= 40) And (pos% > 20)
WhileLoop w%
k$[py%] = del$(k$[py%],px%,1)
k$[py%] = Ins$("0",k$[py%],px%)
Cas px% <= 18 : inc px%
Endwhile
ElseIf (pos% <= 60) And (pos% > 40)
WhileLoop w%
k$[py%] = del$(k$[py%],px%,1)
k$[py%] = Ins$("0",k$[py%],px%)
Cas py% <= 18 : Inc py%
Endwhile
ElseIf (pos% <= 80) And (pos% > 60)
WhileLoop w%
k$[py%] = del$(k$[py%],px%,1)
k$[py%] = Ins$("0",k$[py%],px%)
Cas px% > 3 : Décembre px%
Endwhile
EndIf
Endwhile
k$[py%] = Del$(k$[py%],px%,1)
k$[py%] = Ins$("0",k$[py%],px%)
k$[pyb%] = del$(k$[pyb%],pxb%,1)
k$[pyb%] = Ins$("x",k$[pyb%],pxb%)
e%=1
z%=0
SetTimer 1000
ENDPROC
Proc Anzeige
Si e%=1
UseBrush 0,45
Rectangle 20,20-470,430
UseBrush 1,Rgb(250,250,250)
Rectangle 100+(px%*10),100+(py%*10)-110+(px%*10),110+(py%*10)
UseBrush 1,Rgb(60,60,60)
Cas @Mid $(k$[py%-1],px%,1) = "1" : Rectangle 100+(px%*10),90+(py%*10)-110+(px%*10),100+(py%*10)
Cas @Mid $(k$[py%+1],px%,1) = "1" : Rectangle 100+(px%*10),110+(py%*10)-110+(px%*10),120+(py%*10)
Cas @Mid $(k$[py%],px%+1,1) = "1" : Rectangle 110+(px%*10),100+(py%*10)-120+(px%*10),110+(py%*10)
Cas @Mid $(k$[py%],px%-1,1) = "1" : Rectangle 90+(px%*10),100+(py%*10)-100+(px%*10),110+(py%*10)
UseBrush 1,Rgb(90,30,30)
Cas @Mid $(k$[py%-1],px%,1) = "0" : Rectangle 100+(px%*10),90+(py%*10)-110+(px%*10),100+(py%*10)
Cas @Mid $(k$[py%+1],px%,1) = "0" : Rectangle 100+(px%*10),110+(py%*10)-110+(px%*10),120+(py%*10)
Cas @Mid $(k$[py%],px%+1,1) = "0" : Rectangle 110+(px%*10),100+(py%*10)-120+(px%*10),110+(py%*10)
Cas @Mid $(k$[py%],px%-1,1) = "0" : Rectangle 90+(px%*10),100+(py%*10)-100+(px%*10),110+(py%*10)
UseBrush 1,Rgb(190,0,00)
Cas @Mid $(k$[py%-1],px%,1) = "x" : Rectangle 100+(px%*10),90+(py%*10)-110+(px%*10),100+(py%*10)
Cas @Mid $(k$[py%+1],px%,1) = "x" : Rectangle 100+(px%*10),110+(py%*10)-110+(px%*10),120+(py%*10)
Cas @Mid $(k$[py%],px%+1,1) = "x" : Rectangle 110+(px%*10),100+(py%*10)-120+(px%*10),110+(py%*10)
Cas @Mid $(k$[py%],px%-1,1) = "x" : Rectangle 90+(px%*10),100+(py%*10)-100+(px%*10),110+(py%*10)
Cas %wmtimer:Inc z%
Couleur du texte @Rgb(15,15,31),@Rgb(255,255,255),
Si @Mid $(k$[py%],px%,1) = "x"
DrawText 30,40,"Du es im but arrivé Zeit: "+Str$(z%)+" Sekunden"
DrawText 150,200,"Neues Spiel avec qui Leertaste."
WaitInput
Inc l%
e%=2
EndIf
ElseIf l%>=20
DrawText 150,220,"Spielende! merci bien pour Spielen."
l%=0
D'autre
DrawText 150,200,"Neues Spiel avec qui Leertaste."
EndIf
DrawText 30,0,"Labyrinth Level:"+Str$(L%)
DrawText 350,30,"Zeit pour Level:"+Str$(z%) : DrawText 30,410,"Symbole sais: Spieler|Grau: Mauer|Braun: Boden|ROT: Ziel"
DrawText 30,390,"(Q)uit | Contrôle: W/S/D/A+Cursor Tasten | Leertaste: Neues Spiel"
ENDPROC
Proc Getposition
Paramètres x%,y%
Retour @Mid $(k$[py%+Y%],px%+% X,1)
ENDPROC
Tandis que 1
Anzeige()
WaitInput
Si l%>0
Si IsKey(87) Or IsKey(38)
Si ((Getposition(0,-1) = "0") Or (Getposition(0,-1) = "x"))
Décembre py%
EndIf
ElseIf IsKey(68) Or Iskey(39)
Si ((Getposition(1,0) = "0") Or (Getposition(1,0) = "x"))
Inc px%
EndIf
ElseIf Iskey(83) Or IsKey(40)
Si ((Getposition(0,1) = "0") Or (Getposition(0,+1) = "x"))
Inc py%
EndIf
ElseIf IsKey(65) Or IsKey(37)
Si ((Getposition(-1,0) = "0") Or (Getposition(-1,0) = "x"))
Décembre px%
EndIf
EndIf
EndIf
Si IsKey(32)
Cas l%=0 : l%=1
Newgame
EndIf
Si IsKey(81)
BREAK
EndIf
Endwhile
KillTimer
Fin