> <>, Retina, Python 2: 144 127 123 bayt
Bir boşluk kaldırarak @ Loojo sayesinde 1 bayt kurtarıldı
@ Mbomb007 sayesinde input
yerine 4 bayt kaydedildiraw_input
#v"PAPER"v?%4-2{"SCISSORS"v?%2:i
#>ooooo; >oooooooo<"ROCK"~<
a="KRS".index(input()[-1])
print["SCISSORS","ROCK","PAPER"][a]
Bir meydan okuma olarak TNB'de yayınlanan , bu dil birleşimini denemeye karar verdim.
> <>
Çevrimiçi deneyin!
IP doğru hareket etmeye başlar.
# Reflect the IP so that it now moves left and it wraps around the grid
i: Take one character as input and duplicate it
Girdiye alınacak olası karakterler şunlardır PRS
(program yalnızca ilk karakteri aldığından beri). ASCII değerleri 80
, 81
ve 82
.
2% Take the modulo 2 of the character. Yields 0, 1, 0 for P, R, S respectively
?v If this value is non-zero (ie the input was ROCK), go down, otherwise skip this instruction
Girdi rock olsaydı, o zaman ne olurdu:
< Start moving to the left
~ Pop the top most value on the stack (which is the original value of R and not the duplicate)
"KCOR" Push these characters onto the stack
< Move left
oooo Output "ROCK" as characters (in turn these characters are popped)
o Pop the top value on the stack and output it; but since the stack is empty, the program errors out and exits promptly.
Aksi takdirde, eğer girdi SCISSORS
ya da PAPER
, IP’nin karşılaşacağı şey buydu:
"SROSSICS" Push these characters onto the stack
{ Shift the stack, so the the original value of the first char of the input would come to the top
2-4% Subtract 2 and take modulo 4 of the ASCII-value (yields 2, 0 for P, S respectively)
?v If it is non-zero, go down, otherwise skip this instruction
Giriş PAPER
öyleyse:
>ooooooooo Output all characters on the stack (ie "SCISSORS")
< Start moving left
o Pop a value on the stack and output it; since the stack is empty, this gives an error and the program exits.
Aksi takdirde (giriş yapıldıysa SCISSORS
):
"REPAP" Push these characters onto the stack
v>ooooo; Output them and exit the program (without any errors).
Retina
Çevrimiçi deneyin!
Bu durumda, Retina her iki çizgiden bir çifti bir eşleşme ve ikame olarak kabul eder. Örneğin, ilk çizgiyle ikinci çizgiyle eşleşen herhangi bir şeyi değiştirmeye çalışır, ancak ilk çizgiyle hiçbir zaman eşleşmediğinden, hiçbir zaman hiçbir şeyle değiştirilmez, böylece girdi korunur.
Python 2
Çevrimiçi deneyin!
Python programı girdilerin "
s arasına alınmasını gerektirir .
İlk iki satır Python'da yapılan yorumlardır.
a="KRS".index(input()[-1]) # Get the index of the last character of the input in "KRS"
print["SCISSORS","ROCK","PAPER"][a] # Print the ath index of that array