rendered paste bodyalias 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) }