O Corpus é uma facção fictícia do popular videogame Warframe, que possui uma linguagem um tanto interessante.
Enquanto outras facções do jogo, como o Grineer, têm alguma lógica por trás do idioma, o Corpus é simplesmente uma substituição com perdas do idioma inglês.
Todas as palavras de Corpus são iguais às de outras línguas inglesas, exceto com os seguintes mapeamentos alfabéticos:
Isso causa alguns problemas com a pronúncia como:
yes
torna- yey
say
se yay
yay
torna- yay
sassy
se yayyy
case
torna- se torna- seyaye
Aqui está uma versão em texto dos mapeamentos:
a -> a
b -> t
c -> y
d -> p
e -> e
f -> t
g -> j
h -> k
i -> i
j -> t
k -> k
l -> p
m -> s
n -> t
o -> o
p -> k
q -> r
r -> t
s -> y
t -> p
u -> u
v -> t
w -> j
x -> k
y -> y
z -> b
O desafio
Fornecido texto usando o alfabeto inglês, produz a sua tradução para Corpus.
Por exemplo, o texto Hello, World!
fica Keppo, Jotpp!
em Corpus
As regras
- A entrada consistirá apenas em caracteres imprimíveis ASCII
- O texto de entrada pode conter espaços em branco e pontuação; eles devem ser preservados
- Letras maiúsculas devem ser preservadas
- Isso é código-golfe, então, naturalmente, o menor número de bytes vence!
Os casos de teste
Os casos de teste são separados por <===========>
, com uma linha em branco entre entrada e saída esperada
Hello, World!
Keppo, Jotpp!
<===========>
Yes
Yey
<===========>
TestcaSe
PeypyaYe
<===========>
Programming Puzzles and Code Golf
Ktojtassitj Kubbpey atp Yope Jopt
<===========>
This text has a
newline in it
Pkiy pekp kay a
tejpite it ip
<===========>
Corpus language best language
Yotkuy patjuaje teyp patjuaje
<===========>
Strip the flesh! Salt the wounds!
Yptik pke tpeyk! Yapp pke joutpy!
<===========>
"Install Warframe" they said, "It'll be fun" they said
"Itypapp Jatttase" pkey yaip, "Ip'pp te tut" pkey yaip
<===========>
What the **** did you just ****ing say about me, you little *****?
I'll have you know I graduated top of my class in the Navy Seals,
and I've been involved in numerous secret raids on Al-Quaeda,
and I have over 300 confirmed kills.
Jkap pke **** pip you tuyp ****itj yay atoup se, you pipppe *****?
I'pp kate you ktoj I jtapuapep pok ot sy ypayy it pke Taty Yeapy,
atp I'te teet ittoptep it tusetouy yeytep taipy ot Ap-Ruaepa,
atp I kate otet 300 yottitsep kippy.
O Bônus
Se você também incluir uma gravação de áudio (ou vídeo com áudio) pronunciando cada uma das traduções do Corpus do testcase, você poderá multiplicar sua contagem de bytes 1
como recompensa.
fonte
x * 1 == x
). É um puxão tongue-in-cheek na unpronouncability de muitas das traduçõesRespostas:
Bash + coreutils, 46
Experimente online!
fonte
05AB1E , 24 bytes
Explicação:
Experimente online!
fonte
Carvão , 42 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
fonte
T-SQL, 107 bytes
Quebra de linha e recuo são apenas para legibilidade.
Usa a função SQL 2017
TRANSLATE
para substituição de caracteres.Infelizmente tive que colocar (quase) todo o alfabeto lá duas vezes para manter a caixa. Provavelmente existem maneiras melhores, talvez algo que lide com o ' t ' como um grupo, mas isso funcionou para mim.
A entrada é feita através de uma tabela preexistente t com a coluna varchar v , de acordo com nossas regras de IO .
Nesse caso, a tabela deve ser criada usando um agrupamento com distinção entre maiúsculas e minúsculas , executando em um servidor com distinção entre maiúsculas e minúsculas ou usando a
COLLATE
palavra - chave (não contada no total de caracteres):fonte
JavaScript (Node.js) , 100 bytes
Experimente online!
fonte
R , 79 bytes
Experimente online!
Apenas 3 bytes mais curtos do que digitar literalmente as seqüências de substituição em maiúsculas e minúsculas juntas ...
R , 79 bytes
Experimente online!
Código mais sofisticado, mesma contagem de bytes.
fonte
Perl 5
-p
, 54 bytesExperimente online!
fonte
Ruby , 55 bytes
Experimente online!
fonte
J ,
78bytes 61-17 bytes graças ao FrownyFrog!
Experimente online!
fonte
C # (Compilador interativo do Visual C #) ,
15183 bytesExperimente online!
Economizou 68 bytes graças a Pietu1998!
fonte
Select
usando operadores bit a bit para revestimento.K (ngn / k) ,
8763616059 bytesExperimente online!
{
}
função com argumentox
_
para minúsculasa:
atribuir aa
!128
a lista0 1 2 ... 127
@[!128;
os;:;
valores dos índices o]
alteram, substituindo os elementos nos índices pelos valores fornecidos98+!25
a lista de98 99 100 ... 122
códigos ASCII para"bcd
...z"
justaposição é indexação, então usamos
a
(convertidos implicitamente em números inteiros) como índices na lista alteradax-a-
subtrair dea
, depois subtrair formax
; isso restaura maiúsculas / minúsculas como na string original`c$
converter em caracteresfonte
Retina 0.8.2 , 59 bytes
Experimente online! O link inclui casos de teste. Explicação:
Prefixe um caractere não ASCII para cada letra. (Tentei usar um espaço sem quebra, mas o Firefox pode ter alterado novamente para um espaço normal depois de copiar e colar.)
Maiúsculas todas as letras.
Converta as letras em Corpus.
Letras minúsculas após o caractere não ASCII e exclua o caractere não ASCII.
A solução ingênua é de 63 bytes:
Experimente online! O link inclui casos de teste.
fonte
Python 2 , 115 bytes
Experimente online!
Adaptado da resposta de @ ElPedro. Isso gera a substituição para todos os caracteres ascii na matriz
a
e depois os usastr.translate
.Pode ser trazido para 113 bytes se o retorno de uma matriz de caracteres for aceitável:
Experimente online!
fonte
Gelatina , 29 bytes
Experimente online!
fonte
“ØṖ¦Mṗẏʋ@¥;}/’ṃⱮØCŒH¤⁺żẎy
poupa 4. (não pode se livrar do 'y' comØY
uma vez que é sobre o direito do mapa)Japonês , 37 bytes
Experimente online!
O link acima inclui a maioria dos casos de teste, mas não consegui inserir o penúltimo como último, como uma string, pois contém aspas simples e duplas. Aqui está esse caso de teste, insira como uma matriz de caracteres.
Explicação:
fonte
Python 2 ,
138132 bytesExperimente online!
Realmente mais curto com uma função nomeada do que com uma lambda!
versão lambda, 138 bytes
Experimente online!
131125 se tivermos permissão para retornar uma matriz de caracteres e terjoin
a função externa.Experimente online!
fonte
a
eb
variáveis globaisPHP , 100 bytes
Código
Experimente online!
Explicação
fonte
Pyth, 35 Bytes
Tente!
Provavelmente poderia usar o mapa esquerdo ou algo assim para se livrar dos dois d's, mas não consegui descobrir como.
fonte
Java, 211 bytes
Experimente online!
fonte
Pyth, 34 caracteres
Experimente online!
A sequência é uma versão compactada do "typetjkitkpstokrtyputjkyb" . Por alguma razão, não consigo fazer o Pyth compactar "atypetjkitkpstokrtyputjkyb" com a função
mesmo que provavelmente salvasse um byte ou dois, pois os dois t's poderiam ser eliminados.fonte
Tcl , 114 bytes
Experimente online!
fonte
Lua , 153 bytes
Experimente online!
fonte