Not the shortest but what can you expect with all those snazzy graphics ;-)
sub hangman { @w=split//,pop;@w{@w}=("-")x@w;@h=split$","______ | |\n |\n |\n |\n __ +____\n";$d="______\n| |\n| _O_\n| |\n| / \\\n|______";while($g<8){p +rint@h[reverse 0..$g-1],$/,@w{@w},"$/?";$_=<>;chop;$w{$_}?$w{$_}=$_:$ +g++;(join"",values%w)!~/-/&&last}print$g<8?@w:$d } hangman("Hangman");
If you ditch the graphics it comes in at 125 (122 without the ? prompt)
sub hangman { @w=split//,pop;@w{@w}=("-")x@w;while($g<8){print@w{@w},"$/?";$_=<>;cho +p;$w{$_}?$w{$_}=$_:$g++;(join"",values%w)!~/-/&&last}$g } print hangman("Hangman")<8 ? "Winner!" : "RIP";
Borrowing a couple of japhy's ideas 110 strokes
sub hangman { @w=split//,pop;@w{@w}=("-")x@w;while($g<8){print@w{@w},$/;<>=~/./;$w{$ +&}?$w{$&}=$&:$g++;"@w{@w}"!~/-/&&last}$g }
cheers
tachyon
s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print
In reply to Re: (Golf) Hangman
by tachyon
in thread (Golf) Hangman
by Beatnik
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |