매직 8 볼 만들기


34

어렸을 때, 친구는 질문을하고 그 질문의 운명이 무엇인지 수 있는 마술 8 구슬 을 가지고있었습니다.

도전

당신의 도전은 실행 (또는 호출) 될 때 아래 가능한 답변들로부터 무작위 답변을 출력 (또는 리턴)하는 프로그램 (또는 함수)을 작성하는 것입니다. (랜덤 인 : each output should have a nonzero chance of occurring but they do not need to meet any other criteria)

Magic 8-ball의 가능한 답변은 대소 문자를 구분하지 않습니다.

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

입력

입력이 없습니다.

산출

위에서 무작위로 선택하십시오. 사건은 중요하지 않습니다.

규칙

표준 허점 은 허용되지 않습니다.

이것은 이므로 각 언어에 대해 가장 짧은 바이트 단위의 코드가 이깁니다!


2
"입력이 허용되지 않음"을 "입력 없음"으로 변경했는데 일부 언어에는 공백 / 널 인수가 입력으로 필요합니다.
Rɪᴋᴇʀ

12
나 또는 누군가가 모든 답변을 다운 투표하고 있습니까?
Dat

1
@Dat 내가 뭔가를 게시 여기에 이 문제를 논의하기 위해 메타에. 나는 항상 내 질문에 대한 요구 사항을 충족시키는 답변을하기 때문에 모든 답변을 찬성했습니다. 아마도 중재자가 개입 할 것입니다.
DevelopingDeveloper

37
@DatSigns point to yes
mbomb007

1
@ mbomb007 내가 지금까지 PPCG에서 본 가장 좋아하는 의견!
개발

답변:


22

SOGL V0.12 , 166 바이트

,▓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

여기 사용해보십시오!

\ o / 모든 단어가 SOGLs 사전에있었습니다!


이것은 멋진 답변입니다!
개발

SOGL의 압축 엔진을 살펴보고 싶지만 불행히도 JavaScript를 사용하지 않습니다 :(
caird coinheringaahing

잠깐, SOGL은 JavaScript 기반 언어입니까?
얽히고 설킨

@cairdcoinheringaahing SOGL은 Processing으로 작성되었으며 관련 압축 파일은 여기여기에 있습니다 . Processing은 Java 기반 언어이지만 : p
dzaima

18

> <> 438 바이트

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"

온라인으로 사용해보십시오!

그다지 흥미롭지는 않지만 무작위성이 균일하지 않은 첫 번째 대답이라고 생각합니다. 나는 모든 부정적인 메시지를 최소한으로 넣었다. :)

몇 가지 설명 :

포인터가 첫 번째 줄에서 바로 시작됩니다. x포인터를 임의의 기본 방향으로 변경합니다. 올라가거나 내려 가면, 그냥 다른 것을 만나게 x됩니다. 제대로 작동하면 튀어 나와 |동일 x합니다. 왼쪽으로 가면 줄 바꿈되어 해당 줄의 텍스트를 스택으로 푸시합니다. 그런 다음 대부분의 선 ^은 방향을 위쪽으로 변경하는 동일한 트랙에 부딪 칩니다. 이것은 o첫 번째 줄을 반복하며 비어있을 때까지 스택을 출력합니다. 특별한 경우는 Yep가로 루프 가있는 선 |o<입니다.


7
나는 이것을 사용할 것이다. 그것은 (거의) 항상 긍정적 인 반응을줍니다. 불행히도 대답은 ... 비린내 냄새
Suppen

15

파이썬 2, 369 368 바이트

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]

파이썬 3, 371 바이트

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])

이전에 hash내장 내장 색인 ( hash(id)%20) 을 사용하여 https://bugs.python.org/issue13703 이후 파이썬 인터프리터의 시작마다 임의의 값을 반환합니다 . 빈 문자열에 대해서는 무작위가 아니지만 (항상 0) id내장 된 다른 것을 사용해야합니다 !

두 번째 모양에서는 id직접 사용할 수 있지만 항상 짝수를 생성하는 것 같습니다. id(object)CPython의 IIRC 는의 메모리 위치 만 반환 object하므로 이치에 맞습니다. Jython 또는 IronPython을 사용한 경우 7으로 나누기를 건너 뛸 수 있습니다. 어쨌든, 파이썬 3 에서는 hash(id)vs id(0)//7가 동일하지만 /파이썬 2에서 정수 나누기를 자르고 바이트를 절약 하기 위해 연산자를 사용할 수 있습니다 .


13

PowerShell , 354 바이트

"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

온라인으로 사용해보십시오!

hum 함께 연결된 모든 결과 취 0, S를 다음 -split에 s의 0문자열 배열을 만들. Get-Random그중 하나를 무작위로 선택할 배열을 전달합니다. 그것은 파이프 라인에 남아 있으며 출력은 암시 적입니다.


11

파이썬 2 , 385 바이트

ovs 덕분에 -1 바이트

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('.'))

온라인으로 사용해보십시오!


22
@Downvoter, 왜 모든 답을 다운 보트했는지 물어봐도 될까요?
완전히 인간적인

7
의심스러운 투표 행동으로 저를 놀라게했습니다.
얽히고 설킨

9

애플 스크립트, 391

나는 AppleScript의 목록에 some item메소드 가있는 방법을 좋아합니다 .

{"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에서 의미있는 다운 다운 터의 모든 답을 알아 봅니다. 계속하십시오-나는 당신이 누구인지를 밝히고 당신의 다운 투표 이론적 근거를 설명하기 위해 당신을 감히합니다. 아니면 익명으로 계속 그림자 속에 숨어 있을까요?
디지털 외상

7

배쉬 + GNU 유틸리티, 230

  • @Dennis 덕분에 15 바이트가 절약되었습니다.
sed 1d $0|zcat|shuf -n1
# zopflied 8 ball list

이진 zopfli 출력은 여기에 잘 표시되지 않습니다. 대신 base64로 인코딩 된 데이터에서 스크립트를 재구성 할 수 있습니다.

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

질문에서 허용하는 것처럼 압축 된 데이터는 모두 소문자로 압축 해제됩니다. 이것은 zopfli 압축을 조금 더 효율적으로 만들고 16 바이트를 절약합니다.


tail +2나를 위해 작동하지 않지만 sed 1d $0어쨌든 바이트를 저장합니다. 또한 STDERR 로의 출력은 기본적으로 허용되므로 exit. 또한 프로그램의 마지막 10 바이트를 제거 할 수 있습니다.
Dennis

@ 데니스 감사합니다! STDERR에 대한 추가 출력은 항상 약간 불편 함을 느끼게하지만 실행해야한다고 생각합니다.
디지털 외상

6

R , 360 바이트

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

온라인으로 사용해보십시오!

가장 우아한 솔루션은 아닙니다. R에는 stdin소스 파일로 리디렉션 되는 깔끔한 기능이 있으므로 (작은) 데이터 세트를 소스 코드에 넣어 문자열 분할 또는 더 나쁜 바이트를 저장하여 벡터 자체를 구성 할 수 있습니다 (모든 인용 부호는 서둘러 추가됩니다). 무작위 샘플링을위한 내장 기능과 함께 짧은 답변이됩니다.


6

, 203 184 바이트

‽⪪”}∨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&”¶

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 편집 : 모든 것을 줄임으로써 19 바이트를 절약했습니다. 설명:

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

5

망막 , 333 331 321 바이트


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?`

온라인으로 사용해보십시오! 편집 : 압축 doubt하여 1 바이트를 저장하고 압축 할 수 있도록 모든 것을 소문자로 1 바이트 저장했습니다 reply. 그런 다음 @Leo의 Retina Kolmogorov 골퍼를 소문자 텍스트에 사용하여 10 바이트를 절약했습니다.



@Leo Retina 0.8.2는 다른 언어입니다
mbomb007

@ mbomb007 알고 있지만, 이와 같은 간단한 대체의 경우 Retina 1.0과 동일한 구문을 사용합니다. 나는 Kolmogorov 골퍼가 이전 버전의 Retina 용으로 작성되었지만이 경우에도 여전히 사용할 수 있다고 지적했습니다.
Leo

4

코코넛 , 380 바이트

완전 인간답변 코코넛 포트

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('.'))

온라인으로 사용해보십시오!


4

T-SQL, 393 바이트

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()

이 기능 STRING_SPLIT은 SQL 2016 이상에서만 사용할 수 있습니다.

이전 버전에서 사용할 수있는 최고 VALUES('It is certain'),('It is decidedly so'),...는 464 자였습니다.

작업 부분을 볼 수 있도록 형식화되었습니다.

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

NEWID() 의사 난수 GUID를 새로 생성하므로 의사 난수 정렬을 수행 할 수 있습니다.


4

젤리 , 201 바이트

Mr. Xcoder 덕분에 -2 바이트. user202729 덕분에 -1 바이트.

“æ⁽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

온라인으로 사용해보십시오!

젠장 , SOGL의 압축이 좋습니다.



201 바이트 . 마지막 두 문자 만 추가하십시오.
user202729

( ỴX즉, 코드 끝에 추가 하여 코드 중 하나에서 임의로 선택 함)
user202729

4

05AB1E , 171 바이트

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

온라인으로 사용해보십시오!

설명

“ ... “필요한 모든 단어의 문자열을 푸시합니다.
일부 단어는 05ab1e 사전에서 직접 가져옵니다.
일부는 일반 아스키로 작성되었습니다 (예 :) haze.
일부는 사전과 아스키 (예 : do+ n't)를 결합한 것 입니다.

그런 다음 처리 코드는 다음과 같습니다.

#                 # 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


1
@MagicOctopusUrn : 나는 그것이 182 ,이고 '추가 되었다고 생각합니다 .
Emigna

도! 아 알 겠어요. 그런데 TIO에서 입력을 제거하는 것은 약간 혼란 스럽습니다.
Magic Octopus Urn

@MagicOctopusUrn : Doh! 감사. 나는 거기에 그것을 떠났다는 것을
몰랐다

166 : TIO . -1은 새로운 사전 단어 ( ye,, donha)를 사용하고 -2는 단어 수를 기준으로 목록을 정렬하고 델타 압축을 사용하여 -2입니다.
그리미

4

루비, 362,361 바이트

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

온라인으로 사용해보십시오!

  • @ benj2240 덕분에 1 바이트

?.대신 대신 바이트를 면도 할 수 있습니다 '.'.
benj2240

@ benj2240 와우, 나는 전에 그것을 보지 못했다. 매우 시원합니다.
BigRon


3

파이썬 3, 386 바이트

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

펄, 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
나는 버그를 발견했다. Magic 8-ball의 가능한 답변 중 하나에 쉼표가 포함되어 있으므로 쉼표를 구분 기호로 사용할 수 없습니다 As I see it, yes.
g4v3

1
한 자리수를 구분 기호로 사용하는 것이 좋습니다. 따옴표가 더 이상 필요하지 않으므로 1 바이트를 절약하지만 숫자와와를 구분하려면 공백을 추가해야합니다 split.
g4v3

1
또한 괄호를 생략 print하고 1 바이트를 더 절약 할 수 있습니다 . 그냥 목록 전에 단항 더하기 기호를 넣어 : print((0..9)[5])이 될 것입니다 print+(0..9)[5].
g4v3

3

05AB1E , 208 217 바이트

"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¡Ω

온라인으로 사용해보십시오!

아주 기본적인 해결책입니다. (이 답변에 존재하지 이후) 다음합니다 (내부 압축 가능한 답변은 문자 X와 연결되어 ), 'x¡Ω의 X의 분할 및 임의의 선택 팝업.

알파벳 압축이 '또는을 좋아하지 않는다는 점을 지적한 @Emigna에게 감사드립니다. 압축 문자열을 don ', yes 로 대체하여 수정했습니다 .


존재하지 않는 캐릭터를 분할하는 것이 좋습니다. 불행하게도 알파벳 압축을 대체가 ,'공백, 그 2 줄의 출력이 잘못 있도록합니다.
Emigna

@Emigna 지적 해 주셔서 감사합니다! 이 문제에 대해 더 나은 해결책이 없는지 궁금합니다. 답변에 사용되지 않은 다른 문자를 사용할 수 있었지만 두 가지만 있습니다 : q와 x :-(
Kaldo

3

PHP , 412 385 337384 바이트

<?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)];

온라인으로 사용해보십시오!

상당히 간단한 솔루션. 문자열을 구분 기호 (이 경우 1)로 나누고 배열에서 임의의 요소를 선택하십시오.


PPCG에 오신 것을 환영합니다! 게시물의 서식을 약간 변경했으며 몇 가지 제안이 있습니다. 1, php코드를 컴파일하려면 공백을 추가해야합니다 . 2, 당신은 대체 할 수 있습니다 '|'1모든 |1바이트 -2; 3 커뮤니티의 선호에 따라 온라인 사용해보기 링크를 TIO.run으로 변경하는 것을 고려해야합니다.
Taylor Scott

그리고 여기 내 의견을 바탕으로 작동하는 버전이 있습니다. 온라인으로 사용해보십시오!
Taylor Scott

@TaylorScott <? php 태그 뒤에 공백없이 내 enovironment에서 잘 작동하는 것 같습니다. 나는 달리고있다 PHP 7.2.3-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Mar 6 2018 11:18:25) ( NTS ). 이전 버전에서 중요한지 확실하지 않습니다. 어느 쪽이든, 나는 질문을 편집했습니다.
Andrew

아, 그냥 버전이 될 수 있습니다 - 당신이 사용 된 PHP 버전 7.0.3을 제공하는 링크를, 그리고 공간없이 TIO.run에서 실행되지 않습니다
테일러 스콧

2
변수에 먼저 추가 <?=하는 [rand(0, 19)]대신 직접 사용하여 폭발을 사용 하고 반향 할 수 있습니다.<?= explode("1", "str1str1str")[rand(0, 19)]
Jeroen

3

자바 스크립트, 372 바이트

Shaggy 덕분에 -10 바이트

_=>"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]

온라인으로 사용해보십시오!


1
7 바이트를 저장하는 OR대신 비트 단위 를 사용하십시오 . Math.floor()Math.random()*20|0
Shaggy

3

펀지

1221 870 바이트 (전체 필드의 길이는 33x36 30 * 29 문자) 후행 널을 제거하고 무작위 추출기 를 변경하도록 촉구 한 Jo King에게 감사합니다.

"<"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"
>:#,_@

맨 위 줄에는 '<'문자와 x 위치 (28)가 스택에 있어야합니다. 그런 다음 일종의 난수 생성기를 입력하십시오. 이것은 개선 될 수 있지만, 이것이 짧은 통지로 전달할 수있는 것입니다. "임의"숫자는 실제 "임의"행을 읽을 수 있도록 오프셋됩니다.

난수가 생성 된 후에, 우리는 그 줄에 '<'문자를 넣고 문자를 스택에 넣고 맨 아래 줄에 다시 출력합니다.

노트; 이 게시물 제목에 링크 된 인터프리터를 사용하는 경우 실행 후에 '<'문자 추가가 남아 있으므로 각 실행 후에 "표시"를 다시 클릭해야합니다.


1
내> <> 답변과 동일한 형식을 사용하는 것이 훨씬 좋습니다. 온라인으로 사용해보십시오! . 현재와 ​​마찬가지로, 끝 부분에 널 바이트도 출력합니다.
Jo King

예, 난 임의의 숫자가 너무 치우 치지 않기를 원했지만 한 줄의 물음표를 사용할 수있었습니다.
rael_kid

최소한 수백 바이트의 공백을 제거하고 >:#,_@널 바이트를 인쇄하지 않도록 마지막 행을 변경할 수 있습니다 . 아, 그리고 TIO 링크를 추가하십시오.
Jo King

사실입니다. 오늘 업데이트를 나중에 게시하겠습니다.
rael_kid

3

자바 8 , 433 , 392 , 380 , 379 바이트

 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)]

온라인으로 사용해보십시오!

  • AdmBorkBork 덕분에 41 바이트!
  • Kevin 덕분에 10 바이트!
  • Oliver 덕분에 1 바이트!

2
String.split ()을 사용하여 많은 바이트를 저장할 수 있습니다. docs.oracle.com/javase/7/docs/api/java/lang/…
AdmBorkBork

2
으로 @AdmBorkBork가 언급 한, 당신은 사용하여 41 바이트를 저장할 수 있습니다 String#split. 또한 (int)(Math.random()*20)대신을 사용하여 추가 11 바이트를 저장할 수 있습니다 new java.util.Random().nextInt(20). 세미콜론은 람다의 바이트 수에 포함되지 않습니다. 따라서 총 380 바이트 입니다.
Kevin Cruijssen

2
사용 : KevinCruijssen의 골프 @ 답과에 여분의 공간이있다 Don't대신은 Don' t.
Olivier Grégoire

2

빨강 , 367 바이트

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

온라인으로 사용해보십시오!

TIO에서는 실제로 무작위로 보이지는 않지만 (Red Console에서는 제대로 작동하지만) 헤더에 무작위 / 시드를 추가했습니다.


2

엑셀, 399 바이트

=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")

이후 CHOOSE(X.Y,<>)동일하다 CHOOSE(X,<>)에 대한, 아니 필요INT

그래도 골프는 그리 많지 않습니다 ...


2

Aceto , 345 + 1 = 346 바이트 ( -l플래그의 경우 +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

온라인으로 사용해보십시오!

지나치게 흥미롭지는 않지만이 언어로 더 짧은 것을, 압축 문자열이나 아무것도 생각할 수 없습니다.

마침표로 구분 된 "...."푸시 문자열
      '. 문자 기간
        : 기간 분할
         Y 셔플 스택
          p 프린트 상단


-l 플래그가 없으면 더 흥미로워 보일 수 있습니다.
Laura Bostan

@LauraBostan 그러나 나는 타입 3을
넘어서서

그리고 그것은 모든 \ n에 대한 더 많은 바이트입니다
drham

1
그러나 그렇습니다. 더 흥미로워 보일 것입니다
drham

iup ... -l 플래그가 골프 용으로 추가되었습니다. 그러나 나는 그것을 좋아하지 않으며 언어의 요점을 싸게 훔칩니다. 아마도 다음 버전의 Aceto가이 플래그를 포기할 것입니다.
Laura Bostan

1

C-426 바이트

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]);}

초기화되지 않은 변수 mod 20을 사용하여 가능한 모든 출력을 포함하는 문자열 배열로 색인합니다. 컴파일러는 stdio.h가 포함되어 있지 않다고 불평하지만 정상적으로 작동합니다. 어쨌든 표준 라이브러리가 연결되어 있기 때문일 수 있습니다 . 운이 좋은 날.


일부 구현에서 주목할 가치가있는 것은 초기화되지 않은 변수의 값은 0입니다. 동작은 잘 정의되어 있지 않기 때문입니다. 당신의 마술 8 구에게 이것이 당신의 기계에 맞는지 물어보십시오.
오리온

1

이동, 530 바이트

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에서는 시드 작동 방식 때문에 항상 동일한 결과를 제공합니다. 일반 컴퓨터에서 실행하면 모든 것이 정상적으로 작동합니다.
조금 더 절약 할 수 있다고 생각하지만 Go에 대한 나의 지식은 거기서 멈 춥니 다. :)

형식화되고 테스트 가능한 버전


PPCG에 오신 것을 환영합니다! 그만큼Try It Online Go 인터프리터 는 임의의 시드를 사용하는 것 같습니다.
Dennis

나는 D보다 굉장히 운이 없어야한다.
Nathanael C.

페이지를 새로 고침 하시겠습니까? 매번 캐시에서 결과를 가져 오므로 변경되지 않습니다. 실행 버튼을 클릭하면 코드가 다시 실행됩니다.
Dennis

CTRL + R을 사용하여 하드 화면을 새로 고침 한 후에도 "확실합니다"라는 메시지가 계속 표시됩니다.
나다나엘 C.

새로 고침해도 결과는 바뀌지 않습니다. 서버 측에 캐시됩니다. 실행 버튼 (원에서 재생 아이콘)을 클릭하거나 Ctrl-Enter를 누릅니다.
Dennis

1

Excel-VBA, 362 341 339 바이트

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

어디는 A1:T1다른 옵션이 포함되어 있습니다. 시트의 첫 번째 행 전체를 배열로 읽고 v처음 19 개의 값을 따라 임의의 점을 색인화합니다.

배열 인덱싱에 정수 값이 필요하지 않다는 사실에 놀랐습니다.


워크 시트가 Excel VBA의 STDIN으로 계산되므로 Excel에 대한 귀하의 답변에 대한 저의 우려는 더욱 여기에 있습니다. 따라서 미리 결정된 입력에 더 가깝습니다
Taylor Scott

0

VBA, 358 바이트

STDOUT으로 입력 및 출력하지 않는 익명 VBE 즉시 창 기능.

?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

자바 8, 379 바이트

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)]

온라인으로 사용해보십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.