Semelhante à geração de grades de minas , embora o desafio seja criar uma grade de minas. Este será um código mais longo que o normal (eu acho) .
mais informações sobre o caça-minas .
Campo Minado é um jogo de lógica encontrado na maioria dos sistemas operacionais. O objetivo do jogo é determinar onde as minas estão em uma grade, dados os números que indicam o número de minas em torno desse ponto.
Recursos necessários:
-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)
Nota sobre pontuação :
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.
Eu me deparei com uma versão mais específica desse problema na aula de ciência da computação: crie uma versão funcional com o menor número de linhas no Visual Basic (eu tenho 57 linhas) e achei que seria um desafio interessante para o código de golfe. Se houver alguma sugestão para melhorar a pergunta, comente. O código mais curto em bytes vence.
fonte
Respostas:
Python 2.7 (487C)
Experiência de jogo completa:
O último passo é perigoso, no entanto.
fonte
-1 for...
e1 if...
economizar dois bytes.Javascript, 978 bytes (824 sem CSS)
http://jsbin.com/otayez/6/
Lista de controle:
JS:
Bytes MiniJS 812 :
HTML 12 bytes
O CSS não é necessário do ponto de vista da funcionalidade, mas do ponto de vista da usabilidade:
Mini CSS 154 bytes :
fonte
C,
568, 557,537exemplo de jogo:
código:
fonte
for(x=64;x--;)...
trabalho para c?Mathematica
566 5481056Edit : Esta é uma reescrita completa. Desisti de tentar obter o código mais curto e decidi criar os recursos que faziam mais sentido.
r
indica o número de linhas na grade.c
indica o número de colunas na grade.m
: número de minas.O jogo é jogado clicando-se nos botões. Se o jogador clicar em uma mina, a célula ficará preta e o programa exibirá "Você perde!"
A caixa de seleção "u" permite ao jogador espiar a solução completa a qualquer momento. As bandeiras "?" e "!" pode ser colocado em qualquer célula, conforme desejado.
Estado inicial
Mais tarde ...
fonte
Python (
502566)Lista de controle:
Também possui um detector de vitória.
A entrada é fornecida enquanto o jogo está rodando, com
(f, x, y)
.(x, y)
são as coordenadas da seleção da grade,f
é se você deseja sinalizar ou não.(0, 0, 0)
abriria(0, 0)
e(1, 2, 3)
sinalizaria (2, 3). A sinalização funciona em um ciclo: a sinalização de um quadrado duas vezes fornece um ponto de interrogação.(número) - número de minas
(espaço) - inexplorado
. - 0 minas
! - flag
"- pergunta
Precisa ser aprimorado: função R [obtenha todos os quadrados ao redor do item p] (101 caracteres), impressão (69 caracteres), sinalização (72 caracteres)
fonte
Dyalog APL, 113 bytes
{⎕←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
não concorrente: nenhuma bandeira "minha" e "desconhecida"
imprime
*
células abertas e dígitos para abrir (inclusive0
)solicita repetidamente ao usuário as coordenadas baseadas em 1 de uma célula para abrir
em última análise, resulta
0
em falha (a mina está aberta) ou1
em sucesso (apenas 10 restantes)se parece com isso:
...
fonte