Описание
Создайте полностью рабочую игру «Угадай число». В игру играют два игрока следующим образом:
- игрок один выбирает число (A) от 1 до N
- игрок два пытается угадать A, выбирая число (B) в том же диапазоне
- первый игрок отвечает «выше»
if A > B
, «ниже»if A < B
или «правильно»if A = B
. - шаги 2-3 повторяются I раз или до тех пор, пока «правильный» ответ.
- Если слышен «правильный», игрок два выигрывает, в противном случае он проигрывает.
Спекуляции
Минимальные спецификации для действительной записи:
- Пользователь может играть либо как первый игрок, либо как второй игрок.
- компьютер играет другую роль.
- компьютер должен действительно пытаться угадать число во время игры за второго игрока (таким образом, гадание на основе данных или игнорирование данных - это обман)
- N = 100 или ввод пользователя (на ваш выбор)
- I = 5 или ввод пользователя (на ваш выбор)
- Программа должна объявить победителя в конце.
- полные понятные человеку инструкции о том, что делать на каждом шаге (например, «Играть как игрок один или игрок два?» , «Введите другое предположение:» и т. д.) - не сходите с ума от этого; просто будь проще.
Условия выигрыша
В этой последовательности:
- Участник, получивший наибольшее количество голосов, выигрывает, если он опережает второе место с наибольшим количеством голосов по крайней мере на 3 голоса.
- Самый короткий вход побеждает.
code-challenge
game
Eelvex
источник
источник
Ответы:
Windows PowerShell, 289
История:
while
→for
else{if...}
→elseif
- сохраняет скобки.switch
чтобы избежать именования цикла. Теперь я могу использовать как разbreak
и конвейер тоже. Объявление победителя переместилось в фильтр, который использует,exit
так что перерыв не требуется, никогда.elseif
цепочки для проверки предположения я просто использую строку формата с различными значениями для отрицательных, положительных и нулевых значений. Экономит многоисточник
TRS-80 BASIC, 249 знаков
Я думаю, что это может быть первый раз, когда я отправляю ответ на этот сайт, который я написал до того, как сайт появился.
На самом деле, я написал это до того, как появилась всемирная сеть. Еще в 1980-х годах, когда TRS-80 стали неактуальными.
Это пример «однострочного» - попытка поместить самую интересную программу, которую вы могли бы в одну строку BASIC. Это был мой первый однострочник, и не очень впечатляющий. (Там было несколько удивительных однострочников.)
Линия TRS-80 BASIC была ограничена 255 символами, минус пара для накладных расходов. Хотя иногда это может превышать это значение, поскольку истинный предел составлял 255 байт после токенизации, но редактор также обрезал строку, содержащую более 255 символов, до токенизации, и вам нужно было использовать приемы в редакторе строк для вставки буквенных управляющих символов. как переводы строк в твои строки.
И да, чтобы уточнить, эти разрывы строк в списке являются буквальными символами новой строки. (Чтобы получить их в своем коде, вам нужно было использовать команду
C
hange приEDIT
вводе строки. Полная боль, но стоит заменить восемь или более символов на+CHR$(13)
один.)Блин, я давно играю в гольф.
источник
C 397 символов
В более читаемой форме.
источник
C #:
Количество символов: С пробелами: 575 Без пробелов: 464
Отредактируйте , пока время "Goto" ( дрожь )
источник
Старая добрая равнина C
источник
JavaScript
Новая минимизированная версия (пропущенные
var
и сокращенныеalert
вызовы:268 символов
Для выполнения вызова
g(100);
самостоятельное выполнение не учитывается, так как оно добавляет переменное количество символов (275 символов дляg(100);
).оригинал (где-то около 600 символов, включая пробелы):
Minified (312) :
источник
Python 2.7
334335327314300 знаков (мой первый раз в гольф)(335) Забыл сбежать с новой строки.
(327) Удалены лишние 100 для randint. Сравнение первого символа ответа, а не всей строки.
(314) Обновлена печать, кто победил.
(300) Изменено, когда игрок был игроком 1: изменено угадывание числа как компьютера
источник
Бейсик, 184
Вот версия без AI.
источник
code-golf
.Lua 360 Chars
Версия без гольфа:
источник
Javascript
Это около 800 символов и включает ваш основной двоичный выбор «AI» для половины компьютерного игрока. Я мог бы, вероятно, сохранить несколько символов, если бы избавился от всех своих,
var
но я не люблю пропускать переменные даже во время игры в гольф. Я также сделал два шага «Это правильно?» / «Это выше?» вещь с всплывающими окнами подтверждения, вместо того, чтобы давать всплывающее окно с подсказками и проверять «правильно» / «выше» / «ниже», хотя это может также сохранить некоторые символы, я не проверял.Кроме того, я протестировал его только в Firefox 4, так что я не знаю, работают ли некоторые из вещей, которые я делаю последовательно, в частности, объединение неверного ввода, проанализированного как NaN, со значением по умолчанию в моей
wp
функции.источник
Ява, 1886 символов
Версия без гольфа:
источник
int a=5,b=10
(34). Вы можете назвать аргументы в конструкторе отличными от полей, чтобы избежатьthis.
(10). Вы можетеL
полностью исключить , так как он всегда остается в1
(4). Вы можете не указывать инициализациюH
иG
которые в любом случае устанавливаются в конструкторе (6). Вы можете использовать однобуквенные имена для всех переменных и методов (235).fuzzify
используя условный оператор (20). Вы можете встроитьBufferedReader
вgetInt
(19). Вы можете использовать,String#matches
чтобы избежатьPattern
иMatcher
вgetInt
(48). Вы также можете использовать условный оператор вprocessGuess
(30). Сейчас у меня 1360 вместо вашего начального 1953 года.Радио-будильник, 5756 бит (2159 байт)
Скоро к будильнику рядом с вами! Новые строки предназначены только для чтения. Значения ASCII иногда используются вместо буквенно-цифрового отображения на экране. Подходит спецификации Использует значения по умолчанию для
A
иI
. На первом входе используйте NULL, чтобы быть угадывающим, иначе вы установите число. ПАДЖИЗ ДОЛЖЕН БЫТЬ 4! Клетки должны быть 7-битными и обернуть! Тьюринг! Выходыhigher
,lower
,correct
,you won
, иyou lost
.источник
Рубин 1,9 (298)
Не очень дружелюбные инструкции, хотя.
источник
Я чувствовал необходимость сделать Java немного справедливости. :)
Ява -
486437421414Golfed
Слегка безжалостный
источник