Создайте сетку букв / пробелов 4x12:
Каждый кубик должен появляться ровно один раз, местоположение выбирается случайным образом. Места должны быть приближены к равномерной случайной перестановке кости. Отображение случайного (опять же, приблизительно одинакового) лица каждого кубика. Выровнять по левому краю лицо в окне из 3 символов. Например,
A E A A
E C D E
D A Qu E
E A H D
Это нерандомизированная доска в нужном мне формате. Промежуточное место разрешено.
Кости:
A A E E G N
E L R T T Y
A O O T T W
A B B J O O
E H R T V W
C I M O T U
D I S T T Y
E I O S S T
D E L R V Y
A C H O P S
H I M N Qu U
E E I N S U
E E G H N W
A F F K P S
H L N N R Z
D E I L R X
Забавный факт: в наборе всего 1 К Какие еще письма исключительно делятся тем, что умирают?
Это код-гольф, поэтому выигрывает программа с самым коротким байтом!
Ответы:
GolfScript, 116 байт
Поскольку оценка в байтах, я думаю, это означает, что мы можем использовать все байты в решении. Выход за пределы печатаемого набора ASCII позволяет несколько более короткое решение, чем у Питера Тейлора , за счет усложнения отображения кода здесь. Без непечатных данных мой код выглядит так:
Это очень похоже на решение Питера Тейлора, и я признаю, что бесстыдно позаимствовал его (например,
.81=' u '2/=
уловку), хотя я думаю, что мне удалось немного сократить его перетасовку, даже потратив дополнительныйсимволбайт для лучшей случайности.Двоичная строка в начале скрипта содержит непечатаемые символы, поэтому ее нельзя вставить напрямую. Вместо этого я предоставлю скрипт в виде шестнадцатеричного дампа:
В Linux или любой системе с
xxd
установленной утилитой этот шестнадцатеричный дамп можно превратить в работающую 116-байтовую программу GolfScript, пропустив ееxxd -r
.Edit: Заменены
999rand
с9.?rand
для гораздо лучшей случайности. Перестановка должна быть примерно настолько близкой к идеальной, насколько позволяет исходный ГСЧ.источник
Python 2,7,
253 229215 символовБольшинство персонажей - это просто кости. Я не хотел тратить слишком много времени, пытаясь уменьшить его слишком много
незначительное редактирование: удалены 2 ненужных байта (лишние пробелы)
edit2: до 229
edit3: до 215
источник
print a+' u'[a=='Q']
иprint'\n'[j%4:]
from random import*
и удалите всеr.
. 2) Замените разделители в строке на `` (пробел) иstr.split
используйте аргумент по умолчанию '. 3) Избавиться от всего, что связано сj
и использовать'\n'[len(d)%4:]
. 4) Используйтеlist.pop
аргумент по умолчанию. 5) ... 6) Прибыль!j=0...+'\n'[j%4:]
его для работыGolfScript (
141 139137символовбайтов)Из них 94 расширяются до строки, содержащей кости. Рисунок не содержит ненужной новой строки, вставленной для переноса, чтобы код можно было просматривать без прокрутки:
источник
Рубин,
201197 символов(и это однострочник)
Редактировать 1: Использовать% W (), чтобы избежать .split и пару кавычек.
Редактировать 2: Сделано в спецификации (два пробела между каждым выходным столбцом)
источник
x.join(" ").gsub(/Q ?/,"Qu")
бы это за счет трех дополнительных символов.)join
строке и лишний пробел и знак вопроса в регулярном выражении на случай, если программное обеспечение SE искажает пробелы ...)Powershell, 234 символа
Вот тот же код с дополнительными пробелами в попытке улучшить читаемость :-)
Я не знаю о встроенной
shuffle
функции в powershell, поэтому я превратил каждый результат в пару ключ-значение - ключ, равный результат игры в кости, и значение, равное случайному числу. Тогда это был просто случай сортировки этих пар по значению с последующим выводом ключей.источник
Perl, 179 символов
Вот подробная версия программы:
источник