in reply to (Golf) Hangman
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
|
|---|