Aqui está uma placa do jogo da velha:
a b c
| |
1 - | - | -
_____|_____|_____
| |
2 - | - | -
_____|_____|_____
| |
3 - | - | -
| |
Dado um conjunto de movimentos, imprima o quadro com as fichas ativadas.
A entrada será recebida como movimentos separados por espaços, sendo cada movimento:
- Primeiro, o token que está indo
- Em seguida, a letra da coluna que está sendo movida
- Por último, o número da linha em que está passando
Observe que regras normais do jogo da velha não importam.
Além disso, não há necessidade de imprimir as letras e os números.
Por exemplo, a entrada Ob2 Xc2 Ob3 Xa1
resultaria em
| |
X | - | -
_____|_____|_____
| |
- | O | X
_____|_____|_____
| |
- | O | -
| |
Lembre-se de que isso é código-golfe , portanto o código com o menor número de bytes vence.
Classificação
Aqui está um snippet de pilha para gerar uma classificação regular e uma visão geral dos vencedores por idioma.
Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:
# Language Name, N bytes
onde N
está o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Se você quiser incluir vários números no cabeçalho (por exemplo, porque sua pontuação é a soma de dois arquivos ou você deseja listar as penalidades do sinalizador de intérpretes separadamente), verifique se a pontuação real é o último número no cabeçalho:
# Perl, 43 + 2 (-p flag) = 45 bytes
Você também pode transformar o nome do idioma em um link que será exibido no snippet do placar de líderes:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
fonte
1 2 3
paraXb3
(não precisa ser exatamente isso).Respostas:
JavaScript (ES6),
136133129 bytesfonte
Python (2.7),
188180 bytesfonte
'
s;
permitindo que você coloque todo o seu código em uma linha para economizar no recuo.for y in '123'
->for y in'123'
. Além disso, o que o xnor disse: você pode transformar sua função em uma linha, usando;
para separar instruções. Usando todas essas dicas de golfe, você pode jogar golfe com 6 bytes.Python 2, 112 bytes
Nove linhas são impressas correspondendo aos índices de linha
r
. O índice da linha é contado de3
até11
em umexec
loop. Cada linha consiste em linhas verticais que|
unem três segmentos de 5 caracteres que alternam entre:O tipo é feito para alternar com
r%3
, exceto que a última linha possui espaços em vez de sublinhados, alcançados comr%11%3
.Para encontrar o símbolo do jogador para a célula atual, observamos o número da linha
r/3
e a letrac
da coluna de"abc"
. Nós as concatenamos para criar uma sequência de dois caracteresb3
, encontrar o índice na sequência de entrada e pegar o símbolo (X
ouO
) um índice anteriormente. Se nenhum dos jogadores jogou lá, ofind
padrão será o-1
que diminui para-2
. Nós cortars[-2]
a ser-
anexando dois personagens quando tomamos entrada.fonte
PHP, 187 bytes
Pega a entrada como string. Se eu pudesse usar uma matriz, ela pode ser reduzida para, em
$_GET[a]
vez deexplode(" ",$_GET[a])
207 bytes
A ideia mais simples de criar esses 194 bytes
fonte
Mathematica, 205 bytes
Isso seria bem mais curto se eu pudesse usar o built-in ... (92 bytes)
fonte
Java, 138 bytes
Editar:
Snipet:
Código:
fonte
o[a[1]-'a'][a[2]-'0']=a[0]
pode ser jogado por dois bytes parao[a[1]-97][a[2]-48]=a[0]
Lote,
341339305287 bytesAssume saída consistente. Editar: salvou 2 bytes removendo espaços desnecessários. Economizou 34 bytes escrevendo a saída usando um
for
loop. Salva 18 bytes, eliminando a sub-rotina.fonte
Autovim , 110 bytes (não competindo)
Teste a condução do Autovim ... Essa é praticamente uma resposta do Vimscript. Não competindo porque o Autovim ainda está sendo desenvolvido.
Para executá-lo:
Ungolfed:
Explicação a seguir se houver interesse :)
fonte
Groovy, 174 bytes
ungolfed:
fonte
CJam, 62 bytes
Experimente online
Explicação:
fonte