> <>, Retina, Python 2: 144 127 123 byte
1 byte disimpan berkat @Loovjo dengan menghapus spasi
4 byte disimpan berkat @ mbomb007 dengan menggunakan input
sebagai gantinyaraw_input
#v"PAPER"v?%4-2{"SCISSORS"v?%2:i
#>ooooo; >oooooooo<"ROCK"~<
a="KRS".index(input()[-1])
print["SCISSORS","ROCK","PAPER"][a]
Diposting di TNB sebagai tantangan , saya memutuskan untuk mencoba kombinasi bahasa ini.
> <>
Cobalah online!
IP mulai bergerak ke kanan.
# Reflect the IP so that it now moves left and it wraps around the grid
i: Take one character as input and duplicate it
Karakter yang mungkin akan dimasukkan ke dalam input adalah PRS
(karena program hanya mengambil karakter pertama). Nilai ASCII mereka adalah 80
, 81
dan 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
Jika inputnya rock, maka inilah yang akan terjadi:
< 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.
Jika tidak, jika inputnya adalah SCISSORS
atau PAPER
, inilah yang akan dijumpai oleh IP:
"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
Jika inputnya adalah PAPER
, maka:
>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.
Kalau tidak (jika inputnya SCISSORS
):
"REPAP" Push these characters onto the stack
v>ooooo; Output them and exit the program (without any errors).
Retina
Cobalah online!
Dalam hal ini, Retina menganggap setiap pasangan dari dua garis sebagai pasangan yang cocok dan pengganti. Misalnya, ia mencoba mengganti apa pun yang cocok dengan baris pertama dengan baris kedua, tetapi karena baris pertama tidak pernah cocok, itu tidak pernah menggantikannya dengan apa pun, sehingga menjaga input.
Python 2
Cobalah online!
Program Python membutuhkan input untuk diletakkan di antara "
s.
Dua baris pertama adalah komentar dalam Python.
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