Advertisement
RaZgRiZ

minesweeper wip

Jun 2nd, 2013
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.62 KB | None | 0 0
  1. _ms_h = 9
  2. _ms_w = 9
  3. _ms_th = 9
  4. _ms_tw = 9
  5. _ms_m = 5
  6. _ms_switch = 0
  7.  
  8. _ms_mf = ""
  9. _ms_nf = ""
  10.  
  11. _make_ms_mf = [
  12.     local i n r
  13.     _ms_h = $_ms_th ; _ms_w = $_ms_tw
  14.     i = 0 ; n = (* $_ms_h $_ms_w)
  15.     _ms_mf = (loopconcat i $n [0])
  16.     while [< $i $_ms_m] [
  17.         r = (rnd $n)
  18.         if (!= (at $_ms_mf $r) 1) [
  19.             _ms_mf = (listsplice $_ms_mf "1" $r 1)
  20.             i = (+ $i 1)
  21.         ]
  22.     ]
  23. ]
  24.  
  25. _make_ms_nf = [
  26.     _ms_nf = ""
  27.     loop i (* $_ms_h $_ms_w) [
  28.         n = 0
  29.         if (at $_ms_mf $i) [ append _ms_nf X ] [
  30.             looplist p [
  31.                 "(- %1 (+ %2 1))" "(- %1 %2)" "(- %1 (- %2 1))" "(- %1 1)"
  32.                 "(+ %1 1)" "(+ %1 (- %2 1))" "(+ %1 %2)" "(+ %1 (+ %2 1))"
  33.             ] [
  34.                 p = (do (format $p $i $_ms_w))
  35.                 if (&& [
  36.                     1
  37.                     //> (mod $p $_ms_w) 0
  38.                 ] [
  39.                     1
  40.                     //< (mod $p $_ms_w) $_ms_w
  41.                 ] [
  42.                     1
  43.                    
  44.                 ] [
  45.                     1
  46.                    
  47.                 ]) [
  48.                     n = (+ (= (at $_ms_mf $p) 1) $n)
  49.                 ]
  50.             ]
  51.             append _ms_nf $n
  52.         ]
  53.     ]
  54. ]
  55.  
  56. newgui minesweeper [
  57.     guistayopen [
  58.         guilist [
  59.             guilist [
  60.                 looplist i (breaklist $(? $_ms_switch _ms_mf _ms_nf) $_ms_w) [
  61.                     guilist [
  62.                         looplist p $i [
  63.                             guiimage (format "packages/icons/minesweeper/%1.png" $p) [] 0.5 0
  64.                         ]
  65.                     ]
  66.                 ]
  67.             ]
  68.             guibar
  69.             guilist [
  70.                 guibutton "Generate FIELD" [
  71.                     _make_ms_mf
  72.                     _make_ms_nf
  73.                 ]
  74.                 guibutton "Switch Display" [ _ms_switch = (! $_ms_switch) ]
  75.                 guistrut 1
  76.                 guilist [
  77.                     guifield _ms_th 2 [ _ms_th = (max (min $_ms_th 24) 9) ]
  78.                     guifield _ms_tw 2 [ _ms_tw = (max (min $_ms_tw 30) 9) ]
  79.                     guistrut 0.5
  80.                     guifield _ms_m 3 [ _ms_m = (max (min $_ms_m (div (* $_ms_h $_ms_w) 3)) 10) ]
  81.                 ]
  82.             ]
  83.         ]
  84.     ]
  85. ] 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement