    -"ܝܙ-""-""]U]]U܍܍܍33=333mfffmfDDMMM	 
             3     	        3      p p p p 0 0 0   	
k                `P`P`P@p@P`p`P\  ;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 -"-"                                                            ܝ-                                                            "                                                            ""                                                            --                                                            ܙ""""                                                                                                                                                                                    ]U-"]U                                                            ܝ-ܝܝܝܝܝܝܝ                                                            ]"]                                                            "                                                     -                                                     ]Uܙ""]Uܙܙܙܙܙܙܙ                                                                                                                                                                 -"]U-"]U                                                            ܝܝ-ܝܝ-ܝܝ-                                                            ]]"""                                                            ""                                                            --                                                            ""ܙܙ]U""]Uܙܙܙܙ                                                                                                                                                                                    -"-"-"-"-"-"                                                            ܝ--ܝܝܝܝܝ                                                            ""                                                            """"""                                                            ------                                                            ""ܙ""""""ܙܙܙܙܙ""""                                                                                                                                                                                    -"-"                                                            ܝܝܝ-ܝܝܝܝܝܝ-                                                            ""                                                            ""                                                            --                                                            ܙܙܙ""""ܙܙܙܙܙܙ                                                                                                                                                                                    -"-"]U-"-"                                                            ܝܝ-ܝܝܝ                                                            ]"                                                            """"                                                            ----                                                            """"]U""""ܙܙܙܙܙ                                                                                                                                                                                    -"]U]U]U]U܍]U]U-"                                                            ܝ---܍ܝ                                                            "]""]]]܍]]                                                            ""                                                            --                                                            ܙ""]U]U]U]U]U]U""ܙ                                                                                                                                                                                    ]U33-"                                                            ܝ---------ܝ                                                            "]"=3"""""""                                                            "                                                            -                                                            ܙ]U33""ܙ                                                                                                                                                                                    -"]U]U-"]U33]U                                                            ܝܝܝ--ܝ                                                            ]"]]"=3]                                                            ""                                                            --                                                            ܙܙ""ܙ]U]U""]U33]Uܙ                                                                                                                                                                                    -"-"                                                            ܝܝܝܝܝܝܝܝܝ                                                                                                                        ""                                                            --                                                            ܙܙܙܙ""ܙܙܙܙ""ܙ                                                                                                                                                                                    -"-"                                                            -ܝܝ-ܝܝܝ                                                            ""                                                            ""                                                            --                                                            ܙܙܙܙ""""ܙ                                                                                                                                                                                                                                                ܝܝܝܝܝܝ-ܝ                                                            "                                                                                                                                                                                    ܙܙܙܙܙܙܙ                                                                                                                                                                                    ]U܍                                                            ܝܝܝܝܝܝܝ܍ܝ                                                            ]܍                                                                                                                                                                                    ܙܙܙܙܙܙܙ]Uܙ                                                                                                                                                                                    -"]U                                                            ܝ-ܝܝ---ܝܝ                                                            ""]""                                                            "                                                            -                                                            ܙܙܙ""]Uܙܙ                                                                                                                                                                                    -"                                                            ܝܝܝܝܝ--                                                            ""                                                            "                                                            -                                                            ܙܙܙܙܙ""                                                             -- title:   minesweeper
-- author:  Sava
-- desc:    Simple minesweeper demake
-- version: 0.1
-- script:  lua

sizeX=15
sizeY=15
mineCount=40

t=0

marked={}
opened={}
tiles={}

leftC=false
rightC=false

lost=false
won=false

function BOOT()
 --trace("start")
 start()
end

function TIC()
 mx, my, left, middle, right = mouse()
 if (left and not leftC) then
  openTile(math.floor(mx/8), math.floor(my/8))
  if (lost and mx > 150 and mx < 207 and my > 50 and my < 60) then
   start()
   lost=false
   t=0
  end
  leftC=true
 end
 if (not left and leftC) then
  leftC=false
 end
 
 if (right and not rightC) then
  mark(math.floor(mx/8), math.floor(my/8))
  rightC=true
 end
 if (not right and rightC) then
  rightC=false
 end
 draw()
 print(math.floor(t/60), 150, 20)
	if (not lost) then t=t+1 end
end

function start()
 for i=1, sizeX do
  tiles[i]={}
  opened[i]={}
  marked[i]={}
  for j=1, sizeY do
   tiles[i][j]=0
   opened[i][j]=false
   marked[i][j]=false
  end
 end
 for i=1, mineCount do
  local i1, j1 = math.random(1, sizeX), math.random(1, sizeY)
  --trace("generating mine "..i..", position: "..i1..", "..j1)
  while (tiles[i1][j1] == -1) do
   i1, j1 = math.random(1, sizeX), math.random(1, sizeY)
   --trace("invalid position, new position: "..i1..", "..j1)
  end
  tiles[i1][j1]=-1
 end
 for i=1, sizeX do
  for j=1, sizeY do
   if (tiles[i][j] ~= -1) then
    tiles[i][j]=getNeighMines(i, j)
   end
  end
 end
end

function getNeighMines(pi, pj)
 mines=0
 for i=-1, 1 do
  for j=-1, 1 do
   if (i+pi > 0 and i+pi <= sizeX and j+pj > 0 and j+pj <= sizeY) then
    if (tiles[i+pi][j+pj] == -1) then
     mines=mines+1
    end
   end
  end
 end
 return mines
end

function draw()
 cls(0)
 for i=1, sizeX do
  for j=1, sizeY do
   if (opened[i][j]) then
    if (tiles[i][j] == -1) then spr(2, i*8, j*8)
    else spr(3+tiles[i][j], i*8, j*8) end
   else
    if (marked[i][j]) then
     spr(1, i*8, j*8)
    else
     spr(0, i*8, j*8)
    end
   end
  end
 end
 if (lost) then
  rect(150, 50, 57, 10, 5)
  rectb(150, 50, 57, 10, 6)
  print("try again?", 152, 52)
 end
 if (lost and mx > 150 and mx < 207 and my > 50 and my < 60) then
  rectb(150, 50, 57, 10, 4)
 end
 if (won) then
  print("you won!", 152, 32)
 end
end

function openTile(i, j)
 if (i > 0 and i <= sizeX and j > 0 and j <= sizeY and opened[i][j] == false and marked[i][j] == false) then
  opened[i][j]=true
  if (tiles[i][j] == -1) then lose()
  elseif (tiles[i][j] == 0) then
   openTile(i-1, j)
   openTile(i+1, j)
   openTile(i, j-1)
   openTile(i, j+1)
   
   openTile(i-1, j-1)
   openTile(i+1, j+1)
   openTile(i+1, j-1)
   openTile(i-1, j+1)
  end
  sfx(0)
  if (winCheck()) then
   win()
  end
 end
end

function mark(i, j)
 if (i > 0 and i <= sizeX and j > 0 and j <= sizeY) then
  marked[i][j] = not marked[i][j]
  sfx(1)
 end
end

function lose()
 lost=true
 for i=1, sizeX do
  for j=1, sizeY do
   opened[i][j]=true
  end
 end
 sfx(2, 36, -1, 1)
end

function winCheck()
 if (lost) then return false end
 for i=1, sizeX do
  for j=1, sizeY do
   if (not (opened[i][j] or tiles[i][j] == -1)) then
    return false
   end
  end
 end
 return true
end

function win()
 lost=true
 won=true
 for i=1, sizeX do
  for j=1, sizeY do
   if (tiles[i][j] == -1) then marked[i][j]=true end
  end
 end
 sfx(3, 36, 160, 1)
end