alias hangman { /window -p @hangman /drawline @hangman 4 1 100 400 300 400 /drawline @hangman 4 1 200 400 200 100 /drawline @hangman 4 1 200 100 275 100 /drawline @hangman 4 1 275 100 275 150 /drawtext @hangman 4 arial 15 320 150 Total Wins: %hangwin /drawtext @hangman 4 arial 15 320 170 Total Losses: %hangloss /set %wrong 0 /unset %guessed /set %done 0 /set %word $read(hangwords.txt) /dialog -m hanglet hanglet var %a = 1 while (%a <= $len(%word)) { /drawline @hangman 4 1 $calc(%a * 30) 50 $calc((%a * 30) + 20) 50 /inc %a } } dialog hanglet { option dbu size 500 400 130 40 button "A",1,0 0 10 10 button "B",2,10 0 10 10 button "C",3,20 0 10 10 button "D",4,30 0 10 10 button "E",5,40 0 10 10 button "F",6,50 0 10 10 button "G",7,60 0 10 10 button "H",8,70 0 10 10 button "I",9,80 0 10 10 button "J",10,90 0 10 10 button "K",11,100 0 10 10 button "L",12,110 0 10 10 button "M",13,120 0 10 10 button "N",14,0 10 10 10 button "O",15,10 10 10 10 button "P",16,20 10 10 10 button "Q",17,30 10 10 10 button "R",18,40 10 10 10 button "S",19,50 10 10 10 button "T",20,60 10 10 10 button "U",21,70 10 10 10 button "V",22,80 10 10 10 button "W",23,90 10 10 10 button "X",24,100 10 10 10 button "Y",25,110 10 10 10 button "Z",26,120 10 10 10 button "End Game",27,30 25 30 10, cancel button "New Game",28,70 25 30 10 } on *:dialog:hanglet:close:0: { /endhgame } on *:dialog:hanglet:sclick:*: { if ($did == 27) { /endhgame | halt } if ($did == 28) { /endhgame | /hangman | halt } if ($did == 0) { halt } if (!$did($did).enabled) { halt } /did -b hanglet $did if ($did($did) isin %word) { /drawline @hangman $color(background) 50 400 50 600 50 /drawtext @hangman 4 arial 15 400 50 $did($did) IS in the word /paintlet $did($did) } else { /drawline @hangman $color(background) 50 400 50 600 50 /drawtext @hangman 4 arial 15 400 50 $did($did) is NOT in the word /nextpart } } alias nextpart { /inc %wrong if (%wrong == 1) { /drawdot @hangman 4 30 275 175 /drawdot @hangman 12 4 263 168 /drawdot @hangman 12 4 287 168 /drawline @hangman 1 1 261 186 289 186 } if (%wrong == 2) { /drawline @hangman 4 3 275 200 275 275 } if (%wrong == 3) { /drawline @hangman 4 1 275 225 250 260 } if (%wrong == 4) { /drawline @hangman 4 1 275 225 300 260 } if (%wrong == 5) { /drawline @hangman 4 1 275 275 240 325 } if (%wrong == 6) { /drawline @hangman 4 1 275 275 310 325 /drawdot @hangman 4 4 263 168 /drawdot @hangman 4 4 287 168 /drawline @hangman 1 1 260 166 266 172 /drawline @hangman 1 1 266 166 260 172 /drawline @hangman 1 1 284 166 290 172 /drawline @hangman 1 1 290 166 284 172 var %a = 1 while (%a <= 26) { /did -b hanglet %a /inc %a } %a = 1 while (%a <= $len(%word)) { if (!$istok(%guessed,$at(%word,%a),44)) { /drawtext @hangman 7 arial 15 $calc((%a * 30) + 6) 35 $upper($at(%word,%a)) } /inc %a } /drawline @hangman $color(background) 50 400 50 600 50 /drawtext @hangman 4 arial 15 400 50 He dies, you lose! /inc %hangloss /drawline @hangman $color(background) 50 342 170 500 170 /drawtext @hangman 4 arial 15 320 150 Total Wins: %hangwin /drawtext @hangman 4 arial 15 320 170 Total Losses: %hangloss } } alias paintlet { var %a = 1 while (%a <= $len(%word)) { if ($at(%word,%a) == $1) { /drawtext @hangman 4 arial 15 $calc((%a * 30) + 6) 35 $1 | /inc %done | /set %guessed $addtok(%guessed,$1,44) } /inc %a } if (%done == $len(%word)) { var %a = 1 while (%a <= 26) { /did -b hanglet %a /inc %a } /drawline @hangman $color(background) 50 400 50 600 50 /drawtext @hangman 4 arial 15 400 50 You win!!! /inc %hangwin /drawline @hangman $color(background) 50 322 150 500 150 /drawtext @hangman 4 arial 15 320 150 Total Wins: %hangwin /drawtext @hangman 4 arial 15 320 170 Total Losses: %hangloss } } menu channel { .Play hangman!: /hangman } alias endhgame { /unset %guessed /unset %wrong /unset %done /unset %word /dialog -x hanglet hanglet /window -c @hangman } alias at { return $right($left($1,$2),1) }