Die Corpus sind eine fiktive Fraktion aus dem beliebten Videospiel Warframe , die eine etwas interessante Sprache haben.
Während andere Fraktionen im Spiel, wie der Grineer, eine gewisse Logik hinter ihrer Sprache haben, ist der Corpus einfach ein verlustreicher Ersatz für die englische Sprache.
Alle Corpus-Wörter sind mit den englischen Wörtern identisch, mit Ausnahme der folgenden alphabetischen Zuordnungen:
Dies verursacht einige Probleme bei der Aussprache als:
yes
wird yey
say
wird yay
yay
wird yay
sassy
wird yayyy
case
wirdyaye
Hier ist eine Textversion der Zuordnungen:
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
Die Herausforderung
Geben Sie den Text mit dem englischen Alphabet aus und geben Sie die Corpus-Übersetzung aus.
Zum Beispiel kann der Text Hello, World!
wird Keppo, Jotpp!
in Corpus
Die Regeln
- Die Eingabe besteht nur aus druckbaren ASCII-Zeichen
- Eingabetext kann Leerzeichen und Interpunktion enthalten, diese müssen erhalten bleiben
- Die Großschreibung von Buchstaben muss erhalten bleiben
- Das ist Codegolf, also gewinnen natürlich die wenigsten Bytes!
Die Testfälle
Testfälle werden <===========>
mit einem Leerzeichen zwischen Eingabe und erwarteter Ausgabe getrennt
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.
Der Bonus
Wenn Sie auch eine Audioaufnahme (oder ein Video mit Audio) von Ihnen einschließen, in der jede der Corpus-Übersetzungen des Testfalls ausgesprochen wird, können Sie Ihr Bytecount 1
als Belohnung mit multiplizieren .
quelle
x * 1 == x
). Es ist ein Augenzwinkernder Scherz über die Unaussprechlichkeit vieler ÜbersetzungenAntworten:
Bash + Coreutils, 46
Probieren Sie es online!
quelle
05AB1E , 24 Byte
Erläuterung:
Probieren Sie es online!
quelle
Holzkohle , 42 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
quelle
T-SQL, 107 Bytes
Zeilenumbruch und Einzug dienen nur der Lesbarkeit.
Verwendet die SQL 2017-Funktion
TRANSLATE
zum Ersetzen von Zeichen.Leider musste (fast) das gesamte Alphabet zweimal dort hineingesteckt werden , um die Gehäuse zu erhalten. Es gibt wahrscheinlich bessere Möglichkeiten, vielleicht etwas, das das t behandelt als Gruppe umgeht, aber das hat bei mir funktioniert.
Die Eingabe erfolgt über eine bereits vorhandene Tabelle t mit Varchar - Spalte v , je unseren IO Regeln .
In diesem Fall muss die Tabelle mit einer Sortierung erstellt werden, bei der zwischen Groß- und Kleinschreibung unterschieden wird , entweder indem sie auf einem Server mit Groß- und Kleinschreibung ausgeführt wird, oder indem das
COLLATE
Schlüsselwort verwendet wird (das nicht zur Gesamtsumme der Zeichen gezählt wird):quelle
JavaScript (Node.js) , 100 Byte
Probieren Sie es online!
quelle
R , 79 Bytes
Probieren Sie es online!
Nur 3 Bytes kürzer als das gleichzeitige Eingeben von Ersetzungszeichenfolgen in Klein- und Großbuchstaben ...
R , 79 Bytes
Probieren Sie es online!
Fancier Code, gleiche Byteanzahl.
quelle
Perl 5
-p
, 54 BytesProbieren Sie es online!
quelle
Ruby , 55 Bytes
Probieren Sie es online!
quelle
J ,
7861 Bytes-17 Bytes dank FrownyFrog!
Probieren Sie es online!
quelle
C # (Visual C # Interactive Compiler) ,
15183 ByteProbieren Sie es online!
Dank Pietu1998 konnten satte 68 Bytes gespart werden!
quelle
Select
s kombinieren und bitweise Operatoren für die Gehäuse verwenden.K (ngn / k) ,
8763616059 BytesProbieren Sie es online!
{
}
Funktion mit Argumentx
_
in Kleinbuchstabena:
zuweisena
!128
Die Liste0 1 2 ... 127
@[!128;
Indizes;:;
Werte]
es ändern , indem die Elemente zu ersetzen Indizes mit den gegebenen Werten98+!25
die Liste,98 99 100 ... 122
die die ASCII-Codes für"bcd
...z"
Die Gegenüberstellung ist eine Indizierung, daher verwenden wir
a
(implizit in Ganzzahlen konvertiert) als Indizes in der geänderten Listex-a-
subtrahieren vona
, dann subtrahieren Formx
; Dadurch wird Groß- / Kleinschreibung wie in der ursprünglichen Zeichenfolge wiederhergestellt`c$
in Zeichen konvertierenquelle
Retina 0.8.2 , 59 Bytes
Probieren Sie es online! Link enthält Testfälle. Erläuterung:
Stellen Sie jedem Buchstaben ein Nicht-ASCII-Zeichen voran. (Ich habe versucht, ein nicht unterbrechendes Leerzeichen zu verwenden, aber Firefox hat es nach dem Kopieren und Einfügen möglicherweise wieder in ein normales Leerzeichen geändert.)
Versehen Sie alle Buchstaben mit Großbuchstaben.
Konvertieren Sie die Buchstaben in Corpus.
Kleinschreibung der Buchstaben nach dem Nicht-ASCII-Zeichen und Löschen des Nicht-ASCII-Zeichens.
Naive Lösung ist 63 Bytes:
Probieren Sie es online! Link enthält Testfälle.
quelle
Python 2 , 115 Bytes
Probieren Sie es online!
Angepasst an die Antwort von @ ElPedro. Dies erzeugt den Ersatz für jedes ASCII-Zeichen im Array
a
und anschließend verwendetstr.translate
.Kann auf 113 Bytes gebracht werden, wenn die Rückgabe eines Arrays von Zeichen akzeptabel ist:
Probieren Sie es online!
quelle
Gelee , 29 Bytes
Probieren Sie es online!
quelle
“ØṖ¦Mṗẏʋ@¥;}/’ṃⱮØCŒH¤⁺żẎy
spart also 4. (Kann 'y' nicht loswerden,ØY
da es rechts auf der Karte ist)Japt , 37 Bytes
Probieren Sie es online!
Der obige Link enthält die meisten Testfälle, aber ich konnte den vorletzten nicht als Zeichenfolge eingeben, da er sowohl einfache als auch doppelte Anführungszeichen enthält. Hier ist der Testfall, der stattdessen als Array von Zeichen eingegeben wird.
Erläuterung:
quelle
Python 2 ,
138132 BytesProbieren Sie es online!
Eigentlich kürzer mit einer benannten Funktion als mit einem Lambda!
Lambda-Version, 138 Bytes
Probieren Sie es online!
131125 wenn wir ein Array von Zeichen zurückgeben dürfen und dasjoin
außerhalb der Funktion haben.Probieren Sie es online!
quelle
a
undb
globale VariablenPHP , 100 Bytes
Code
Probieren Sie es online!
Erläuterung
quelle
Pyth, 35 Bytes
Versuch es!
Könnte wahrscheinlich die linke Karte oder etwas verwenden, um die beiden D's loszuwerden, aber ich konnte nicht herausfinden, wie.
quelle
Java, 211 Bytes
Probieren Sie es online!
quelle
Pyth, 34 Zeichen
Probieren Sie es online!
Die Zeichenfolge ist eine komprimierte Version von "typetjkitkpstokrtyputjkyb" . Aus irgendeinem Grund kann ich Pyth nicht zum Komprimieren bringen "atypetjkitkpstokrtyputjkyb" mit der Funktion
obwohl es wahrscheinlich ein oder zwei Bytes sparen würde, da die zwei t's beseitigt werden könnten.quelle
Tcl , 114 Bytes
Probieren Sie es online!
quelle
Lua , 153 Bytes
Probieren Sie es online!
quelle