Taş, Çokgen, Makas


68

Taş-kağıt-makas oynayan üç dilde çok dilli bir program yazın .

Programın herhangi bir sürümü için giriş her zaman dizelerden biridir rockveya paperveya scissors.

İlk dilde, programın girişi yenen taş-kağıt-makas seçimini yapması gerekir:

Input     Output
rock      paper
paper     scissors
scissors  rock

İkinci dilde, programın girişi bağlayan taş-kağıt-makas seçimini yapması gerekir:

Input     Output
rock      rock
paper     paper
scissors  scissors

Üçüncü dilde program, girişte kaybedilen taş-kağıt-makas seçimini yapmalıdır:

Input     Output
rock      scissors
paper     rock
scissors  paper

Bayt cinsinden en kısa kod kazanır. Tiebreaker daha yüksek oylarla yanıtlandı.

Girişler ve / veya çıkışlar isteğe bağlı olarak takip eden bir yeni hatta sahip olabilir, ancak aksi takdirde yalnızca düz rock/ paper/ scissorsdizeler olmalıdır. Büyük harf kullanabilir ROCK, PAPER, SCISSORSistenirse.

Sen olabilir değil aynı dilde (örneğin Python 2 ve 3) farklı sürümlerini kullanın.


Bir dil çıkmak için hata yapabilir mi?
Kritixi Lithos,

2
@KritixiLithos Meta fikir birliği ile gidin . “Bir hata veya yakalanmamış bir istisna ile sonlandırmanın, STDOUT'a başıboş bir çıktı vermediği sürece burada iyi olduğunu düşünüyorum.”
Calvin'in Hobileri

2
Poligonlardan asla emin değilsiniz, farklı diller farklı yollarla girdi alabilir mi?
Jonathan Allan

3
@JonathanAllan Sorun değil. Sadece belirli girdi biçimlerine sahip bazı dil setleri için bu gerekli olacaktır.
Calvin'in Hobileri

Yanıtlar:


60

Python, brainfuck ve JavaScript, 103 99 bayt 100 baytın altında Yay!

0,[.5,];p=["rock","scissors","paper"]
1//1;lambda x:p[p.index(x)-1];"""
x=>p[-~p.indexOf(x)%3]//"""

Python'da bu, girdiyi yenen bir işlevi tanımlar, beyninde basit bir kedi programıdır ve JavaScript'te kaybeder. İşlevlere bir ad veren fve ayrıca JavaScript ve Python 3'te giriş yapmanızı isteyen bir sürüm :

0,[.5,];p=["rock","scissors","paper"]
1//1;f=lambda x:p[p.index(x)-1];"""
f=x=>p[-~p.indexOf(x)%3]//"""

1//1;"""
console.log(f(prompt())) // JavaScript
1//1"""; print(f(input())) # Python

Çevrimiçi olarak deneyin (eski sürüm): Python , brainfuck , JavaScript

Açıklama:

Python'da, """..."""herhangi bir belirteç olarak kullanılabilecek çok satırlı bir dizedir. Tek başına yerleştirildiğinde hiçbir şey yapmaz. Bunu JavaScript kodunu Python'dan "gizlemek" için kullanıyorum. Aynı şey (0,[.5,])bu sadece bir içeren bir tanımlama grubu var, bit 0ve bir liste 5de ve 1//1part //Python tamsayı bölümüdür, ancak JavaScript onprogramına içinde. İşte bu belirteçlerin çıkardığı kod:

p=["rock","scissors","paper"]
lambda x:p[p.index(x)-1]

İlk satır oldukça açıklayıcıdır, sadece pkaya kâğıdı makaslarında farklı seçenekleri içerecek bir liste tanımlar . İkinci satır, bir argüman alan adsız bir işlevi tanımlar ve çarpan xseçimi geri verir x(örn. Önceki öğe p)


JavaScript'te, //tek satırlı bir yorumu belirtir. Python'a benzer şekilde, tek belirteçler göz ardı edilir, bu nedenle bu belirteçlerin çıkardığı kod:

p=["rock","scissors","paper"]
x=>p[-~p.indexOf(x)%3]

Bu, Python'a benzer şekilde çalışır, önce listeyi pseçimleri içerecek şekilde ayarlayarak ve sonra kaybedilen seçimi veren adsız bir işlevi tanımlayarak. Parens atlayabilirsiniz böylece -~xaynı x+1ama daha yüksek önceliğe sahip.


Beyin heriflerinde, dışındaki her karakter +-,.[]<>kaldırılır ve şunu bırakır:

,[.,][,,]
[.-]
>[-.]

Komut ,girişin bir baytını okur, .yazdırır ve [...]değer sıfır olmadığında döngüler. Bu programın yaptığı şey girişi okumak ve karakter bulunana kadar her seferinde bir karakter yazdırmaktır \0. Kodda bu olmadığından, programın geri kalanını görmezden gelebiliriz. Aslında, bu kullanıcı ne yazıyor olursa olsun, etkili bir şekilde bağlama konusunda yankılanıyor.


Çok benzer bir çözüm üzerinde çalışıyordum ama beni yendi :). Javascript TIO btw linkini güncellemelisiniz, diğer ikisinden farklıdır.
DimP

2
x=>p[p.indexOf(x)+1]||"rock"//"""kısaltılmış olabilirx=>p[(p.indexOf(x)+1)%3]//"""
Luke

13
+1 Brainfuck'ın bu kadar iyi gizlendiğini hiç görmedim. Genellikle bir polyglot BF içeriyorsa açıktır. Bunda değil!
vsz

Sanırım BF programını bir ya da iki byte tasarruf etmek için biraz hareket ettirebilirsiniz:1//1,[.5,];
ETHproductions

Aslına bakarsan, []daha fazla bayttan tasarruf etmek için mevcut 1//1,;lambda x:p[p.index(x,0)+-1];"""
olanı

40

Python 2, Ruby, Retina, 90 83 bayt

Value Ink sayesinde -7 bayt

s=['rock','paper','scissors']
print s[s.index((0and gets or input()))+(0and-2or-1)]

Çevrimiçi Deneyin: Python , Ruby , Retina

Ruby'de kazanır, Python'da kaybeder, Retina'da bağlar. Bu çözüm 0Ruby'de kaba ama Python'da yanlış olan gerçeği kullanır . Ayrıca Python ve Ruby'de negatif indekslemeden de yararlanır.


andoperatör önceliğine sahip or, bu yüzden s.index(0and STDIN.gets or input())çalışır. Ayrıca, Ruby'de getsbir takma STDIN.getsaddır.
Value Ink,

10
+1 kodu farklı yollarla yorumlamıyor!
leo,

@ValueInk Teşekkürler! Ruby'ye giriş yapmanın daha özlü bir yolu olması gerektiğini düşündüm ve ortaya çıktı
matematik bağımlısı

21

V, Brain-flak ve Python 2, 97, 86, 81, 77 , 75 bayt

o='rock paper scissors'.split()
lambda s:o[o.index(s)-1]#ddt.C rHd*wywVp

@ Nmjcman101 sayesinde iki bayt kurtarıldı!

Bu süper eğlenceliydi! Bu cevabı çok seviyorum, çünkü sevdiğim dillerin harika bir özeti: Favori editörüm, ezoterik olmayan favori dilim ve yazdığım bir dil. (Teknik olarak python 3 daha iyidir, ancak python 2 bu yüzden golfçüdür ¯\_(ツ)_/¯).

Çevrimiçi deneyin! Python'da (biraz değiştirildi, böylece çıktıyı görebilirsiniz) girişe kaybedeni yazdırır.

Çevrimiçi deneyin! Beyin-Flak'ta, girişle ne bağ kurar?

Çevrimiçi deneyin! V'yi basar, bu da girişi yener.

V, yazdırılamayan ASCII karakterlerine güvendiğinden, burada bir hexdump:

00000000: 6f3d 2772 6f63 6b20 7061 7065 7220 7363  o='rock paper sc
00000010: 6973 736f 7273 272e 7370 6c69 7428 290a  issors'.split().
00000020: 6c61 6d62 6461 2073 3a6f 5b6f 2e69 6e64  lambda s:o[o.ind
00000030: 6578 2873 292d 315d 231b 6464 742e 4320  ex(s)-1]#.ddt.C 
00000040: 720e 1b48 642a 7779 7756 70              r..Hd*wywVp

Açıklama:

piton

Python'da bu çok basittir. Üç öğenin bir listesini tanımlarız ve öğeyi girdiden hemen önce geri döndürürüz. Yana -1getiri arka eleman, bu dairesel çalışıyor ve hepsi çok basit ve kolaydır. Sonra, her şey #bir yorumdur.

Beyin Flak

Bu aynı zamanda beyin flakasında son derece basittir. Kazanmak veya kaybetmek zorunda kalırsak, bu muhtemelen birkaç yüz byte olacaktır. Ancak bu aslında 0 baytta çalışıyor. Programın başlangıcında, girişin tümü yığına yüklenir. Programın sonunda, yığının tamamı örtük olarak basılmıştır.

Tüm alakasız karakterleri kaldırdığımızda, beyin-flak'ın gördüğü kod:

()[()]

Basitçe değerlendirir 1 + -1, ancak bu değer hiç kullanılmadığından, bu bir NOOP'dir.

V

Burası biraz tuhaflaştığı yer. Python listesini adlandırmak okeyfi gözükebilir, fakat kesinlikle değil. V'de, oyeni bir satır açar ve bizi ekleme moduna geçirir. Sonra,

='rock paper scissors'.split()
lambda s:o[o.index(s)-1]#

tamponun içine yerleştirilir. Bundan sonra, ilgili kod:

<esc>ddxxf'C r<C-n><esc>Hd*wywVp

Açıklama:

<esc>                          " Return to normal mode
     dd                        " Delete this line. Now the cursor is on '='
       t.                      " Move the cursor forward to the "'"
         C                     " Delete everything after the "'", and enter insert mode
           r                   " From insert mode, enter '<space>r'
            <C-n>              " Autocomplete the current word based on what is currently in the buffer
                               " Since only one word starts with 'r', this will insert 'rock'
                 <esc>         " Leave back to normal mode
                      H        " Go to the first line (where the input is)
                       d*      " Delete everything up until the next occurence of the input
                         w     " Move forward one word
                          yw   " Yank the word under the cursor
                            Vp " And paste that word over the current line, delete everything else

@WheatWizard Python'da da aynı sebep yok (sebep yok). Ama kalıntıları her şeyi V. içinde
DJMcMayhem

@WheatWizard Neden V gerçekten garip bir dil ve bu onun için gerçekten garip bir görev. Her şey büyük ölçüde karakterlerin düzenine dayanır .split()ve çözümünüzde gösterilen çeşitli parantez ve tırnaklardan kurtulmak daha kolaydır.
DJMcMayhem

Süper küçük, ama sen dışarı alabilir xxve bir ile değiştirin 2komutunu yapmak 2f'beri ='tarafından silinir d*zaten sonradan. EDIT: Bunu yapmak mümkün olabilir t.?
nmjcman101

@ nmjcman101 Oooh, tatlı, harika bir fikir. Bahşiş için teşekkürler!
DJMcMayhem

16

CJam , Retina , PHP, 92 86 85 bayt

ECHO["rock",0,"scissors","paper"][ORD(READLINE())%4];
#];"scissors  paper rock"S/rci=

-rBayrağı kullanarak PHP'de çalıştırılmalıdır .

CJam'de dene

Retina'da dene

PHP'de deneyin

CJam

CJam’de tüm büyük harfler önceden tanımlanmış değişkenlerdir. İlk satırda, bu değerlerin çoğu, bazı dize ve dizi değişmezleriyle birlikte yığının üzerine itilir. Bazı artışlar, azalmalar ve diğer işlemler gerçekleştirilir.

Bütün bunlardan sonra, yığın bir diziye ( ]) sarılır ve atılır ( ;), bu nedenle hiçbir şey önemli değildir. Ana CJam programı basitçe:

"scissors  paper rock"S/rci=

"scissors  paper rock"        e# Push this string
                      S/      e# Split it on spaces
                        r     e# Read the input
                         c    e# Cast to char (returns the first character in the string)
                          i   e# Cast to int (its codepoint)
                           =  e# Get the index of the split array (CJam has modular arrays)

Retina

Bu neredeyse hile yapmak gibi geliyor ...

Retina ECHO["rock",0,"scissors","paper"][ORD(READLINE())%4];, girişteki regex eşleşmesinin yerine geçer #];"scissors paper rock"S/rci=. Bu normal ifadenin eşleşen ne olursa olsun, kesinlikle bir şey uymuyor rock, paperya scissorshiçbir ikamesi yapılır. Değiştirilmemiş girdi daha sonra dolaylı olarak çıkar.

PHP

İkinci satır bir yorumdur, bu nedenle dikkate alınmaz.

İlk satır, CJam kısmıyla aynı algoritmayı kullanır, ancak sonuçların farklı sıralamasıyla.


1
TIL PHP fonksiyonları büyük / küçük harf duyarsızdır.
gcampbell

14

C, C ++, Python; 227 226 216 bayt

@Mat sayesinde bir bayt kaydedildi!

#include<stdio.h>/*
f=lambda a:"rock"if a[0]=="r"else"paper"if a[0]=="p"else"scissors"
"""*/
int f(char*b){puts(sizeof'b'-1?*b=='r'?"paper":*b=='s'?"rock":"scissors":*b=='r'?"scissors":*b=='s'?"paper":"rock");}
//"""

fTüm dillerde bir işlev tanımlar . C kazanır, Python ile bağlar, C ++ ile kaybeder. C ++ gibi her zaman / s yapar

Arasındaki bölümü /*ve */bunun Python lambda fonksiyonu ilanıdır ederken C ve C ++ 'da bir açıklama bloktur. Temelde fonksiyon argümanının ilk karakterini karşılaştırır ve o harfle başlayan hareketi döndürür.

"""S arasındaki kısım Python'da çok satırlı bir dizedir ve hem C hem de C ++ 'da işlev bildirimidir. sizeof'b'-1Geçerli dilin C ++ 'ın C olup olmadığını anlar. Boyut 1'den küçükse, aksi takdirde sahte bir değer ise gerçek bir değere sahiptir. C karakter değişmezleri 4 bayt uzunluğunda, C ++ ise tek bayt tipindedir. Sonra dil anlaşıldıktan sonra, sadece girişin ilk harfine bakar ve buna göre çıktı verir.

C

Çevrimiçi deneyin!

C ++

Çevrimiçi deneyin!

piton

Çevrimiçi deneyin!


4
"" "" Ler arasındaki bölüm Python "da bir yorum bloğudur" Aslında çok satırlı bir dizedir.
ivzem

10

C ++, R, C; 252 240 226 220 209 bayt

#define b/*
M=function()cat(readline())
#*/
#import<stdio.h>
#define M()main(){int i=0;char t[9];char*u;char*s[]={"rock","paper","scissors"};scanf("%s",t);for(;*t-*s[i++];);puts(s[(i+=sizeof('a')==1)%3]);}
M()

C ve C ++ arasındaki farkın karakter değişmezinin boyutunun C'de 4 bayt, C ++ 'da 1 bayt olduğunu kullanır.

C ++:

Çevrimiçi deneyin!

R:

Sonuç:

> #define b/*
> M=function()cat(readline())
> #*/
> #import<stdio.h>
> #define M()main(){int i=0;char t[9];char*u;char*s[]={"rock","paper","scissors"};scanf("%s",t);for(;*t-*s[i++];);puts(s[(i+=sizeof('a')==1)%3]);}
> M()
rock
rock

C:

Çevrimiçi deneyin!


8

Gawk, Retina, Perl; 68 bayt

{eval"\$_=uc<>"}{$_=/[Sk]/?"paper":/[Pc]/?"rock":"scissors"}{print}

(sonunda yeni bir satırla)

Gawk (kazanan)

Perl'in hatırına bir miktar hurdalık, daha sonra , a veya a içerip içermediğine bağlı $_olarak, satır içeriğini ( $0değişkenin _tanımsız olduğu gibi olduğu gibi ) değiştirin , sonra sonucu yazdırın. Kaçış dizileriyle ilgili uyarıları yoksay, bunu yapmak istemiştim.kc

{a_string_that_is_ignored}
{$_ = /[Sk]/ ? "paper" : /[Pc]/ ? "rock" : "scissors"}
{print}

Retina (kravat)

Basic Sunset ve diğerleri ile aynı püf noktası: ilk satırdaki bazı aptal regexp eşleşmelerini ikinci satırın içeriğiyle değiştirin, bu nedenle girdiyi iletin.

Perl (kaybeden)

Bir satır okuyun ve büyük harfe dönüştürün, sonra içerdiği bir harfe göre bir kelime seçin ve sonucu yazdırın. İlk ve son adım evalawk'lardan gizlenerek kullanılır.

$_ = uc <>;
$_ = /[Sk]/ ? "paper" : /[Pc]/ ? "rock" : "scissors";
print $_

Gawk, Retina perl -p; 57 bayt

Bunu bonus olarak giriyorum, çünkü komut satırı geçişi perl -p, bu sitedeki normal kurallara göre programın bir parçası olması gerekiyor, ki bu da çokgen olmayacaktır.

{eval"\$_=uc"}$_=/[Sk]/?"paper":/[Pc]/?"rock":"scissors"

Yine Retina için son bir yeni hat ile . Bu kez perl -pçıktıyı otomatik olarak yazdırmak için perl ek yükü önemli ölçüde azalır. Bir ödevi awk biçiminde$_ örtük bir baskı tetiklemeye izin verebilirim .


Her biri için bir TIO linki (veya test etmek için benzer bir çevrimiçi derleyici) ekleyebilir misiniz ?
Kevin Cruijssen

@KevinCruijssen Eklendi. İçin TIO'daki çıktı perl -pboş, TIO'da bir hata olmalı.
Gilles

7

> <>, Retina, Python 2: 144 127 123 bayt

Bir boşluk kaldırarak @ Loojo sayesinde 1 bayt kurtarıldı

@ Mbomb007 sayesinde inputyerine 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, 81ve 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 SCISSORSya 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

printSon satırda kalan boşluğun gerekli olduğunu sanmıyorum .
Loovjo

Sen kullanabilirsiniz input()yerine raw_input().
mbomb007

@Loovjo Tahmininiz için teşekkürler :)
Kritixi Lithos

@ mbomb007 Bu işe görünmüyor
Kritixi Lithos

@KritixiLithos, eğer python kısmı tırnak işaretleri ile girdilerse işe yarar
undergroundmonorail

0

Yakut, Clojure, Ortak Lisp - 251 bayt

(print(eval '(if()({(quote SCISSORS)(quote PAPER)(quote PAPER)(quote ROCK)(quote ROCK)(quote SCISSORS)}(read))(eval(quote(nth(position(read)(quote("SCISSORS""PAPER""ROCK")):test(quote string-equal))(quote(ROCK SCISSORS PAPER))))))))
;'['"'+gets+'"']))

Boşluk içeren daha okunabilir sürüm:

(print(eval '(if() ; distinguish between CLojure and Common Lisp
    ({(quote SCISSORS)(quote PAPER)(quote PAPER)
       (quote ROCK)(quote ROCK)(quote SCISSORS)}(read)) ; use hash-map as a function
    (eval(quote(nth ; find index of the input arg in the list
       (position(read)(quote("SCISSORS""PAPER""ROCK")):test(quote string-equal))  
    (quote(ROCK SCISSORS PAPER))))))))
 ;'['"'+gets+'"'])) ; ruby indexation

Clojure her zaman kazanır, Ruby her zaman çizer, Common Lisp her zaman kaybeder.

Ruby için 's içindeki her şey bir dizedir. İki çizgi boyunca uzanır. Sonra [], dizgede mevcutsa dizgeyi döndüren dizge bağımsız değişkenli işleci kullanır . Sonuç yazdırılır, Ruby sadece girişi yansıtır.

İkinci satır Clojure ve Common Lisp için bir yorumdur. Bir sürü evalve quotekullanılmalı çünkü Clojure tüm sembollerin geçerli olduğundan emin olmalı. Kodun daha fazla tekrar kullanılması iyi olurdu, ancak nthfonksiyonun bile bu dillerde farklı imzaları var. Temel olarak Clojure if()için doğru değerlendirir ve stdin'den okunan argümanlarla olası değişkenlerin bir karma haritası çağrıldığında ilk dalına gider. Common Lisp ikinci şubeye gider, argümanın listedeki stdin'deki pozisyonunu bulur ve sonuçtaki listeden karşılık gelen maddeyi döndürür.

Sanırım Common Lisp kısmı daha çok golf oynayabilir.

Çevrimiçi görün: Ruby , Common Lisp , Clojure


0

Scala, Javascript ve Ook, 167 bayt

s=>{var a="paper,scissors,rock".split(",")/*/**/a[-1]="rock"
return a[a.indexOf(s)-1];`*/a((a.indexOf(s)+1)%3)//`//Ook. Ook. Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook!
}

Scala'da deneyin Javascript'te deneyin Ook'un Brainfuck sürümünü deneyin

Scala - kazanır

s=>{                                                      //define an anonymous function
  var a="paper,scissors,rock".split(",")                  //generate the array
  /* /* */ a[-1]="rock"                                   //scala supports nested comments,
  return a[a.indexOf(s)-1];`                              //so this comment...
  */                                                      //...ends here
  a((a.indexOf(s)+1)%3)                                   //return the winning string
  //`//Ook. Ook. Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook!  //another comment
}

Javascript - kaybeder

s=>{                                                   //define an anonymous function
  var a="paper,scissors,rock".split(",")               //generate the array
  /*/**/                                               //a comment
  a[-1]="rock"                                         //put "rock" at index -1
  return a[a.indexOf(s)-1];                            //return the string that loses
  `*/a((a.indexOf(s)+1)%3)//`                          //a string
  //Ook. Ook. Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook!  //a comment
}

Aaa! - kravat, bağlantı, bağ

Ook kısmı, ,[.,]Ook'a dönüştürülen basit beyin avcısı kedi programıdır .

s=>{var a="paper,scissors,rock".split(",")/*/**/a[-1]="rock"   //random stuff
return a[a.indexOf(s)-1];`*/a((a.indexOf(s)+1)%3)//`//         //more random stuff
Ook. Ook. Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook!              //the program
}                                                              //random stuff

Eğer kullanırsan a[(a.indexOf(s)+2)%3]o zaman ayarlamana gerek kalmaz a[-1]="rock". Ayrıca, Ook kodunu da JavaScript dizesinin içine koyamıyor musunuz?
Neil
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.