Zainspirowany przez reddit .
Napisz program, który gra Hangman .
- Program wybiera losowe słowo z listy N słów, gdzie N> 2.
- Lista słów może być dostarczona do programu w dowolny sposób.
Przy każdej iteracji
- Wydrukuj stan gry, używając znaków podkreślenia dla liter, które nie zostały jeszcze odkryte:
H _ N _ _ _ N
- Wydrukuj liczbę pozostałych prób
10
- Przeczytaj list od standardowego wejścia i zaktualizuj stan gry, odejmując próbę, jeśli zgadną niepoprawną literę.
A
(Wejście)H A N _ _ A N
10
- Powtarzaj, aż wszystkie litery zostaną odgadnięte lub próby osiągną 0
- Użyj dowolnego języka
- Wygrywa najmniejsza liczba postaci.
- Narysowanie szubienicy nie jest konieczne, ale zapewni ci pochwały i uznanie.
code-golf
game
word-puzzle
drspod
źródło
źródło
Odpowiedzi:
Ruby 1.9,
134132120117108107Lista słów podana w ARGV. Słowa i wprowadzone litery muszą pasować do wielkości liter.
źródło
Cholera, myślałem, że jest napisane „wygrywa najmniej linii”. Nie zamierzam tutaj wygrywać konkursów na najmniej znaków, ale ten program Common Lisp to tylko jedna linia.
źródło
Python 3.
Wolę jednak ten: dłuższy, ale ładniejszy.
źródło
a
, mógłbym użyć*
dwa razy:print(*("_"if x in L else x for x in w))
c ++ (nagłówki)
cat / usr / dict / words | xargs kata
źródło
Pyton
Tak naprawdę nie starałem się znaleźć najmniejszej liczby postaci, chciałem tylko, aby była jak najmniejsza bez poświęcania czegokolwiek.
źródło
Perl, 112 znaków Czuję, że dam sobie radę - może spróbuję później
Słowa są podawane w wierszu poleceń, litery są pisane wielkimi literami
źródło
$_=$ARGV[rand@ARGV];$a=10;while($a&&/[a-z]/){$y=$_;$y=~y/a-z/_/;print$y;$x=<STDIN>;chop$x;s/$x/$x/ig||$a--}
Clojure
Jest to 400 bajtów zgzipowanych, co wciąż jest całkiem sporo, prawdopodobnie ze względu na to, jak Clojure obsługuje stan zmiennych.
źródło
C # 370
lista słów jako argument
źródło
VB.NET
Nie próbowałem go jeszcze zmniejszać, ale:Pierwsze zmniejszanie:Drugie zmniejszanie (3759 znaków):
źródło
PowerShell, 125 bajtów
Skrypt testu mniej golfowego:
Przykład wyjścia, gdy zgadywający gracz przegrał :
Przykład wyjścia, gdy zgadywający gracz wygrał :
źródło