Порядок и Хаос - это вариант игры в крестики-нолики, играемый на доске 6х6. Однако уникальность игры заключается в том, что оба игрока могут поставить X или O! Каждый ход (начиная с Порядка) игрок помещает X или O в любой незанятый квадрат.
Победа проста. Орден выигрывает, если на доске 5 рядов X или Os (вертикально, горизонтально или по диагонали). Хаос побеждает, если доска заполнена и на ней нет строк по 5 X или Os. Твоя работа? Ну, так как это программирование головоломок и Code Golf, вы собираетесь программировать игру и играть в гольф.
Правила
- Вы должны принять ввод как
x y t
, гдеx
иy
являются координатами, аt
также тип плитки (X
илиO
). Координаты начинаются с0 0
левого верхнего угла и увеличиваются до5 5
(правый нижний угол). - Вы должны согласиться
q
выйти и печатать,INVALID
если пользователь вводит недопустимые координаты, фрагменты, любые входные данные не в формеx y t
или пытается разместить фрагмент там, где он уже есть. (Единственное исключение -q
выход из программы.) - Если ордер выиграет, вы выйдете
P1 WINS
. Если Хаос победит, вы будете выходитьP2 WINS
. - Заказ должен идти первым.
- Пустое пространство представлено
.
. - Плитка есть
X
иO
(заглавная). Вы не должны принимать строчные буквы, но прописные буквы обязательны. - Ваша доска должна состоять только из
.XO
. - Вы фактически симулируете обоих игроков, играющих в игру, а не получаете доску и проверяете, кто победит. Он принимает ход как ввод, затем печатает доску, принимает другой ход и так далее, пока один из игроков не выиграет.
Стартовая доска выглядит так:
......
......
......
......
......
......
И после ввода первого игрока (Order) 1 2 X
это должно выглядеть так:
......
......
.X....
......
......
......
Аналогично, когда следующий игрок (Хаос) вводит данные 3 3 O
, это будет выглядеть так:
......
......
.X....
...O..
......
......
И это продолжается до тех пор, пока один из игроков не выиграет.
Как всегда, стандартные лазейки, которые извлекают удовольствие из всего , запрещены.
Победителем становится тот, у кого самый короткий код 15 июня, 00:00 UTC (примерно через месяц с момента публикации этого вызова).
источник
INVALID
. Я редактировал это сейчас, спасибо.Ответы:
PHP, 316
Вот мое представление. Это должно быть выполнено php в командной строке.
Обратите внимание, что этот код создает уведомления из-за некоторых ярлыков, которые я сделал. Дайте мне знать, если это нормально. Я могу это исправить, добавив еще несколько символов. Я проверил эту страницу, и в верхнем ответе говорится, что сообщение об ошибке отключено, если об этом ничего не сказано.
И вот версия кода без игры в гольф:
источник
JavaScript, 360
Редактировать Модифицированная интерактивная игра, должна запускаться даже в MSIE
По запросу, текстовая игра, ввод через всплывающее окно, вывод в консоль (чтобы иметь моноширинный шрифт).
Выйдите из игры, нажав кнопку «q» или нажав «Отмена».
Не используя функции ES5, он должен работать в любом браузере модеров (где у вас может быть панель консоли JS)
Теперь, еще более забавная интерактивная и графическая версия, запустите сниппет, чтобы играть.
Показать фрагмент кода
источник
Ява, 565 символов D:
Это, наверное, самый длинный код-гольф когда-либо. Я действительно не очень хорош в этом.
источник
Октава, 453
Реализация довольно проста, единственная реальная уловка, чтобы использовать,
format plus
чтобы заботиться о печати. Вот прокомментированная версия:Из-за необходимости проверки входного синтаксиса и правильности код использует
fread()
для чтения по одному символу за раз.Я позаботился о том, чтобы вывести доску и сообщения аккуратно. Если какой-то дополнительный вывод приемлем, я мог бы сбрить пару байтов. Например, при использовании автоматической печати (нет
disp(F)
) доска будет отображаться какТакже я интерпретировал, что каждый ход дается в отдельной строке.
Пример взаимодействия (
-q
переключатель просто для подавления заголовка Octave):Неверное перемещение вызвало выход из программы (не уверен, что это было задумано).
источник
x y t
на отдельной строке (и никаких других входных данных).