Створіть Magic 8 Ball


34

У дитинстві мій друг мав 8-ма кульовий бал, до якого ми б задавали запитання, щоб побачити, яка доля цього питання.

Виклик

Ваше завдання полягає в тому, щоб написати програму (або функцію), яка під час запуску (або виклику) видає (або повертає) випадкову відповідь з можливих відповідей нижче. (Random бути: each output should have a nonzero chance of occurring but they do not need to meet any other criteria)

Можливі відповіді з 8-бального балу Magic (нечутливі до регістру):

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
Це я чи хтось знімає всі відповіді ??????
Дат

1
@ Дат я розмістив щось тут у мета, щоб обговорити це. Я підтримав кожну відповідь, як це завжди роблю за відповіді, які відповідають вимогам моїх запитань. Можливо, втрутиться модератор ...
DevelopingDeveloper

37
@DatSigns point to yes
mbomb007

1
@ mbomb007 Мій улюблений коментар, який я бачив на PPCG поки що!
DevelopingDeveloper

Відповіді:


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 / кожне слово було в словнику SOGL!


Це приголомшлива відповідь !!!
DevelopingDeveloper

Я хотів би поглянути на двигун стиснення SOGL, але, на жаль, я не розмовляю з JavaScript :(
caird coinheringaahing

Зачекайте, SOGL - мова на основі JavaScript?
Кудлатий

@cairdcoinheringaahing SOGL написаний у "Обробці", а відповідні файли стиснення - тут і тут . Хоча Обробка є мовою на основі 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
Я буду використовувати цей. Це (майже) завжди дає позитивну відповідь. На жаль, відповідь також пахне
рибкою

15

Python 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вбудований до index ( hash(id)%20), який повертає випадкове значення за початок інтерпретатора Python з моменту https://bugs.python.org/issue13703 . Це не випадково для порожнього рядка, хоча (завжди 0), тому потрібно використовувати щось інше, idвбудований!

По-друге, я міг би використовувати idпрямо, але, здається, завжди створює парні числа. IIRC, id(object)в CPython просто повертає місце пам'яті object, тому це має сенс. Можливо, якби я використав Jython або IronPython, я міг би пропустити поділ на 7. У будь-якому випадку, hash(id)vs id(0)//7дорівнює Python 3, але може використовувати /оператор для обрізання цілого поділу в Python 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

Спробуйте в Інтернеті!

Хо-гул. Бере всі результати, об'єднані разом з 0s, а потім -splits 0для створення масиву рядків. Проходить той масив, до Get-Randomякого буде випадковим чином вибрати один із них. Це залишилося на конвеєрі, і вихід неявний.


11

Python 2 , 385 байт

-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 ... Продовжуйте - я смію розкрити, хто ви є, та пояснити своє обґрунтування. Або ви будете продовжувати анонімно ховатися в тіні?
Digital Trauma

7

Bash + GNU комунальні послуги, 230

  • 15 байт збережено завдяки @Dennis.
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. Також останні десять байтів програми можна видалити.
Денніс

@ Денніс спасибі! Додатковий вихід до 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?`

Спробуйте в Інтернеті! Редагувати: Збережено 1 байт стисканням doubtта 1 байт шляхом зменшення розміру всього, щоб я міг стиснути reply. Потім зберегли 10 байтів, використовуючи гольфіст @ Лео Ретіна Колмогоров у тексті нижнього розміру (що збігається випадково - кількість байтів, збережених у моїй 333-байтній відповіді).



@Leo Зауважимо, що Retina 0.8.2 - інша мова
mbomb007

@ mbomb007 Я знаю, але для таких простих підстановок він має той самий синтаксис, що і Retina 1.0. Я щойно вказував, що гольфіст Колмогорова був написаний для старої версії Retina, але він все ще може бути використаний у цій справі.
Лев

4

Кокос , 380 байт

Кокосовий горіх Порт totallyhuman «сек відповідь

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 байт

-2 байти завдяки панові Xcoder. -1 байт завдяки користувачу202729.

“æ⁽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 байт . Просто додайте два останні символи.
користувач202729

(Я маю на увазі, додати ỴXдо кінця коду, щоб він вибрав випадково один із них)
user202729

4

05AB1E , 171 байт

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

Спробуйте в Інтернеті!

Пояснення

“ ... “висуває рядок усіх необхідних слів.
Деякі слова взяті безпосередньо зі словника 05ab1e.
Деякі виписані в простому вигляді (як haze).
Деякі з них - комбінований словник та ascii (як 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 ,і 'додано.
Емінья

D'oh! Ах, я бачу, так. До речі, видаліть дані з TIO, це трохи заплутано.
Чарівний восьминога Урна

@MagicOctopusUrn: До! Спасибі. Я не знав, що залишив це там: Р
Емінья

166: ТІО . Тричі -1 від використання нових словникових слів ( ye, donі та ha), і -2 від сортування списку за кількістю слів і використання дельта-стиснення.
Гриммі

4

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

Спробуйте в Інтернеті!

  • 1 байт завдяки @ benj2240

Ви можете голити байт ?.замість цього '.'.
benj2240

@ benj2240 вау, я цього раніше не бачив. Дуже круто.
BigRon

1
Мені довелося піти копати документацію на той ?
самий

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-куля містить кому: 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 за вказівку, що стиснення алфавіту не подобається "або, набагато. Виправлено за допомогою заміщення стисненого рядка на дон і , так .


Приємна ідея розділитись на персонажа немає. На жаль, стиснення алфавіту замінює ,і 'пробіли, тому вихід для цих 2 рядків неправильний.
Емінья

@Emigna Дякую за те, що вказав на це! Мені цікаво, чи не існує кращого виправлення для цього питання ... Я міг би використовувати у відповідях інші не використовувані символи, але їх є лише два: q і x :-(
Калдо

3

PHP , 412 385 337 384 байт

<?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, як надано перевагу громаді.
Тейлор Скотт

І ось робоча версія, заснована на моїх відгуках. Спробуйте в Інтернеті!
Тейлор Скотт

@TaylorScott Здається, що це добре працює над моїм оточенням без місця після тегу <? Php. Я бігаю PHP 7.2.3-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Mar 6 2018 11:18:25) ( NTS ). Не впевнений, чи важливо це в попередніх версіях чи ні. У будь-якому випадку я редагував це питання.
Андрій

Ах, це може бути просто версія - Надане вами посилання використовує PHP версії 7.0.3, і вона не працює на TIO.run без місця
Тейлор Скотт

2
Ви можете використовувати <?=та повторювати вибух безпосередньо, використовуючи [rand(0, 19)]замість того, щоб спочатку додавати до змінної<?= explode("1", "str1str1str")[rand(0, 19)]
Jeroen

3

Javascript, 372 байт

-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
Використання побітового ORзамість , Math.floor()щоб зберегти 7 байт: Math.random()*20|0.
Кудлатий

3

Befunge

1221 870 байт (периметр всього поля - 33x36 30 * 29 charachters) Завдяки Джо Кінгу за те, що він допомагав мені видаляти останні нулі та закликав мене змінити рандомізатор.

"<"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
Вам набагато краще використовувати той самий формат, що і мій> <> відповідь. Спробуйте в Інтернеті! . Як і зараз, він також друкує купу нульових байтів наприкінці
Джо Кінг

Так, я знаю, я хотів, щоб випадкове число речей не було занадто упередженим, але я міг просто використовувати один рядок знаків запитання.
rael_kid

Ви можете принаймні виграти пару сотень байт пробілів і змінити останній рядок, >:#,_@щоб уникнути друку нульових байтів. О, і додай посилання TIO.
Джо Кінг

Це правда, я опублікую оновлення пізніше сьогодні.
rael_kid

3

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

Спробуйте в Інтернеті!

  • 41 байт завдяки AdmBorkBork!
  • 10 байт завдяки Кевіну!
  • 1 байт завдяки Оліверу!

2
Безумовно, ви можете використовувати String.split (), щоб зберегти купу байтів - docs.oracle.com/javase/7/docs/api/java/lang/…
AdmBorkBork

2
Як зазначає @AdmBorkBork , ви можете зберегти 41 байт за допомогою String#split. Крім того, ви можете зберегти додаткові 11 байт, використовуючи (int)(Math.random()*20)замість new java.util.Random().nextInt(20). І пів-двокрапка не зараховується до числа байт для лямбда. Так що загалом: 380 байт .
Кевін Круїссен

2
У вашій відповіді та в гольфі @ KevinCruijssen є додаткове місце: використовуйте Don'tзамість Don' t.
Олів’є Грегоар

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 (хоча він працює чудово у червоній консолі), тому я додав до заголовка випадковий / насіннєвий.


2

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

Ацето , 345 + 1 = 346 байт (+1 для -lпрапора)

"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 може виглядати цікавіше.
Лаура Бостан

@LauraBostan Але я не знаю кривих Гільберта минулого типу 3
drham

і це більше байтів для всіх \ n
drham

1
Але так, це виглядало б "цікавіше" саме по собі
drham

iup ... для гольфу додано прапор -l. Однак мені це не дуже подобається, викрадає недорого всю мову. Можливо, наступна версія Aceto відмовиться від цього прапора.
Лаура Бостан

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, завдяки тому, як працює посів, завжди дається однаковий результат. Під час роботи на звичайному комп’ютері все працює як слід.
Я думаю, що можна зекономити трохи більше, але мої знання в Go зупиняються на цьому :)

Відформатована та перевірена версія


Ласкаво просимо до PPCG! Перекладач Перейти на спробувати Інтернет , здається, використовує випадкове насіння.
Денніс

Мені, мабуть, страшенно не пощастить тоді: D:
Натанаель C.

Ви оновлюєте сторінку? Це отримає результат із кешу кожного разу, тому він не зміниться. Натиснувши кнопку "Запустити", знову запустіть код.
Денніс

Я продовжую отримувати "Напевно", навіть після того, як CTRL + R - важко оновити ... Я не розумію: x
Натанаель C.

Оновлення не змінить результат; вони кешовані на стороні сервера. Клацніть кнопку запуску (значок відтворення у колі) або натисніть Ctrl-Enter.
Денніс

1

Excel-VBA, 362 341 339 байт

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

Де A1:T1 містяться різні варіанти. Читає весь перший рядок аркуша в масивv і індексує випадкову точку вздовж перших 19 значень.

З подивом виявив, що для індексації масиву не потрібно цілих значень


Мої занепокоєння щодо вашої відповіді на Excel тут ще більше, оскільки робочий аркуш вважається STDIN для Excel VBA, тому це ближче до попередньо визначеного вводу
Тейлор Скотт,

0

VBA, 358 байт

Анонімна функція негайного вікна VBE, яка не приймає вводу та виводить STDOUT.

?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 байт

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

Спробуйте в Інтернеті

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.