Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- _ms_h = 9
- _ms_w = 9
- _ms_th = 9
- _ms_tw = 9
- _ms_m = 5
- _ms_switch = 0
- _ms_mf = ""
- _ms_nf = ""
- _make_ms_mf = [
- local i n r
- _ms_h = $_ms_th ; _ms_w = $_ms_tw
- i = 0 ; n = (* $_ms_h $_ms_w)
- _ms_mf = (loopconcat i $n [0])
- while [< $i $_ms_m] [
- r = (rnd $n)
- if (!= (at $_ms_mf $r) 1) [
- _ms_mf = (listsplice $_ms_mf "1" $r 1)
- i = (+ $i 1)
- ]
- ]
- ]
- _make_ms_nf = [
- _ms_nf = ""
- loop i (* $_ms_h $_ms_w) [
- n = 0
- if (at $_ms_mf $i) [ append _ms_nf X ] [
- looplist p [
- "(- %1 (+ %2 1))" "(- %1 %2)" "(- %1 (- %2 1))" "(- %1 1)"
- "(+ %1 1)" "(+ %1 (- %2 1))" "(+ %1 %2)" "(+ %1 (+ %2 1))"
- ] [
- p = (do (format $p $i $_ms_w))
- if (&& [
- 1
- //> (mod $p $_ms_w) 0
- ] [
- 1
- //< (mod $p $_ms_w) $_ms_w
- ] [
- 1
- ] [
- 1
- ]) [
- n = (+ (= (at $_ms_mf $p) 1) $n)
- ]
- ]
- append _ms_nf $n
- ]
- ]
- ]
- newgui minesweeper [
- guistayopen [
- guilist [
- guilist [
- looplist i (breaklist $(? $_ms_switch _ms_mf _ms_nf) $_ms_w) [
- guilist [
- looplist p $i [
- guiimage (format "packages/icons/minesweeper/%1.png" $p) [] 0.5 0
- ]
- ]
- ]
- ]
- guibar
- guilist [
- guibutton "Generate FIELD" [
- _make_ms_mf
- _make_ms_nf
- ]
- guibutton "Switch Display" [ _ms_switch = (! $_ms_switch) ]
- guistrut 1
- guilist [
- guifield _ms_th 2 [ _ms_th = (max (min $_ms_th 24) 9) ]
- guifield _ms_tw 2 [ _ms_tw = (max (min $_ms_tw 30) 9) ]
- guistrut 0.5
- guifield _ms_m 3 [ _ms_m = (max (min $_ms_m (div (* $_ms_h $_ms_w) 3)) 10) ]
- ]
- ]
- ]
- ]
- ] 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement