Magic 8 Topu Yaratın


34

Çocukken, arkadaşımın soru sorduğu ve bu sorunun kaderinin ne olduğunu göreceğimiz sihirli bir 8 topu vardı.

Meydan okuma

Buradaki zorluk, çalıştırıldığında (veya çağrıldığında), aşağıdaki olası cevaplardan rastgele bir cevap çıkaran (veya geri dönen) bir program (veya işlev) yazmaktır. (Rastgele olmaktan: each output should have a nonzero chance of occurring but they do not need to meet any other criteria)

Magic 8 topunun muhtemel cevapları: (büyük-küçük harf duyarlı):

It is certain
It is decidedly so
Without a doubt
Yes definitely
You may rely on it
As I see it, yes
Most likely
Outlook good
Yep
Signs point to yes
Reply hazy try again
Ask again later
Better not tell you now
Cannot predict now
Concentrate and ask again
Don't count on it
My reply is no
My sources say no
Outlook not so good
Very doubtful

Giriş

Giriş yok.

Çıktı

Yukarıdan rastgele bir seçim. Davanın önemi yok.

kurallar

Standart boşluklara izin verilmez.

Bu , yani her dil için bayt cinsinden en kısa kod kazanır!


2
"Giriş yok" u "giriş yok" olarak değiştirdim, bazı diller giriş olarak boş / boş argümanlar gerektiriyor.
Rɪᴋᴇʀ

12
Bana mı öyle geliyor yoksa birileri her cevabı düşürüyor mu ??????
Dat

1
@Dat Bu konuyu tartışmak için burada meta olarak bir şey yayınladım . Sorularımın gereklerini yerine getiren cevaplar için her zaman yaptığım gibi, her cevaptan vazgeçtim. Belki bir moderatör ... müdahalede bulunacağını
DevelopingDeveloper

37
@DatSigns point to yes
mbomb007 7:18

1
@ mbomb007 Favori yorumum şu ana kadar PPCG'de gördüm!
Gelişen Geliştirici

Yanıtlar:


22

SOGL V0.12 , 166 bayt

,▓a⁰²z○½℮ķčλ─fj[Ycψ-⁸jΔkÆΞu±⁄│(┼∞׀±q- υ~‼U/[DΓ▓νg⁸⅝╝┘¤δα~0-⁄⅝v⁄N⁷⁽╤oο[]āŗ=§№αU5$┌wΨgΘ°σΖ$d¦ƨ4Z∞▒²÷βΗ◄⁴Γ■!≤,A╬╤╬χpLΧ⁸⁽aIΘād⁵█↔‚\¶σΞlh³Ζ╤2rJ╚↓○sēχΘRψΙ±ιΗ@:┌Γ1⁷‘Ƨ! ΘlΨιw

Burada dene!

Her kelime SOGL sözlüğündeydi!


Bu harika bir cevap !!!
Geliştirme Geliştiricisi

SOGL'nin sıkıştırma motoruna bir göz atmak isterdim, fakat ne yazık ki, JavaScript konuşmuyor :(
caird coinheringaahing

Bekle, SOGL JavaScript tabanlı bir dil mi?
Shaggy

@cairdcoinheringaahing SOGL İşleme'de yazılmıştır ve ilgili sıkıştırma dosyaları burada ve buradadır . İşleme Java tabanlı bir dil olmasına rağmen: p
dzaima

18

> <> , 438 bayt

x|o<"Yep"
x|^"Most likely"
x|^"Signs point to yes"
x|^"As I see it, yes"
x|^"Without a doubt"
x|^"Ask again later"
x|^"Don't count on it"
x|^"Cannot predict now"
x|^"Very doubtful"
x|^"My reply is no"
x|^"My sources say no"
x|^"Outlook not so good"
x|^"Reply hazy try again"
x|^"Better not tell you now"
x|^"Concentrate and ask again"
x|^"It's certain"
x|^"Outlook good"
x|^"Yes definitely"
x|^"You may rely on it"
x|^"It is decidedly so"

Çevrimiçi deneyin!

Bu ilginç değil, ama bence rastgeleliğin tek tip olmadığı ilk cevap. Tüm olumsuz mesajları en az muhtemel olarak koydum :)

Bazı açıklamalar:

İşaretçi ilk satırda sağa doğru ilerlemeye başlar. xişaretçiyi rastgele bir kardinal yöne değiştirir. Yukarı ya da aşağı giderse, sadece farklı bir şeyle karşılaşır x. Doğru giderse, zıplar |ve aynı vurur x. Sola giderse, etrafına sarılır ve bu satırdaki metni yığına iter. Daha sonra birçok çizgi aynı ^yönü gösterir ve yönü yukarı doğru değiştirir. Bu o, yığını boşalıncaya kadar çıkaran ilk satırın üzerinde dönüyor . Özel durum, bunun yerine Yepyatay döngüye sahip olan çizgidir |o<.


7
Bunu kullanacağım. (Neredeyse) her zaman olumlu bir cevap verir. Ne yazık ki cevap da balık kokuyor ...
Suppen

15

Python 2, 369 368 bayt

print"It is certain.It is decidedly so.Without a doubt.Yes definitely.You may rely on it.As I see it, yes.Most likely.Outlook good.Yep.Signs point to yes.Reply hazy try again.Ask again later.Better not tell you now.Cannot predict now.Concentrate and ask again.Don't count on it.My reply is no.My sources say no.Outlook not so good.Very doubtful".split('.')[id(0)/7%20]

Python 3, 371 bayt

print("It is certain.It is decidedly so.Without a doubt.Yes definitely.You may rely on it.As I see it, yes.Most likely.Outlook good.Yep.Signs point to yes.Reply hazy try again.Ask again later.Better not tell you now.Cannot predict now.Concentrate and ask again.Don't count on it.My reply is no.My sources say no.Outlook not so good.Very doubtful".split('.')[hash(id)%20])

Daha önce https://bugs.python.org/issue13703'ten beri Python yorumlayıcısının başlangıcı başına rastgele bir değer döndüren hashindex ( hash(id)%20) işlevini kullanıyordum . Boş dizge için rastgele değildir (her zaman 0), bu yüzden yerleşik olan başka bir şey kullanmanız gerekir !id

İkinci bakışta, iddoğrudan kullanabilirdim , ama her zaman eşit sayı üretiyor gibi görünüyor. IIRC, id(object)CPython'da sadece hafıza yerini döndürür, objectbu mantıklı geliyor. Belki Jython veya IronPython kullanıyor olsaydım, 7 bölü atlamayı atlayabilirdim. Yine de, Python 3 ile hash(id)vs id(0)//7eşittir, ancak /işleci Python 2'deki tamsayı bölmeyi kesmek için kullanabilir, bu da bir bayt tasarrufu sağlar.


13

PowerShell , 354 bayt

"It is certain0It is decidedly so0Without a doubt0Yes definitely0You may rely on it0As I see it, yes0Most likely0Outlook good0Yep0Signs point to yes0Reply hazy try again0Ask again later0Better not tell you now0Cannot predict now0Concentrate and ask again0Don't count on it0My reply is no0My sources say no0Outlook not so good0Very doubtful"-split0|Random

Çevrimiçi deneyin!

Ho-hum. İle birlikte birleştirilmiş tüm sonuçlar, Alır 0, s sonra -splitkapalıymış 0dizelerden oluşan bir dizi oluşturmak için. Get-RandomBunlardan birini rastgele seçecek olan diziyi geçer . Bu, boru hattında bırakılan ve çıktının kapalı olduğu.


11

Python 2,385 bayt

Ovs sayesinde -1 bayt.

from random import*
print choice("It is certain.It is decidedly so.Without a doubt.Yes definitely.You may rely on it.As I see it, yes.Most likely.Outlook good.Yep.Signs point to yes.Reply hazy try again.Ask again later.Better not tell you now.Cannot predict now.Concentrate and ask again.Don't count on it.My reply is no.My sources say no.Outlook not so good.Very doubtful".split('.'))

Çevrimiçi deneyin!


22
@Downvoter, neden her cevabı reddettiğinizi sorabilir miyim ?
Tamamen insan,

7
Bu şüpheli oy verme davranışı olarak beni etkiliyor, araştırmaya devam edebilmeleri için bir modun dikkatini belirten soruyu işaretlemeyi öneriyorum.
Shaggy

9

Elmalı, 391

AppleScript listelerinin bir some itemyöntemi olmasına bayılıyorum :

{"It is certain","It is decidedly so","Without a doubt","Yes definitely","You may rely on it","As I see it,yes","Most likely","Outlook good","Yep","Signs point to yes","Reply hazy try again","Ask again later","Better not tell you now","Cannot predict now","Concentrate and ask again","Don't count on it","My reply is no","My sources say no","Outlook not so good","Very doubtful"}'s some item

5
3, 2, 1 'deki kötü huylu aşağı oy verenlerin hepsini işaretleyin ... Devam edin - kim olduğunuzu ortaya koymaya ve önemsiz gerekçenizi açıklamaya cesaret ediyorum. Yoksa gölgelerde isimsiz olarak gizlemeye devam mı edeceksin?
Dijital Travma

7

Bash + GNU yardımcı programları, 230

  • @Dennis sayesinde 15 bayt kaydedildi.
sed 1d $0|zcat|shuf -n1
# zopflied 8 ball list

İkili zopfli çıkışı burada iyi temsil edilmez; bunun yerine betiği base64 ile şifrelenmiş verilerden yeniden oluşturabilirsiniz:

base64 -d << EOF > 8ball.sh
c2VkIDFkICQwfHpjYXR8c2h1ZiAtbjEKH4sIAAAAAAACAz1QSZJCMQjd5xRv1fOlMEGlzIdfgbRF
n75NOayYeYMExFF5BImWe9W4SuPWE27lKnG2GSA0m4coyWvhKCrBPUvaxEaJcStgColCDoEzQ+IH
t/WymQe6XNa+zehmF5zMWknei8tJHbuJBsKw9gfvPXGmv0SMBJ0WNfLLPUOn4FEOHMEDaoHg3rGI
qF1LJV29fXCTGveWaWWNQcEgbXi9Ks30PVBtauBOfkvc4cWhtkq3OSo7nBJqLwELxO2u45dH3u05
zv4=
EOF

Sorunun izin verdiği gibi, sıkıştırılmış verilerin tüm küçük harflere açıldığını unutmayın. Bu, zopfli sıkıştırmasını biraz daha verimli kılar ve 16 bayt kazandırır.


tail +2benim için çalışmıyor, ama sed 1d $0yine de bir bayt kaydeder. Ayrıca, STDERR çıkışına varsayılan olarak izin verildiğinden, buna ihtiyacınız olduğunu sanmıyorum exit. Ayrıca, programın son on baytı kaldırılabilir.
Dennis,

@Dennis teşekkürler! STDERR'ye yapılan ekstra çıktı her zaman beni biraz rahatsız ediyor, ancak sanırım onunla koşmalıyım.
Dijital Travma

6

R , 360 bayt

sample(readLines(),1)
It is certain
It is decidedly so
Without a doubt
Yes definitely
You may rely on it
As I see it, yes
Most likely
Outlook good
Yep
Signs point to yes
Reply hazy try again
Ask again later
Better not tell you now
Cannot predict now
Concentrate and ask again
Don't count on it
My reply is no
My sources say no
Outlook not so good
Very doubtful

Çevrimiçi deneyin!

Tam olarak en zarif çözüm değil. R, stdinkaynak dosyaya yönlendirilecek şekilde zarif bir özelliğe sahiptir , böylece (küçük) veri kümelerini kaynak koduna koyabilir, dizeleri bölmek veya daha da kötüleştirmek için baytları kaydedebilir, vektörün kendisini oluşturabilirsiniz (tüm bu tırnaklar aceleyle toplanır). Rasgele örnekleme için yerleşiklerle birlikte, bu kısa bir cevap verir.


6

Kömür , 203 184 bayt

‽⪪”}∨74Dυ3↖u➙H�↖vI⁻VR‹ψ#�Ii»ψPNξ⮌≔;≡8ν}¬H⁺ºº↖H⁴K⌕êτ|⁼➙⟲W»″φ◨⟦(τ(jK“N\⍘“↷⊙ⅉvT>➙§⌊Fζ³⁻↔;TaÀ✳⁴≔67⍘i4¬⸿-A8⁻f7¡<⁰Zχ}ζ'¡¹→Oaε!OυP₂ïμ´MuP⁺M⮌1№-k¹№FvξDü⊟ζⅉ⁰xW:Dε7TvM₂⊞θC⪪Rε⁰“D¡⸿⁰″A⊕λξ↥~O·PE&”¶

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı bir versiyonudur. Düzenleme: Her şeyi aşağı indirerek 19 bayt kurtardı. Açıklama:

  ”...”     Compressed string of newline-delimited responses
 ⪪     ¶    Split on newlines
‽           Random element
            Implicitly print

5

Retina , 333 331 321 bayt


0cert10decided2so¶with34a d3bt¶yes definitely¶y3 ma5re26as i see it, yes¶mos4likely7good¶yep¶signs poin4to yes¶rep2haz5tr5ag18ain later¶better 94tell y3 9w¶can94predic49w¶concentrate and 81don'4c3n46m5rep2is 9¶m5s3rces sa59794so good¶ver5d3btful
9
no
8
ask ag
7
¶3tlook 
6
on it¶
5
y 
4
t 
3
ou
2
ly 
1
ain¶
0
it is 
G?`

Çevrimiçi deneyin! Düzenleme: Sıkıştırmak için doubt1 bayt ve 1 bayt sıkıştırılarak kaydedildi, böylece sıkıştırmam mümkün oldu reply. Daha sonra, küçük harfli metinde @ Leo's Retina Kolmogorov golfçü kullanılarak 10 bayt kurtarıldı (rastlantısal olarak 333 baytlık cevabımda kaydettiği bayt sayısıdır).



@Leo Retina 0.8.2'nin farklı bir dil olduğuna dikkat edin
mbomb007

@ mbomb007 Biliyorum, ancak bunun gibi basit ikameler için Retina 1.0 ile aynı sözdizimine sahip. Sadece Kolmogorov golfçünün Retina'nın eski bir sürümü için yazılmış olduğunu belirtmiştim, ancak bu durumda hala kullanılabilir durumda.
Leo

4

Hindistan Cevizi , 380 bayt

Hindistan cevizi limanı totallyhuman 'ın cevabı

from random import*
choice$("It is certain.It is decidedly so.Without a doubt.Yes definitely.You may rely on it.As I see it, yes.Most likely.Outlook good.Yep.Signs point to yes.Reply hazy try again.Ask again later.Better not tell you now.Cannot predict now.Concentrate and ask again.Don't count on it.My reply is no.My sources say no.Outlook not so good.Very doubtful".split('.'))

Çevrimiçi deneyin!


4

T-SQL, 393 bayt

SELECT TOP 1*FROM STRING_SPLIT('It is certain-It is decidedly so-Without a doubt-Yes definitely-You may rely on it-As I see it, yes-Most likely-Outlook good-Yep-Signs point to yes-Reply hazy try again-Ask again later-Better not tell you now-Cannot predict now-Concentrate and ask again-Don''t count on it-My reply is no-My sources say no-Outlook not so good-Very doubtful','-')ORDER BY NEWID()

Bu işlev STRING_SPLITyalnızca SQL 2016 ve sonrasında kullanılabilir.

Önceki sürümler için alabileceğim VALUES('It is certain'),('It is decidedly so'),...en iyi 464 karakterdi.

Biçimlendirilmiş, sadece çalışma kısmını görebilmeniz için:

SELECT TOP 1 *
FROM STRING_SPLIT('It is certain-It is decidedly so-...', '-')
ORDER BY NEWID()

NEWID() yeni, sözde rastgele bir GUID oluşturur, sözde rastgele sıralama yapmanın bir yoludur.


4

Jöle , 201 bayt

Bay Xcoder sayesinde -2 bayt. User202729 sayesinde -1 bayt.

“æ⁽IẊ?⁽ʋṠ¶ÐƝKW¬ḃỴɓ⁾:Eṇ⁵ṾɱD×⁴2ṇỤðċỊ¥ḷƬị÷ṣÐṆⱮ$u²OŀṚƁȮ1⁼ṁ$bp⁾v]Ɠ-/NẓḲnỵdḳḋ½ȥṿ=kv¥ɓl[kR AḞ¶gḣḞiẊŒẊḳçȤ⁻Ɱʋx:ØṖ|zY=ṾḌẓY1Ḃ$50d⁹⁸ŀhʂƤṢM;ḢoƁṾ⁷-uṙu¡Ọ3ṣȮ@⁹ðẹȥXƭ⁸|ƬẋẆḢɠœxḳsĿƘ(0çỌ~A½YIEFU3Ọ=⁷ɗḷBḷİṄhṗgṡƊẏẏḄ#Ṙʋ$ʂȷĠ»ỴX

Çevrimiçi deneyin!

Kahretsin , SOGL'ın sıkıştırması iyi.



201 bayt . Sadece son 2 karakteri ekleyin.
user202729

(Demek istediğim, ỴXkodun sonuna ekleyin , böylece bunlardan birini rastgele seçer)
user202729 11:18

4

05AB1E , 171 bayt

“€•€ˆ‹ì€•€ˆŸíly€Ê„›€…¬³…ܴ΀˜€‰€•€œ I€È€•,…Ü‚¢îÙ®½‚¿ yepŸé…®€„…Ü…ƒ hazy‡Ü†îˆ¹†îŠ´…瀖ˆœ€î€Ó€©notßä€Óä考ˆ¹†î€·n'tš‹€‰€•€¯…ƒ€ˆ€¸€¯Žç…耸®½€–€Ê‚¿‚Ò¬³ful“#•8∞f{ʒβ®•6в£ðýΩ

Çevrimiçi deneyin!

açıklama

“ ... “Gerekli tüm kelimelerin bir dizesini iter.
Bazı kelimeler doğrudan 05ab1e sözlüğünden alınır.
Bazıları sade asci dilinde yazılmıştır haze.
Bazıları birleşik sözlük ve ascii'dir ( do+ gibi n't).

Ardından işlem kodu:

#                 # split string on spaces to a list of words
 •8∞f{ʒβ®•        # push the number 2293515117138698
          6в      # convert to a list of base-6 numbers 
                  # ([3,4,3,2,5,5,2,2,1,4,4,3,5,3,4,4,4,4,4,2])
            £     # group the list into sublists of these sizes
             ðý   # join on spaces
               Ω  # pick one at random

Çevrimiçi deneyin! - Bruteforce dönüşümü ile 176.
Magic Octopus Urn,

1
@ MagicOctopusUrn: Sanırım 182 ile beraber ,ve 'eklendi.
Emigna

D'oh! Ah, anlıyorum evet. Bu arada, girişi TIO'nuzdan çıkartmak biraz kafa karıştırıcıdır.
Magic Octopus Urn,

@ MagicOctopusUrn: Doh! Teşekkürler. Bunu orada bıraktığımı
bilmiyordum

166: TIO . Thrice -1'in yeni sözlük kelimeleri ( ye,, donve ha) kullanması ve -2 listeyi kelime sayısına göre sıralaması ve delta sıkıştırması kullanması.
Grimmy

4

Ruby, 362 361 bayt

puts"It is certain.It is decidedly so.Without a doubt.Yes definitely.You may rely on it.As I see it, yes.Most likely.Outlook good.Yep.Signs point to yes.Reply hazy try again.Ask again later.Better not tell you now.Cannot predict now.Concentrate and ask again.Don't count on it.My reply is no.My sources say no.Outlook not so good.Very doubtful".split(?.).sample

Çevrimiçi deneyin!

  • @ Benj2240 için 1 bayt teşekkürler

Bunun ?.yerine bir bayt tıraş edebilirsiniz '.'.
benj2240

@ benj2240 vay, daha önce görmedim. Çok havalı.
Big

1
O ?
bire bir

3

Python 3, 386 bayt

from random import*
lambda:choice("It is certain;It is decidedly so;Without a doubt;Yes definitely;You may rely on it;As I see it, yes;Most likely;Outlook good;Yep;Signs point to yes;Reply hazy try again;Ask again later;Better not tell you now;Cannot predict now;Concentrate and ask again;Don't count on it;My reply is no;My sources say no;Outlook not so good;Very doubtful".split(';'))

3

Perl, 366

print((split",","It is certain,It is decidedly so,Without a doubt,Yes definitely,You may rely on it,As I see it,yes,Most likely,Outlook good,Yep,Signs point to yes,Reply hazy try again,Ask again later,Better not tell you now,Cannot predict now,Concentrate and ask again,Don't count on it,My reply is no,My sources say no,Outlook not so good,Very doubtful")[rand 19])

2
Bir böcek buldum. Magic 8-top olası cevaplar 1 virgül içerdiği için ayırıcı olarak virgül kullanamazsınız: As I see it, yes.
g4v3

1
Ayırıcı olarak tek bir rakam kullanmanızı öneririm. Tırnaklar artık gerekli olmadığından, 1 bayt kazandıracaktır, ancak rakamı ayırmak için hala bir boşluk eklenmelidir split.
g4v3

1
Ayrıca, parantezi atlayabilir printve 1 bayt daha saklayabilirsiniz . Sadece listeden önce bir tekli artı işareti koyun: print((0..9)[5])olur print+(0..9)[5].
g4v3

3

05AB1E , 208 217 bayt

"don'".•W˜FζÃT¥„ò.1₁∍Y<`Ì°5jýúž+ìmHSéÁ¬–xȃø‚ž}_Øviòª§l["]0â^)„2æδ∍G1∊EÌLÝ'îôΛβ;ƒĀαÏw L°gðÈγ³€wE‘f饤šαrˆQŠë¢-º8Æ~ÁŠ∍δBx®(β™Žü6»ƶÙÐ~†«\%ÍŒΘ-´sÈƵJŸ₃H7Ó˜:Å∍₂èÑï∞—Râú'óвb…ÓUXʒǝ₄ÝrÒ₄¨÷ä褓oθWÎλî~bj(Ri
Þиe‘ãj]•", yes"J'x¡Ω

Çevrimiçi deneyin!

Oldukça basit bir çözüm. Ve daha sonra (iç sıkıştırılmış (o cevapları mevcut olmadığından) olası cevaplar karakter x ile birleştirilmiş ), 'x¡Ω x üzerinde bölünmüş ve rastgele seçim pop.

Alfabenin sıkıştırılmasının hoşlanmadığına işaret ettiği için @Emigna 'ya teşekkür ederiz. Sıkıştırılmış ipin don ' ve ' evet ' ile çevrilmesiyle düzeltildi .


Mevcut olmayan bir karaktere ayrılmak güzel bir fikir. Maalesef, alfabe sıkıştırma , boşluklarla ,ve 'boşluklarla değiştirildiğinden , bu 2 satırın çıktısı yanlıştır.
Emigna

@Emigna Gösterdiğiniz için teşekkür ederiz! Bu sorun için daha iyi bir çözüm bulunup bulunmadığını merak ediyorum ... Cevaplarda diğer kullanılmayan karakterleri kullanabilirdim ama sadece iki tane var: q ve x :-(
Kaldo

3

PHP , 412 385 337 384 bayt

<?php $a=explode(1,"It is certain1It is decidedly so1Without a doubt1Yes definitely1You may rely on it1As I see it, yes1Most likely1Outlook good1Yep1Signs point to yes1Reply hazy try again1Ask again later1Better not tell you now1Cannot predict now1Concentrate and ask again1Don't count on it1My reply is no1My sources say no1Outlook not so good1Very doubtful");echo$a[array_rand($a)];

Çevrimiçi deneyin!

Oldukça yalındır çözüm. Dize bir sınırlayıcıya bölün (bu durumda 1) ve diziden rastgele bir öğe seçin.


PPCG'ye Hoşgeldiniz! Gönderinizde bazı küçük biçimlendirme değişiklikleri yaptım ve birkaç küçük önerim var - 1, phpkodunuzu derlemek için bir boşluk eklemeniz gerekir ; 2, eğer yerine '|'ile 1ve |ile 1bayt için -2; 3, Çevrimiçi Olarak Deneyin için bağlantınızı TIO.run olarak değiştirmeyi düşünmelisiniz.
Taylor Scott

Ve işte benim görüşlerime dayanan çalışan bir versiyon. Çevrimiçi deneyin!
Taylor Scott

@TaylorScott <? Php etiketinden sonra boşluk olmadan ortamımda iyi çalışıyor gibi görünüyor. Koşuyorum PHP 7.2.3-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Mar 6 2018 11:18:25) ( NTS ). Daha önceki sürümlerde önemli olup olmadığından emin değilim. Her iki durumda da soruyu düzenledim.
Andrew

Ahh, sadece sürüm olabilir - Sağladığınız bağlantı PHP 7.0.3 sürümünü kullanıyor ve TIO.run'da alan olmadan çalışmıyor
Taylor Scott

2
Sen kullanabilirsiniz <?=ve doğrudan kullanarak patlayabilir yankı [rand(0, 19)]bir değişkene ekleyerek ilk yerine<?= explode("1", "str1str1str")[rand(0, 19)]
Jeroen

3

Javascript, 372 bayt

Shaggy sayesinde -10 bayt

_=>"It is certain.It is decidedly so.Without a doubt.Yes definitely.You may rely on it.As I see it, yes.Most likely.Outlook good.Yep.Signs point to yes.Reply hazy try again.Ask again later.Better not tell you now.Cannot predict now.Concentrate and ask again.Don't count on it.My reply is no.My sources say no.Outlook not so good.Very doubtful".split`.`[Math.random()*20|0]

Çevrimiçi deneyin!


1
Kullanım bitsel ORyerine Math.floor()7 bayt kaydetmek için: Math.random()*20|0.
Shaggy

3

Befunge

1221 870 bayt (tüm alanın çevresi 33x36 30 * 29 karakterdir) Jo King'e, izleyen boşlukları çıkarmama yardım ettiğim için ve randomizörü değiştirmem için beni çağırdığı için teşekkürler.

"<"99+9+1+v
v         <
 >>>>>>>>>>55++v
 0123456789
>??????????<
 0123456789
 >>>>>>>>>>    v
               >88++p       v
v"It is certain"           
v"It is decidedly so"
v"Without a doubt"
v"Yes definitely"
v"You may rely on it"
v"As I see it, yes"
v"Most likely"
v"Outlook good"
v"Yep"
v"Signs point to yes"
v"Reply hazy try again"
v"Ask again later"
v"Better not tell you now"
v"Cannot predict now"
v"Concentrate and ask again"
v"Don't count on it"
v"My reply is no"
v"My sources say no"
v"Outlook not so good"
v"Very doubtful"
>:#,_@

Üstteki çizgi '<' karakterini ve x-pozisyonunu (28) yığının üzerine koyması gereken yere koyar. Sonra rasgele sayı üretecinin türünü gireriz. Bu geliştirilebilir, ancak kısa sürede teslim edebileceğim şey bu ... "Rastgele" sayı, gerçek "rastgele" satırın okunması için dengeleniyor.

Rastgele sayı oluşturulduktan sonra, '<' karakterini o satıra koyarız ve harfler istif üzerinde ve alt satırda tekrar basar.

Not; Eğer bu yazı başlığına bağladığım tercümanı kullanıyorsanız, her çalıştırmadan sonra "Göster" e tekrar tıklamanız gerekir, çünkü '<' karakterinin eklenmesi işlemden sonra kalır.


1
Benim cevabımla aynı formatı kullanmaktan daha iyisin. Çevrimiçi deneyin! . Şimdi olduğu gibi, sonunda bir sürü boş bayt yazdırır
Jo King

Evet, rastgele sayıların önyargılı olmamalarını istedim ama tek bir satır soru işareti kullanabilirdim.
rael_kid 9:18

En azından birkaç yüz baytlık beyazlık alanı kapatabilir ve >:#,_@boş baytların yazdırılmasını önlemek için son satırı değiştirebilirsiniz . Oh ve bir TIO bağlantısı ekleyin.
Jo King,

Bu doğru, bugün bir güncelleme yayınlayacağım.
rael_kid

3

Java 8 , 433 , 392 , 380 , 379 bayt

 a->"It is certain~It is decidedly so~Without a doubt~Yes definitely~You may rely on it~As I see it, yes~Most likely~Outlook good~Yep~Signs point to yes~Reply hazy try again~Ask again later~Better not tell you now~Cannot predict now~Concentrate and ask again~Don't count on it~My reply is no~My sources say no~Outlook not so good~Very doubtful".split("~")[(int)(Math.random()*20)]

Çevrimiçi deneyin!

  • AdmBorkBork sayesinde 41 byte!
  • Kevin sayesinde 10 bayt!
  • Oliver sayesinde 1 byte!

2
Kesinlikle bir sürü baytı kurtarmak için String.split () komutunu kullanabilirsiniz
docs.oracle.com/javase/7/docs/api/java/lang/…

2
As @AdmBorkBork belirtildiği, kullandığınız 41 bayt kaydedebilirsiniz String#split. Ayrıca, (int)(Math.random()*20)yerine 11 bayttan daha fazlasını kaydedebilirsiniz new java.util.Random().nextInt(20). Ve yarı-kolon, lambdalar için byte-sayıma göre sayılmaz. Toplamda: 380 bayt .
Kevin Cruijssen

2
Cevabınızda ve @ KevinCruijssen'in golfünde fazladan bir boşluk var: Don'tyerine kullanın Don' t.
Olivier Grégoire

2

Kırmızı , 367 bayt

prin pick split{It is certain.It is decidedly so.Without a doubt.Yes definitely.You may rely on it.As I see it, yes.Most likely.Outlook good.Yep.Signs point to yes.Reply hazy try again.Ask again later.Better not tell you now.Cannot predict now.Concentrate and ask again.Don't count on it.My reply is no.My sources say no.Outlook not so good.Very doubtful}"."random 20

Çevrimiçi deneyin!

TIO'da gerçekten rastgele görünmüyor (Kırmızı Konsol'da gayet iyi çalışsa da), bu yüzden başlığa rastgele / tohum ekledim.


2

Excel, 399 Bayt

=CHOOSE(1+20*RAND(),"It is certain","It is decidedly so","Without a doubt","Yes definitely","You may rely on it","As I see it, yes","Most likely","Outlook good","Yep","Signs point to yes","Reply hazy try again","Ask again later","Better not tell you now","Cannot predict now","Concentrate and ask again","Don't count on it","My reply is no","My sources say no","Outlook not so good","Very doubtful")

Yana CHOOSE(X.Y,<>)aynıdır CHOOSE(X,<>)bir için, gerekINT

Burada yapabileceğiniz çok fazla golf yok ...


2

Aceto , 345 + 1 = 346 bayt ( -lbayrak için +1 )

"It is certain.It is decidedly so.Without a doubt.Yes definitely.You may rely on it.As I see it, yes.Most likely.Outlook good.Yep.Signs point to yes.Reply hazy try again.Ask again later.Better not tell you now.Cannot predict now.Concentrate and ask again.Don't count on it.My reply is no.My sources say no.Outlook not so good.Very doubtful"'.:Yp

Çevrimiçi deneyin!

Aşırı derecede ilginç değil, ancak bu dilde daha kısa bir şey düşünemiyorum, sıkıştırılmış dizeler veya hiçbir şey.

"...." noktalarla ayrılmış dizgileri it
      '. değişmez dönem
        : döneme ayr
         Y karıştırma yığını
          p print top


-l bayrağı olmadan daha ilginç görünebilir.
Laura Bostan

@LauraBostan Ama ben hilbert eğrileri tip 3 geçmişini bilmiyorum
drham

ve daha fazlası için tüm baytlar \ n
drham

1
Ama evet, kendi başına daha ilginç görünecek
drham

iup ... Golf için -l bayrağı eklendi. Ancak, çok düşkün değilim, dilin bütün noktasını ucuza çalıyor. Belki de Aceto'nun bir sonraki sürümü bu bayrağı bırakacaktır.
Laura Bostan

1

C - 426 bayt

char a[][99]={"It is certain","It is decidedly so","Without a doubt","Yes definitely","You may rely on it","As I see it, yes","Most likely","Outlook good","Yep","Signs point to yes","Reply hazy try again","Ask again later","Better not tell you now","Cannot predict now","Concentrate and ask again","Don't count on it","My reply is no","My sources say no","Outlook not so good","Very doubtful"};int main(){int n;puts(a[n%20]);}

Mümkün olan tüm çıktıları içeren bir dizge dizini indekslemek için başlatılmamış bir değişken mod 20 kullanır. Derleyiciler stdio.h'nin dahil edilmediğinden şikayet eder, fakat iyi çalışır. Muhtemelen bunun nedeni sadece bu yüzden olur neyse bağlantılı standart kütüphane olması. Şanslıyım.


Bazı uygulamalarda dikkat edilmesi gereken, başlatılmamış bir değişken 0 değerine sahiptir, çünkü davranış tanımsızdır. Magic 8-ball'ınıza bunun makinenizde doğru olup olmadığını sorun.
Orion

1

Git, 530 Bayt

package main;import"fmt";func main(){for k:=range map[string]struct{}{"It is certain":{},"It is decidedly so":{},"Without a doubt":{},"Yes definitely":{},"You may rely on it":{},"As I see it, yes":{},"Most likely":{},"Outlook good":{},"Yep":{},"Signs point to yes":{},"Reply hazy try again":{},"Ask again later":{},"Better not tell you now":{},"Cannot predict now":{},"Concentrate and ask again":{},"Don't count on it":{},"My reply is no":{},"My sources say no":{},"Outlook not so good":{},"Very doubtful":{}}{fmt.Print(k);break}}

Go Playground'da, tohumlamanın nasıl çalıştığından dolayı her zaman aynı sonucu verdiğini lütfen unutmayın. Normal bir bilgisayarda çalışırken, her şey olması gerektiği gibi çalışır.
Biraz daha tasarruf etmenin mümkün olduğunu düşünüyorum ama Go'daki bilgim orada duruyor :)

Biçimlendirilmiş ve test edilebilir versiyon


PPCG'ye Hoşgeldiniz! Çevrimiçi Deneyin üzerinde Git tercüman rasgele tohum kullanmak gibi görünüyor.
Dennis,


Sayfayı yeniliyor musunuz? Bu her zaman sonucu önbellekten alır, böylece değişmez. Çalıştır düğmesine tıklamak kodu tekrar çalıştıracaktır.
Dennis

Sürekli olarak yenilenmek için bir CTRL + R ile sonra bile "Kesindir" alıyorum ... Anlamadım: x
Nathanael C.

Yenileme sonucu değişmeyecek; sunucu tarafında önbelleklenirler. Çalıştır düğmesine tıklayın (bir dairede oynat simgesi) veya Ctrl-Enter tuşuna basın.
Dennis

1

Excel-VBA, 362 341 339 Bayt

v=[1:1]:?v(1,Rnd*19)

A1:T1Farklı seçenekler içeren yerlerde . İlk sayfa sırasının tamamını diziye okurv ve ilk 19 değer boyunca rastgele bir nokta indeksler.

Bir dizinin endekslenmesinin tamsayı değerleri gerektirmediğini bulmak şaşırttı


Excel'e cevabınızla ilgili endişelerim burada, çalışma sayfası Excel VBA için bir STDIN olarak sayıldığından daha da fazladır, bu nedenle önceden belirlenmiş bir girişe daha yakındır
Taylor Scott,

0

VBA, 358 bayt

Giriş yapmayan ve STDOUT çıkışına atanan anonim bir VBE acil durum penceresi işlevi.

?Split("It is certain1It is decidedly so1Without a doubt1Yes definitely1You may rely on it1As I see it, yes1Most likely1Outlook good1Yep1Signs point to yes1Reply hazy try again1Ask again later1Better not tell you now1Cannot predict now1Concentrate and ask again1Don't count on it1My reply is no1My sources say no1Outlook not so good1Very doubtful",1)(19*Rnd)

-1

Java 8, 379 Bayt

b->"It is certain-It is decidedly so-Without a doubt-Yes definitely-You may rely on it-As I see it, yes-Most likely-Outlook good-Yep-Signs point to yes-Reply hazy try again-Ask again later-Better not tell you now-Cannot predict now-Concentrate and ask again-Don't count on it-My reply is no-My sources say no-Outlook not so good-Very doubtful".split("-")[(int)(Math.random()*20)]

Çevrimiçi deneyin

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.