Escreva um programa retangular que produz o número de vezes que foi girado

63

O título diz tudo. Seu objetivo é escrever um programa que forme um retângulo de caracteres × × h que possa ser girado e execute novamente para gerar o número de rotações 90 ° no sentido anti-horário (CCW) que foram feitas.

Por exemplo, se o programa 3 × 2

abc
def

resolvido o problema, inicialmente produziria 0 e rotações sucessivas de 90 ° CCW

cf    fed    da
be    cba    eb
ad           fc

produziria 1, 2 e 3, respectivamente.

O uso de comentários faz desta uma tarefa trivial a maioria dos idiomas. Em Ruby, por exemplo, isso pode ser feito em um retângulo 7 × 7:

###p###
### ###
###1###
p 0#2 p
###3###
### ###
###p###

O desafio é fazer isso sem nenhum tipo de comentário.

Pontuação

Sua pontuação é w * h, a área do seu retângulo. Novas linhas são excluídas. Em outras palavras, code-golf, novas linhas não são contadas.

A pontuação para o exemplo do Ruby é 49 (embora, é claro, seja inválida, pois possui comentários).

Notas

  • Seu código deve ser realmente retangular, sem caracteres ausentes no final das linhas.
  • Se você desejar, pode gerar outros valores legais de "mod 90 °" em vez de 0 1 2 3. Portanto, 8 é bom em vez de 0 e -1 é bom em vez de 3, etc.
  • A saída pode ir para o console ou para um arquivo.
  • Aplicam-se brechas padrão.

Espero que isso, minha primeira pergunta, realmente intrigue algumas pessoas. Desfrutar!

Passatempos de Calvin
fonte
11
Para ser mais específico sobre o que é um comentário, um comentário é um código não avaliado? Código não analisado?
21468 isaacg
Quero dizer que nenhum dos "caracteres de comentário" tradicionais do seu idioma deve aparecer em nenhuma das quatro versões rotacionadas. Portanto, para C ++, duas barras próximas uma da outra nunca devem aparecer, embora uma possa ser usada sozinha. Da mesma forma com / *. Espero que isso esclareça.
9789 Calvin's Hobbies
E os idiomas que não possuem caracteres de comentário?
Isaacg
Então código como echo 0;exit;eno bash é permitido?
214138
Se não há como comentar, você não precisa se preocupar. @ user23013 Essa festa é boa.
9788 Calvin's Hobbies

Respostas:

43

APL (1x3 = 3)

5!3

Esta solução usa a regra extra de que qualquer saída que esteja correta no mod 4 funcione.

No APL, x!yé o número de maneiras de escolher xelementos y, comumente conhecido como binom(y,x)ou choose(y,x). Vamos verificar se cada rotação dá a resposta certa.

0 rotações

5!3

Não há como escolher 5 elementos de 3, então obtemos 0, que é impresso automaticamente.

1 rotação no sentido anti-horário

3
!
5

A APL avalia felizmente cada linha, obtendo o número 3, o operador !e o número 5, imprimindo apenas o último destes ( 5), que é 1 mod 4.

2 rotações no sentido anti-horário

3!5

Isto é binom(5,3), qual é (5*4*3*2*1)/(3*2*1)/(2*1) = 10, que é 2 mod 4.

3 rotações no sentido anti-horário

5
!
3

Como antes, apenas o último valor avaliado de 3é impressora.

Na verdade, eu não conheço o APL, então, por favor, me diga se tenho alguma explicação errada. Encontrei por tentativa e erro como o primeiro idioma neste site que:

  1. Imprime automaticamente o resultado de uma expressão
  2. Dadas várias linhas de expressão, apenas produz a última
  3. Não há problema com um operador sozinho na linha
  4. Leva operadores infix
  5. Possui um operador binário aritmético de caractere único que é assimétrico (aRb! = BRa) e flexível o suficiente para retornar uma variedade de números.

Em (5), desci a lista de funções diádicas da APL . Minha primeira operação candidata foi a divisão inteira /de C e Python 2, mas a divisão APL ÷fornece flutuadores. Exponenciação é tentador, mas falha porque ae a^btêm a mesma paridade, mas são obtidas por rotações consecutivas (a não ser b=0, mas então b^a=0). Operadores booleanos como <doação 0e 1180 graus de diferença, o que não funciona. Finalmente, encontrei o operador binomial !e tentei números até conseguir alguns que funcionassem.

Agradecemos a Quincunx por sua confiança de que existe uma solução menor que 2x2.

xnor
fonte
6
Cara, é bom ver uma resposta que usa uma linguagem não esotérica e ganha .
Stuart P. Bentley
Aceitei isso como a resposta, já que é a mais curta de acordo com minhas regras, mas quero fazer da resposta de Ventero ( codegolf.stackexchange.com/a/33162/26997 ) uma menção muito honrosa. Segue a verdadeira essência do problema.
Calvin Hobbies
Também funciona em J na forma exata que você forneceu.
ɐɔıʇǝɥʇuʎs
Na verdade, o APL não imprime tanto o 3 quanto o 5 na rotação de 90 °?
FUZxxl
@FUZxxl Acho que isso só funciona em ngn / apl.
Adám 28/11/16
40

Rubi, 7 × 9 (63)

 30;p  
0||p=p 
0|0;p;p
;p;p|p;
p=p ||0
;p   p;
2||p =p
 00;1  
     p 

Um pouco mais do que a outra solução, mas pelo menos essa solução não depende de qualquer impressão implícita ou abuso de regras. Para todas as quatro rotações, o código completo é analisado e, com exceção de um curto-circuito, tudo é executado. Surpreendentemente, não há absolutamente nenhuma simetria no código

Esta solução depende do fato de que ainda é possível chamar a pfunção (que é usada para imprimir os números), mesmo que uma variável com o mesmo nome já tenha sido definida. Por exemplo, algo como p pchama a função pcom a variável pcomo argumento (assim, imprimindo o valor de p).

Explicação para algumas das expressões comuns usadas no código:

  • p: Como mencionado acima, isso é uma chamada de função ou uma variável. Quando a variável não está definida, isso chama a função psem argumentos, que não faz nada e retorna nil.
  • p p: Imprime a variável p.
  • p|x: Quando pé a função, isso é idêntico a nil|x, que retorna verdadeiro / falso, dependendo do valor de x. Se pé um número inteiro, é bit a bit ou. De qualquer forma, esta afirmação não tem efeito colateral.
  • p=p||x: Efetivamente o mesmo que p||=x(atribuição condicional) com a vantagem de ser sintaticamente válido e não-op quando revertido.

Versão simétrica (9 × 10 = 90)

    p    

  0 * 0  
  00100  
  0||2* p
p *0||0  
  00300  
  0 * 0  

    p    

Esta é a solução simétrica mais curta (C 2 ao ignorar os números a serem impressos) que eu poderia apresentar.

Script de teste

Aqui está um script de teste para verificar o código acima (o #final da linha foi adicionado para que o espaço em branco não seja removido e seja removido antes da execução):

rotate=->s{s.split($/).map{|i|i.chars.reverse}.transpose.map(&:join).join($/)}

s=<<EOD.gsub(?#,"")
 30;p  #
0||p=p #
0|0;p;p#
;p;p|p;#
p=p ||0#
;p   p;#
2||p =p#
 00;1  #
     p #
EOD


puts ">>> 0°"
eval s
puts ">>> 90°"
eval rotate[s]
puts ">>> 180°"
eval rotate[rotate[s]]
puts ">>> 270°"
eval rotate[rotate[rotate[s]]]
Ventero
fonte
10
Pode não ser o mais curto, mas isso é exatamente o tipo de brilho ofuscado eu estava procurando: D
de Calvino Hobbies
11
@ Calvin'sHobbies Isso atende à restrição "Seu código deve realmente ser retangular, sem caracteres ausentes no final das linhas"?
Joshua Taylor
@ JoshuaTaylor É retangular, algumas linhas são preenchidas com espaços (o que, para mim, é um personagem). Se isso não iria cumprir a restrição, por qualquer razão, eu também poderia pad as linhas com ponto e vírgula em vez ...
Ventero
@ Ventero Eu certamente espero que isso seja legal; Eu só estou tentando entender o que significou a pergunta.
21414 Joshua Taylor
11
O @Ventero Padding com espaços (ou realmente qualquer coisa além de comentários e novas linhas) está ótimo.
22714 Calvin's Hobbies
33

GolfScript, 4 (2x2)

43
12

Imprime 4312qual é 0(mod 4). As rotações são impressas 3241(1 mod 4), 2134(2 mod 4) e 1423(3 mod 4).

Solicitado por:

Se você desejar, pode gerar outros valores legais de "mod 90 °" em vez de 0 1 2 3. Portanto, 8 é bom em vez de 0 e -1 é bom em vez de 3, etc.

Na verdade, existem muitos conjuntos de números para os quais isso funciona. Eu os encontrei com este programa Python:

def f(a,b,c,d):
    return int("%i%i%i%i"%(a,b,c,d))
for a in range(10):
    for b in range(10):
        for c in range(10):
            for d in range(10):
                candidate = f(a,b,c,d) % 4 == 0
                candidate &= f(b,d,a,c) % 4 == 1
                candidate &= f(d,c,b,a) % 4 == 2
                candidate &= f(c,a,d,b) % 4 == 3
                if candidate:
                    print("%i, %i, %i, %i"%(a,b,c,d))

Embora o programa produza 0s (o que provavelmente não funcionaria), as soluções válidas são da forma

ab
cd

Onde a∈{4,8}, b∈{3,7}, c∈{1,5,9}, d∈{2,6}. IE, (a,b,c,d)∈{4,8}×{3,7}×{1,5,9}×{2,6}que são 24 soluções.

Justin
fonte
7
Muito esperto. Sinceramente, pensei que essa regra extra era inócua.
Hobbies de Calvin
4
@ Todo mundo Observe que este não é o menor programa possível. Um 2x1 é possível e é o menor possível. Então comece a trabalhar!
7267 Justin
11
@isaacgYour score is w*h, the area of your rectangle. Newlines are excluded. In other words, code-golf, newlines not counted.
undergroundmonorail
2
@ Quincunx Bem, então publicá-lo!
tomsmeding
11
Supondo que o idioma aqui simplesmente imprima o último número avaliado, não acredito que exista uma solução 1 * n (um número) para qualquer n. Isso ocorre porque a paridade do número inteiro é igual à paridade do dígito mais à direita, mas as rotações separadas por 90 graus devem produzir paridades diferentes. Portanto, 2*2é o mínimo para essa abordagem.
Xnor
30

Python - 23 x 23 = 529

Ok, esta pergunta já foi vencedora, mas ainda não existe uma solução Python. Então eu pensei sobre isso - fortemente! - e encontrou uma maneira de fazer com que o printcomando volumoso funcionasse em qualquer direção sem gerar erros quando analisado de uma das outras direções.

O avanço foi a seguinte linha:

'"\'';forward_code;"';backward_code;""\'"''

Enquanto o forward_codeé executado, o backward_codefaz parte de uma sequência e, portanto, não é impresso. É exatamente o contrário ao ler para trás.

Então, combinada com mais duas direções e ajustada para obter todas as cotações correspondentes corretamente, acabo com a seguinte solução:

''"''""''"''"''"'"''""'
"  ""                 "
"  \\                 "
'"\'';print 1;"'""\'"''
'"\''"';3 tnirp;""\'"''
"  ;""                "
"  p'                 "
'  r;                 '
'  i2                 '
"  n                  "
"  tt                 "
'   n                 '
'  4i                 '
"  ;r     .-=<>=-.    "
' \"p    /__----__\   '
"  ';'  |/ (')(') \|  "
"  ""    \   __   /   "
'  ""    .`--__--`.   '
"  \\   /    :|    \  "
'  ''  (_)   :|   (_) '
'  ""    |___:|____|  '
"  ''    |_________|  "
''"''""''"''"''"'"''""'

Edit: Encontrei uma maneira de lidar com todo esse espaço em branco. ;)

Falko
fonte
Existe alguma maneira de colocar também p=printno arquivo, já que você tem tanto espaço em branco atualmente? (Python 3, é claro)
isaacg
@isaacg: Acho que não. A definição p=printtambém é longa. E mais importante: você não pode reutilizar pdepois de girar o código!
Falko
Acho que você está certo. São duas más, no entanto.
Isaacg
12
Nomeado: Prêmio de Melhor Uso do Espaço em Branco.
primo
24

BASIC, 64

Não vai ganhar, mas aqui está assim mesmo. (Testado no Chipmunk Basic )

?0:END:?
:::::::1
D:::::::
N::::::E
E::::::N
:::::::D
3:::::::
?:DNE:2?

Nota: ?é uma abreviação para PRINTvários dialetos do BASIC. Embora existam muitos erros de sintaxe no código, a ENDinstrução na primeira linha impede que eles sejam vistos pelo intérprete.

ossifrage melindroso
fonte
11
Na verdade, suas pontuações são 64 e 16, respectivamente. Novas linhas não contam. Além disso, por que não dividir a resposta?
7267 Justin
Oh, perdi esse pedaço. Eu teria dividido as respostas se elas não estivessem ocupando o último lugar comum. Não parece ser muito ponto de outra forma :-)
ossifrage escrúpulos
Você não é mais o último :-)
Justin
Eu daria a você pontos de bônus por obter um bom número de caracteres. O +1 real é para o uso criativo de alguns END:) :) #
1007
21

Pitão , 9 caracteres (3x3)

0 1

3 2

Em pyth, tudo é impresso por padrão, a menos que seja precedido por um espaço. Linhas após a primeira linha são para entrada do usuário e não são avaliadas neste programa.

Outra maneira de obter 9 caracteres:

"0"
3 1
"2"

Pyth 1.0.5 , 4 caracteres

Embora alterações recentes no pyth tenham tornado mais difícil a geração de números de 2 dígitos (uma alteração que estou pensando em reverter), as versões mais antigas do Pyth têm uma geração fácil de números de dois dígitos, que, combinada com a impressão implícita e o fato de que todas as linhas, exceto a primeira são ignorados, fornece a seguinte solução:

32
41

Imprime 32,21,14,43.

isaacg
fonte
Bem, isso é divertido. +1
ver
Shucks, eu esperava que não fosse assim tão fácil. Faltam 3 caracteres na linha do meio, mas acho que isso se deve à formatação automática aqui.
9788 Calvin's Hobbies
@ Calvin'sHobbies Desculpe, entendo. Chomped meus espaços de fuga.
Isaacg
@ Quincunx Oh, eu perdi essa parte da pontuação. Obrigado pelas correções.
Isaacg
18

Befunge, 16

0.@1
@@@.
.@@@
[email protected]

Explicação: Dígitos de 0para 9empurrar o número correspondente na pilha, .exibe um valor da pilha e o imprime como um número inteiro e @finaliza o programa.

(testado aqui )

ossifrage melindroso
fonte
Isso não gera o número de vezes que foi girado no sentido anti-horário?
seequ
@TheRare Sim. Faz. Isso é o que deve fazer.
11743 Justin
11
Eu pareço ser totalmente cego. Tenha um +1 por causa disso.
seequ
Befunge !!! Ainda é minha língua favorita de todos os tempos para sempre eternamente!
Steffen
16

Piet, 49

Um programa Piet

Fiz questão apenas de usar as cores amarela e vermelha e tentar torná-la mais ou menos simétrica. Quando girado, imprime 0, 1, 2 ou 3. Sair do programa em Piet é difícil e ocupa, infelizmente, metade do espaço da imagem.

Tryth
fonte
11
Parece a ferramenta certa para o trabalho.
Robert Fraser
O_o, eu chorei descobrindo sobre essa linguagem de programação! Agora mesmo. Bela. De muitas maneiras! Obrigado!
Steffen
15

GNU dc , 6 (3x2)

Eu acho que esta é a resposta mais curta para não exigir o relaxamento da regra "mod 90 °":

3z1
0p2

Saídas 0, 1, 2ou 3para cada rotação.

Para as rotações 0, 2e 3, psimplesmente aparece e imprime o último número literal que foi enviado à pilha. Para a 1rotação, zempurra a profundidade atual da pilha (1) para a pilha, depois a ppopa e a imprime.

Trauma Digital
fonte
11
Então 311 / 0p2 também funcionaria?
1311 Neil
@ Neil Sim, bom. Não afeta a pontuação de golfe embora :)
Digital Trauma
Isso afeta a pontuação do golfe, mas negativamente, uma vez que novas linhas não são contadas, mas barras são.
M.Herzkamp 31/08/2015
@ M.Herzkamp Minha suposição era que Neil quis dizer 311\n0p2, onde \né um personagem de nova linha. Caso contrário, não teria sentido no contexto de dc.
Digital Trauma
10

GolfScript, 9 (3x3)

0}1
} }
3}2

Meio que abusando das regras. O }acontece para terminar o programa, se não houver correspondência {, e o conteúdo da pilha são impressos no final do programa.

Justin
fonte
Não se esqueça de contar a nova linha como personagem.
Isaacg
2
@isaacgYour score is w*h, the area of your rectangle. Newlines are excluded. In other words, code-golf, newlines not counted.
undergroundmonorail
Eu não sabia que isso }pode ser desequilibrado. Bom truque.
Peter Taylor
9

JavaScript, 4

03
12

Quando você executa este programa (ou uma rotação deste programa) em um console javaScript, apenas a última linha é avaliada e ecoada no console.

Assim:

12 modulo 4 == 0
01 modulo 4 == 1
30 modulo 4 == 2
23 modulo 4 == 3

Aqui estão todos os programas 2x2 semelhantes que também funcionam:

03
12

03
16

03
52

03
56

03
92

03
96

07
12

07
16

07
52

07
56

07
92

07
96

43
12

43
16

43
52

43
56

43
92

43
96

47
12

47
16

47
52

47
56

47
92

47
96

83
12

83
16

83
52

83
56

83
92

83
96

87
12

87
16

87
52

87
56

87
92

87
96

Em outros termos,

ab
cd

onde a está em [0,4,8], b está em [3,7], c está em [1,5,9] e d está em [2,6]

xem
fonte
8

CJam / GolfScript - 3 * 3

2;3
;7;
1;0

O ponto e vírgula exibe o número anterior, portanto, apenas o canto inferior direito é impresso.

aditsu
fonte
6

Aheui , 8

바몽희뷸
뷷희몽반

Como Aheui não possui uma letra que empurre 1 na pilha, decidi imprimir 0, 5, 2 e 3.

Explicação: 바 e 반 pressionam 0 e 2, respectivamente, na pilha e movem o cursor para a direita por um caractere. 뷷 e 뷷 pressionam 5 e 3, respectivamente, na pilha e move o cursor para baixo em dois caracteres. 몽 aparece e imprime o número na pilha e move o cursor para cima em um caractere. 희 finaliza o programa.

fsfd1100
fonte
5

Javascript

(Introduzido no console do navegador, shell ou outro REPL, para que o resultado seja impresso)

1+2
-3-
4+5

Deve funcionar para qualquer outro idioma com expressões, novas linhas não significativas e impressão automática do resultado.

lrn
fonte
2
Gosto da ideia por trás disso, mas ela nem sempre imprime 1 (mod 4)?
Zennehoy
2
Uma variação mais simples pode ser '2,3\n,0,\n1,0'.
Keen
Dá resultados diferentes quando girado. @Cory, isso é inteligente! Estou muito acostumado a trabalhar em um idioma sem o operador de vírgula.
LRN
@lrn Sim, fornece resultados diferentes, mas esse não é o requisito. O programa tem para imprimir 0 (mod 4) quando não estiver girada, e 1, 2 ou 3 (mod 4) quando girado o respectivo número de vezes ...
zennehoy
A segunda nota do pôster original permite quaisquer valores para as versões rotacionadas, desde que sejam distintas.
LRN
5

Matlab / Oitava - 144 100

Golfe: 10 x 10 = 100

....d.....
....i.....
....s.....
... p2 ...
disp  1...
...3  psid
... 4p ...
.....s....
.....i....
.....d....

Solução alternativa: 15 x 15 = 225

.......d.......
.......i.......
.......s.......
...    p    ...
...         ...
...    4    ...
...    .    ...
disp 1...3 psid
...    .    ...
...    2    ...
...         ...
...    p    ...
.......s.......
.......i.......
.......d.......
Falko
fonte
A primeira solução pode ser reduzida para o tamanho 8x8, se os operadores horizontais e horizontais 'disp' compartilharem a letra 'p'? ...d.... ...i.... ...s2... disp 1.. ..3 psid ...4s... ....i... ....d...
AMK
@ AMK: Infelizmente, isso produz um erro de sintaxe na linha ..3 psid. Você precisa de pelo menos três pontos no início de cada linha para indicar uma quebra de linha e ignorar os caracteres restantes.
Falko
5

Perl 5x7 (35)

1+p+t+1
-print+
1+i+i+1
+tnirp+
1+t+p+1

Um pouco atrasado para a festa. O solitário -determina qual número é impresso.

primo
fonte
4

JavaScript, 3

2
1
4

Funciona ... na base 7.

Versão base 9:

2
7
0

Explicação

Quando executado interativamente, por exemplo, a partir de um console de depuração, o valor da última instrução / expressão será gerado.

4 7 = 4 100 (mod 4 )
412 7 = 205 101 (mod 4 )
2 7 = 2 102 (mod 4 )
214 7 = 109 103 (mod 4 )

Soluções semelhantes podem ser encontradas para qualquer base ímpar.

user29124
fonte
Isso foi sinalizado, mas eu não entendi a pergunta ou a resposta, então tive que ignorá-la. Seria bom se os votantes negativos deixassem um comentário explicando seus votos negativos.
Rainbolt
@Rusher Eu suspeito que eles não entenderam a base de 7 bits.
primo
3

Befunge, 12 (6x2)

Consegui apresentar uma pequena melhoria na resposta existente do Befunge, aproveitando ao máximo a natureza bidimensional do Befunge e fazendo com que o caminho do código fosse executado verticalmente em duas das orientações.

[email protected]
[email protected]

Experimente online: Início 0 , Rotação 1 , Rotação 2 , Rotação 3 .

James Holderness
fonte
2

Marbelous, 7 * 14 = 98

.. \/ \/ .. ..
.. 31 \\ 32 \/
\/ \\ \/ \\ \/
\/ 30 \\ 33 ..
.. .. \/ \/ ..
Blake Thomas
fonte
Você espera que cada célula permaneça intacta quando rotacionada?
Sparr
2

Argh! / Aargh! (4 * 4 = 16)

O que houve com o uso da ferramenta certa para o trabalho? Não há comentários (no idioma em geral).

Toda a família de programas (gerada em J: ((|.@:|:) ^: (i. 4)) >'hpqh';'q01p';'p32q';'hqph'ou ((|.@:|:) ^: (i. 4)) 4 4 $ 'hpqhq01pp32qhqph')

hpqh
q01p
p32q
hqph

girado uma vez:

hpqh
q12p
p03q
hqph

girado duas vezes:

hpqh
q23p
p10q
hqph

girado três vezes:

hpqh
q30p
p21q
hqph

Para explicar isso, talvez seja melhor consultar uma versão "recuada" (que também funciona em todas as rotações):

hhpq h
  0  h
q   1p
p3   q
h  2  
h qphh

Esta versão mostra que o programa consiste em 4 partes separadas, uma para cada rotação individual.

  • h - ajuste o fluxo de controle para a esquerda

  • p - imprime item na varredura de dados / código abaixo dele

  • q - saia do programa

ɐɔıʇǝɥʇuʎs
fonte
2

Flutuador - 9 × 5 = 45

insira a descrição da imagem aqui

Imprime 4, 1, 2 ou 3 no console.

Observe que 'Black' é uma instrução válida (NOP) e é sintática. Sem ele, ele não consegue encontrar a posição inicial. Assim, todas as posições no retângulo são ocupadas.

Mark Jeronimus
fonte
1

Elemento, 2x3 = 6

1*
`2
3 

Esta é uma melhoria em relação à solução ingênua 3x3, que possui uma `no meio com um número em cada lado. O caso 0, mostrado acima, é o mais interessante, já que o *é usado para multiplicar os 3 por nada para obter 0. Fora isso, não é tão complicado.

Se você achar o espaço estranho, poderá substituí-lo por praticamente qualquer outro caractere, exceto []{}`_.

Para referência, aqui estão as outras três rotações:

case 1
*2 
1`3

case 2
 3
2`
*1

case 3
3`1
 2*
PhiNotPi
fonte
0

Chip, (2x5) 10

b~
+a
~t
e*
 f

*ativa todos os elementos vizinhos: norte, leste, sul e oeste (origem)
~se não for ativado a partir do oeste, ativa o vizinho leste (NOT-gate) (nunca ativado aqui)
tfinaliza a execução após a impressão do byte atual
adefinir o bit 0x01dos
bconjuntos de saída o bit 0x02da saída
edefine o bit 0x10da saída
fdefine o bit 0x20da saída,
+se ativado por qualquer vizinho, ative todos os outros vizinhos (fio)

O chip requer o -wsinalizador (para permitir a execução sem entrada) ou alguma entrada para ser executado.

Prints 0, 1, 2, ou 3em ASCII. Se os pontos de código 0x00para 0x03se desejado, remover o ee f, em seguida, deslocar o espaço até preencher a lacuna.

Phlarx
fonte
0

Japt , 3 * 1 = 3 bytes

5zB

Experimente on-line: como está , girado uma vez , duas vezes , três vezes .

Saídas 0, 5, 2, 11 respectivamente.

A variável Bpossui o valor 11 e Number.z(other)é a divisão do piso (todos procuraram aparentemente: p). Para código de várias linhas, a última linha é passada para a saída, o que é simplesmente uma constante aqui.


2 * 2 = 4 bytes

2J
1T

Experimente on-line: como está , girado uma vez , duas vezes , três vezes .

Saídas 0, 21, 2, -1 respectivamente.

Tdetém 0 e Jdetém -1.

O truque é que, se dois literais ou variáveis ​​forem colocados lado a lado, uma vírgula será inserida e a saída será apenas a última.

A solução 2 * 2 JS também funciona em Japt.

Bubbler
fonte