Это я. Кейв Джонсон.
Это 21 мая. Вы работаете в Aperture Science, лучшей компании на Земле, и завтра мы выпускаем версию 3.0 нашей флагманской оконной системы (или WindowS ): CavOS. К сожалению, завтра утром наш главный конкурент также выпустит версию 3.0 их WindowS !
Мне стало известно, Кейв Джонсон, генеральный директор, что известно WindowS есть одна особенность, которой нет в CavOS: игра Пасьянс Клондайк. Я, Кейв Джонсон, обеспокоен тем, что это упущение приведет к резкому снижению продаж. Таким образом, я, Кейв Джонсон, разработал соревнование между стажерами по программированию, чтобы создать игру Пасьянс. Программист, чья заявка выбрана, получит возможность присоединиться к захватывающему проекту GlaDOS AI.
У меня, Кейва Джонсона, есть несколько требований:
- В связи с тем, что Программное обеспечение должно появиться завтра, будет выбрана самая короткая программа , чтобы она могла поместиться в резервных секторах уже напечатанных дискет с изображениями.
Не беспокойтесь об игровом процессе. У наших клиентов есть принтеры, не так ли? Все, что мне нужно, чтобы ваша программа создала список, показывающий: порядок карт в колоде и содержимое каждой из 7 стопок. Колода будет сдана сверху. Сваи будут видны снизу. Используйте сокращения H, D, C, S для сердец, бриллиантов, треф и пиков. Используйте сокращения K, Q, J, A для короля, королевы, джека и туза. Каждая карта должна быть отделена пробелом. Первая строка должна показывать колоду, вторая - карту первой и наименьшей колоды, третья - карты второй колоды и так далее. Вы можете использовать T вместо 10, если хотите.
Мы делаем здесь лимонад, а не сосем лимоны. Я, Кейв Джонсон, не люблю проигрывать, как и наши клиенты. Каждая игра должна быть выигрышной
Игра должна быть рандомизированной. Не пытайтесь кодировать одну игру. Существует 7000 триллионов возможных рук Клондайка, и около 90% из них являются выигрышными. Я был бы счастлив с программой, которая может производить 256 или более разных рук. Если вашему языку не хватает способа получения случайных чисел (из таймера и т. П.), Тогда предположите, что вы можете получить начальное число способом, подходящим для вашего языка.
Наши клиенты достаточно умны. Предположим для выигрыша, что они играют в ничью 3 без ограничений по времени в колоде.
От имени всех (и всего) в Aperture я желаю всем удачи. Мы рассчитываем на тебя.
" Кэролайн? Как мне отключить эту чертову штуку? "
Не по характеру: принять правила Windows, Draw 3, пасьянс Not-Vegas. Я пытался пересечь каждую букву t и расставить все точки над i, но спрашиваю, есть ли у вас вопросы. Удачи.
Пример вывода:
5H AS 7C 8S QH ...
AH
JS 10S
JC JH 7C
9D AC 8D 7C
.
.
.
Ответы:
Brainfuck -
15751365Я ужасно злоупотребляю минимальным количеством уникальных сделок. Это даст ровно 256 разных выходов. Он принимает один байт ввода в качестве своего случайного начального числа.
Определенно может быть сжато больше, но это своего рода природа языка. Это быстро и грязно, и это работает.
Пример вывода (input = 98):
Довольно интуитивно понятно, что все колоды этого формата можно выиграть.
источник