Desafio de golfe
Dado o ASCII abaixo "Verde".
| |
| |> |
| | |
| O |
| |
| |
| |
| |
| |
| |
Vamos |
denotar uma parede
Vamos |
denotar metade do mastro da bandeira
Vamos>
denotar a bandeira no mastro
Deixe O
denotar o buraco
Deixe o
denotar a bola
As dimensões do "verde" são 10x10. Existem dez espaços entre as duas paredes |
.
Existem também dez espaços, vazios ou não, entre o topo e o fundo do verde.
Desafio
Insira um valor x e y ou gere dois números aleatórios para "atirar" uma bola de golfe no verde.
Se o x, y gerado não tocar no buraco ou no mastro da bandeira / na saída da bandeira "Tente novamente!"
Se o x, y gerado atingir a saída do furo "Hole in One!"
se o x, y gerado atingir a saída do pólo "Lucky Shot!"
se o x, y gerado atingir a saída do sinalizador "Close One!"
Após o arremesso, mostre a localização da bola no verde com um o
, substituindo qualquer personagem que ela acertar. Também envie o respectivo ditado acima.
Exemplos:
//Hole in one example, the O was replaced with a o
Randomed x = 3
Randomed y = 4
"Hole in One!"
| |
| |> |
| | |
| o |
| |
| |
| |
| |
| |
| |
//Clone example, the top half of the pole was replaced with a o
Randomed x = 3
Randomed y = 2
"Lucky Shot!"
| |
| o> |
| | |
| O |
| |
| |
| |
| |
| |
| |
//Lucky Shot example, the > was replaced with a o
Randomed x = 4
Randomed y = 2
"Close One!"
| |
| |o |
| | |
| O |
| |
| |
| |
| |
| |
| |
//Try Again example, the <space> was replaced with a o
Randomed x = 5
Randomed y = 1
"Try Again!"
| o |
| |> |
| | |
| O |
| |
| |
| |
| |
| |
| |
Divirta-se e boa sorte e, como esse é o código-golfe, o código mais curto vence!
Respostas:
JavaScript (ES6)
210208193184 bytesDemo
fonte
Geléia , 78 bytes
Jogue um jogo de habilidade ou um jogo de porcaria em TryItOnline!
(Crap-shoot custa mais bytes).
Quão?
fonte
Python 2,
290264262252248245 bytesNão é bonito e não é curto, mas estou cansado e é o
primeiroresposta única do Python. Insira a foto no formato x, y.Editar
Jogou 26 ao redefinir a forma como a lista é construída. Ainda sem sorte com a declaração longa se.
-2 substituindo long se por um dicionário e menor se.
-10 com agradecimentos a @ Noodle9 - eu tinha perdido esse :)
-4 - obrigado novamente :)
Mais 3 de folga. Obrigado.
Para quem está interessado na lógica, sem comentários com comentários (1316 bytes, mas ainda assim cabe facilmente em um disco de 3,5 ", se alguém se lembra deles):
Definitivamente, a primeira vez que um dicionário foi o melhor formato de dados em um desafio de golfe.
fonte
C, 236 bytes
Ungolfed:
fonte
Scala, 238 bytes
Usando indexação zero.
Isso é legível demais :(
Explicação:
Usei a fórmula
1+x+13*y
para calcular o índice correto, já que cada linha tem 13 caracteres de comprimento (2 bordas, uma nova linha e 10 espaços) mais um deslocamento de um porque (0,0) deve ser o segundo caractere.fonte
Perl,
225209 bytesAs duas novas linhas literais, cada uma, salvam um byte. Bastante padrão. Imprime a declaração e depois o tabuleiro de jogo.
fonte
Carvão , 99 bytes
Recebe entrada baseada em 1, separada por espaço, em stdin. A maior parte do código é para imprimir (uma) as quatro mensagens. Experimente online!
Nota: o carvão ainda é um trabalho em andamento. Esse código funciona a partir do commit atual . Se ele parar de funcionar no futuro (em particular, se o link TIO não funcionar conforme o esperado), execute um ping e tentarei adicionar uma versão atualizada não concorrente que funcione.
Explicação
fonte
Brain-Flak , 1466
1938bytesExperimente online!
Eu ganhei?
fonte
TI-Basic, 183 bytes
Graças a Deus, o TI-Basic usa tokens.
o
|
normalmente não podem ser digitados, mas é no conjunto de caracteres.Por favor, deixe-me saber se o resultado da foto absolutamente deve ser minúsculo.
Adicionarei uma captura de tela de um resultado de programa de exemplo posteriormente.
fonte
Groovy - 235 bytes
Minha primeira tentativa - Um fechamento groovy aceitando 2 números inteiros de 0 a 9 como as coordenadas X e Y para a foto.
fonte
Dyalog APL , 147 (ou 127) bytes
Toma (y, x) como argumento.
A partir da versão 16.0, quase podemos reduzir pela metade a contagem de bytes com o novo
@
operador;@
coloca o operando esquerdo nas posições do operando direito no argumento certo:NewChars @ Positions ⊢ Data
Código ligeiramente modificado para tornar permitido no TryAPL:
Buraco em Um , Tiro 1 da Sorte , Tiro 2 da Sorte , Fechamento Um , Aleatório
fonte
Turtled , 164 bytes
Mais uma vez, mostrando o equilíbrio de Turtlèd entre golfiness e verbosidade para as coisas mais simples (como aumentar um número), Turtlèd supera todos, exceto os langs do golfe.
Experimente online
Observe que é meio zero indexado e metade um indexado; x é um indexado, y é zero indexado; 3,3 é um buraco em um
fonte
R,
230226 bytesGraças a @billywob por -2 bytes, perceber
M[a,b]
é equivalente aM[c]
em alguns casos.Irritantemente, as duas
cat
chamadas (!) Não podem sercat
conectadas em uma, pois ofill
argumento atrapalha a mensagem. Argh!fonte
function(x,y){M=matrix("|",10,10);M[2:9,]=" ";M[34]="0";M[4,2:3]="f";M[15]=">";m=switch(M[y,x],">"="Close One","f"="Lucky Shot","0"="Hole In One","Try again");M[y,x]="o";cat(m,"!\n",sep="");cat(gsub("f","|",M),sep="",fill=10)}
f=
da minha solução. Removido.