Подобно созданию сеток тральщика , хотя задача состоит в том, чтобы создать работающую сетку тральщика. Это будет более длинный код, чем обычно (я думаю) .
больше информации о тральщике .
Сапер - логическая игра, найденная на большинстве ОС. Цель игры состоит в том, чтобы определить, где находятся мины на сетке, учитывая числа, указывающие количество мин вокруг этого места.
Обязательные функции:
-Randomized mine generation
-8x8 field with 10 mines
-Mine and "unknown" flags
-Reveal nearby blank spaces when a blank space has been revealed.
-Input and output code: It must be playable. (Input and output code counts in the total)
Примечание по начислению очков :
Anything that is needed to make the program work is counted.
If it can be deleted and not affect the program, get rid of it.
I will occasionally update the selected answer to shorter programs if needed.
Я наткнулся на более конкретную версию этой проблемы на уроке информатики: создаю рабочую версию с наименьшим количеством строк в Visual Basic (я получил 57 строк), и я подумал, что это будет интересным испытанием для кода в гольф. Если есть какие-либо предложения по улучшению вопроса, пожалуйста, прокомментируйте. Самый короткий код в байтах побеждает.
источник
Ответы:
Python 2.7 (487C)
Полный игровой опыт:
Последний шаг опасен, хотя.
источник
-1 for...
и1 if...
сохранить два байта.Javascript, 978 байт (824 без CSS)
http://jsbin.com/otayez/6/
Контрольный список:
JS:
MiniJS 812 байт :
HTML 12 байт
CSS не является необходимым с точки зрения функциональности, но с точки зрения удобства использования:
Мини CSS 154 байта :
источник
С,
568, 557,537пример игры:
код:
источник
for(x=64;x--;)...
работу с?Mathematica
566 5481056Редактировать : это полное переписывание. Я отказался от попыток получить самый короткий код и решил вместо этого встроить функции, которые имели больше всего смысла.
r
указывает количество строк в сетке.c
указывает количество столбцов в сетке.m
: количество мин.В игру играют, щелкая мышью по кнопкам. Если игрок нажимает на мину, ячейка становится черной, и программа печатает «Вы проиграли!»
Флажок «и» позволяет игроку в любой момент посмотреть на полное решение. Флаги "?" и "!" может быть помещен в любую ячейку по желанию.
Начальное состояние
Позже ...
источник
Python (
502566)Контрольный список:
Также есть детектор выигрышей.
Вход дан во время игры, с
(f, x, y)
.(x, y)
это координаты выбора сетки,f
хотите ли вы пометить или нет.(0, 0, 0)
откроется(0, 0)
и(1, 2, 3)
будет флаг (2, 3). Пометка работает в цикле: пометка квадрата дважды ставит вопросительный знак.(число) - количество мин
(пробел) - неисследовано
. - 0 мин
! - флаг
"- вопрос
Необходимо улучшить: функция R [получить все квадраты вокруг элемента p] (101 символ), печать (69 символов), пометка (72 символа)
источник
Дьялог АПЛ, 113 байт
{⎕←1 0⍕c+○○h⋄10=+/,h:1⋄m⌷⍨i←⎕:0⋄∇{~⍵⌷h:0⋄(⍵⌷h)←0⋄0=⍵⌷c:∇¨(,⍳⍴m)∩⍵∘+¨,2-⍳3 3⋄0}i}h←=⍨c←{⍉3+/0,⍵,0}⍣2⊢m←8 8⍴10≥?⍨64
неконкурирующие: нет «моих» и «неизвестных» флагов
принты
*
для неоткрытых ячеек и цифры для открытых (в том числе0
)повторно запрашивает у пользователя координаты ячейки на основе 1 для открытия
в конечном итоге выводит данные
0
об ошибке (шахта открыта) или1
об успехе (осталось только 10 нераскрытых)выглядит так:
...
источник