Ваша задача для этого гольфа - написать программу, которая будет принимать ходы игры в реверси (отелло) и отображать результат для пользователя.
вход
Строка чисел, взятых из диапазона [0-7]. Каждая пара чисел представляет сначала координату X, а затем координату Y. Любые символы, не входящие в этот диапазон, должны игнорироваться.
Выход
Визуальное представление результата игры, включая информацию о том, кто ведет игру, когда заканчивается ввод. Это может быть графический вывод или нажатие клавиши, но это должна быть визуальная сетка игры с отдельным символом / графическим символом для черного, белого и пустого.
Кроме того, ваш код должен выводить сообщение об ошибке и останавливаться при вводе недопустимого хода (один и тот же квадрат более одного раза или квадрат, который не будет переворачивать плитки).
Пропуски должны быть обработаны изящно. Пропуск происходит, когда один цвет не имеет законного хода, его ход пропускается, а другой игрок начинает играть.
Черный всегда идет первым.
Примеры
23
........
........
........
..bbb...
...bw...
........
........
........
b
232425140504032627
........
........
........
b.bbb...
bbbww...
b.b.....
..b.....
..b.....
b
2324322513
........
........
........
..bbb...
..www...
........
........
........
e
23242555
........
........
........
..bbb...
..bbw...
..b.....
........
........
e
источник
Ответы:
Haskell - 1493 байта
В этой версии нет подробных сообщений об ошибках, а вывод гораздо более простой. Основное изменение заменяло
Either String a
сMaybe a
и так как они оба монадами, это было достигнуто с простой заменойRight a
сJust a
иLeft String
сNothing
.Оригинальная версия - 4533 байта
Я буду играть в гольф, когда будет соревнование! редактировать Настал
Примечание. Ваш второй пример должен быть 2324251 4 0504032627.
тесты
Со скриншотами для предотвращения ожогов глаз.
Это можно получить,
impossible move (x,y)
когда вы используете innardics (функции изнутри программы и что вы не должны использовать) иx/y is out of bounds
.источник
Javascript (E6) 399
412 450Редактировать: дисплей доски короче и приятнее, вырезать немного символа
Ungolfed
Тестовое задание
Тест в консоли JavaScript (FireFox):
232425140504032627
, , , , , , , , , , , , , , , , , , , , , , , , , , , ,☻, ,☻,☻,☻, , , , ,☻,☻,☻,O,O, , , , ,☻, ,☻, , , , , , , , ,☻, , , , , , , , ,☻, , , , , , ☻9
источник