Вдохновленный Reddit .
Напишите программу, в которую играет Hangman .
- Программа выбирает случайное слово из списка из N слов, где N> 2.
- Список слов может быть предоставлен программе любым способом, который вы выберете.
На каждой итерации
- Распечатайте состояние игры, используя подчеркивание для букв, которые еще не обнаружены:
H _ N _ _ _ N
- Распечатать количество оставшихся попыток
10
- Прочитайте письмо от stdin и обновите состояние игры, вычитая попытку, если они угадывают неправильную букву.
A
(Вход)H A N _ _ A N
10
- Повторяйте до тех пор, пока все буквы не будут угаданы или попытки не достигнут 0
- Используйте любой язык
- Наименьшее количество символов выигрывает.
- Рисовать виселицу не обязательно, но вы будете зарабатывать голоса и почести.
code-golf
game
word-puzzle
drspod
источник
источник
Ответы:
Рубин 1.9,
134132120117108107Список слов в ARGV. Слова и введенные буквы должны совпадать в случае.
источник
Черт возьми, я думал, что сказано "выиграл наименьшее количество линий". Я не собираюсь выигрывать конкурсы с наименьшим количеством персонажей, но эта программа Common Lisp занимает всего одну строчку.
источник
Python 3
Я предпочитаю этот, хотя: дольше, но приятнее.
источник
a
так же, я мог бы использовать*
дважды:print(*("_"if x in L else x for x in w))
c ++ (-headers)
кот / usr / dict / words | Xargs Палач
источник
питон
Я действительно не пытался найти наименьшее количество персонажей, просто хотел сделать его как можно меньше, не жертвуя ничем.
источник
Perl 112 симв. Я чувствую, что могу сделать лучше - возможно, я попробую позже
Слова даются в командной строке, буквы набираются заглавными буквами
источник
$_=$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
Это 400 байтов в сжатом виде, что довольно много, вероятно, из-за того, как Clojure обрабатывает изменяемое состояние.
источник
C # 370
список слов в качестве аргумента
источник
VB.NET
Я еще не пытался уменьшить его, но:Первое сокращение:Второе сокращение (3759 символов):
источник
Powershell, 125 байт
Менее гольф тестовый скрипт:
Пример вывода, когда угадающий игрок проиграл :
Пример вывода, когда угадающий игрок выиграл :
источник