Divirta-se com este, The Powder Toy é um desafio interessante para o golfe, especialmente com a lógica do filt.
O que faz do TPT um desafio são as muitas e muitas maneiras de abordar um problema: Should I use Cellular Automaton rules, SWCH logic, Filt logic, subframe filt logic, and/or wall logic?
Como tal, um local para obter dicas para o golfe TPT seria bastante útil, por isso fiz essa pergunta.
Esse encadeamento provavelmente usará muitas abreviações. Muitos deles serão elementos do jogo, portanto, pesquisá-los no Wiki trará muitas informações sobre eles, como são.
Aqui estão os mais comuns que você provavelmente verá neste tópico, com a descrição do jogo anexada (e o nome completo), para pessoas que não desejam pesquisar:
- SPRK: Eletricidade. A base de todos os componentes eletrônicos no TPT viaja ao longo de fios e outros elementos condutores.
- FILT: Filtro. Filtrar por fótons, muda a cor.
- ARAY: Ray Emitter. Os raios criam pontos quando colidem.
- Bateria: Bateria. Gera eletricidade infinita.
- DRAY: raio duplicador. Duplica uma linha de partículas à sua frente.
- CRAY: Emissor de raios de partículas. Cria um feixe de partículas definido por seu tipo, com um intervalo definido por tmp.
- SWCH: interruptor. Conduz apenas quando ligado. (PSCN liga, NSCN desliga)
code-golf
tips
the-powder-toy
code-golf
number
array-manipulation
integer
code-golf
string
decision-problem
boggle
code-golf
array-manipulation
average
code-golf
math
code-golf
decision-problem
restricted-source
code-golf
code-golf
math
primes
code-golf
random
code-golf
tips
perl
code-golf
string
parsing
code-golf
math
number
decision-problem
code-golf
math
number
code-golf
string
alphabet
code-golf
math
geometry
code-golf
interpreter
brainfuck
code-golf
code-golf
decision-problem
boggle
code-golf
math
number
sequence
code-golf
math
code-golf
ascii-art
code-challenge
restricted-source
quine
code-golf
math
decision-problem
number-theory
primes
code-golf
ascii-art
code-golf
integer
graph-theory
chess
code-golf
math
interpreter
code-golf
code-golf
code-golf
ascii-art
code-golf
arithmetic
number-theory
code-golf
string
kolmogorov-complexity
code-golf
string
decision-problem
code-golf
primes
factoring
encode
code-golf
decision-problem
code-golf
geometry
grid
code-golf
quine
code-golf
matrix
code-golf
matrix
code-golf
code-golf
number
array-manipulation
code-golf
array-manipulation
sorting
code-golf
matrix
code-golf
brain-flak
moonheart08
fonte
fonte
Respostas:
Use apenas lógica de subquadro quando for menor
E, para máquinas mais complexas, geralmente é muito menor.
O sub-quadro geralmente impõe a sobrecarga de criação de SPRK sólido (cerca de 3 pixels para a maioria das direções, um pixel extra comparado a apenas um BTRY), 'canais' FILT (para transferência rápida de BRAY) e minimiza a quantidade de lógica não-sub-quadro, mesmo que seja menor , por ser muitas vezes (4x a 20x-30x mais lento!) mais lento.
A lógica de subquadro é geralmente boa para operações complexas (que é a maioria dos desafios aqui), mas para os mais simples, a lógica de subquadro provavelmente não é ideal.
fonte
Conheça os seus modos FILT
FILT é, pelo menos para a lógica FILT e subquadro, a pedra angular da computação no TPT. E, como tal, possui vários truques para facilitar sua vida, na forma de vários modos. Você define um modo FILT usando
tmp
, mas uma lista abrangente que descreve os meandros desses modos não é realmente uma coisa no momento. FILT recebe duas entradas: é de cor própria (CTYPE) e a cor com a qual está interagindo, BRAY ou CRAY. Vou rotular estes FILTC e INTRC, respectivamente, para esta lista.Modo 0:
O modo mais simples, define INTRC para o valor de FILTC, nada mais.
Modo 1:
Este é um AND binário, que une INTRC e FILTC, configurando INTRC para o resultado.
Modo 2:
Este é um OR binário, que reúne INTRC e FILTC, configurando INTRC para o resultado.
Modo 3:
Este modo é um pouco mais complicado, e reúne o inverso de FILTC e INTRC, configurando INTRC para o resultado.
Modo 4:
Este modo é um pouco mais difícil de descrever. É um desvio para o vermelho (desvio para a esquerda binário),
O problema aqui é que a quantidade alterada é controlada por sua temperatura, com a equação (Temperature-273.0) * 0.025, padronizando um deslocamento de 1 se o valor for menor que 1. Você pode obter uma alteração de qualquer quantidade necessária multiplicando o número de bits necessários por 40 e adicionando 273,0. Eu chamarei a quantidade deslocada de X.
Como tal, INTRC é deslocado para a esquerda por X, configurando INTRC para o resultado.
Modo 5:
Este é essencialmente o modo 4, mas com a mudança à direita. Veja as informações no modo 4 para saber como usá-lo.
Modo 6:
Faz nada.
Modo 7:
Executa um XOR binário em INTRC e FILTC, configurando INTRC para o resultado.
Modo 8:
Executa um binário NOT on INTRC, configurando INTRC para o resultado.
Modo 9:
Define INTRC para uma cor aleatória.
Modo 10:
Executa uma versão diferente de um desvio para o vermelho.
[TODO: descubra como descrever]
Modo 11:
Executa uma versão diferente de um deslocamento para azul.
[TODO: descubra como descrever]
fonte