Graphics 640,480,0 Global blockfield:Int[12,8] Global usedfield:Int[12,8] ResetUsedField() Global earth:TImage=LoadImage("gfx/earth.bmp") Global water:TImage=LoadImage("gfx/water.bmp") Global fire:TImage=LoadImage("gfx/fire.bmp") Global wind:TImage=LoadImage("gfx/wind.bmp") '0 = Null '1 = Earth '2 = Water '3 = Fire '4 = Wind '5 = Heaven For i = 0 To 11 For j = 0 To 7 blockfield[i,j]=Rand(1,4) Next Next While Not KeyDown(KEY_ESCAPE) Cls For i = 0 To 11 For j = 0 To 7 Select blockfield[i,j] Case 1 DrawImage(earth,i*48,j*48) Case 2 DrawImage(water,i*48,j*48) Case 3 DrawImage(fire,i*48,j*48) Case 4 DrawImage(wind,i*48,j*48) Default End Select Next Next If MouseDown(1) Then Local BlockX:Int=Floor(MouseX()/48) Local BlockY:Int=Floor(MouseY()/48) DrawText("BlockX: "+BlockX,16,400) DrawText("BlockY: "+BlockY,16,400+16) ResetUsedField() KillBlock(BlockX,BlockY,blockfield[BlockX,BlockY]) End If Flip Wend Function KillBlock(x:Int,y:Int,c:Int) blockfield[x,y]=0 usedfield[x,y]=1 If x<11 And blockfield[x+1,y]=c And Not usedfield[x+1,y]=1 Then killblock(x+1,y,c) End If If y<7 And blockfield[x,y+1]=c And Not usedfield[x,y+1]=1 Then killblock(x,y+1,c) End If If x>0 And blockfield[x-1,y]=c And Not usedfield[x-1,y]=1 Then killblock(x-1,y,c) End If If y>0 And blockfield[x,y-1]=c And Not usedfield[x,y-1]=1 Then killblock(x,y-1,c) End If End Function Function ResetUsedField() For i = 0 To 11 For j = 0 To 7 usedfield[i,j]=0 Next Next End Function