В этом соревновании по коду для игры в гольф вы должны вывести ascii-искусство случайного броска кубика.
как это:
________
/\ \
/ \ 6 \
{ 4 }-------}
\ / 5 /
\/_______/
Обратите внимание, что:
________
/\ \
/ \ 3 \
{ 4 }-------}
\ / 5 /
\/_______/
неверный вывод, потому что это не является возможным результатом на кристалле
Существует 6(faces that could be up)*4(faces that could be the left face after the top is determined)*1(faces that could be the right face after the other two are determined)
24 возможности бросков кубика.
Ваша программа должна вывести один из этих бросков кубика в форме ascii art (смоделированной как показано ниже, с xy и zs замененными числами), как выше, с каждым выходом, имеющим> 0 вероятности возникновения, но вероятности не должны быть четными (они могут быть игральными кубиками, в отличие от реальной жизни). Ваша программа не может вывести неверный бросок кубика или бросок кубика. Ваша программа должна иметь вероятность 1 вывода правильного броска
Пожалуйста, обратите внимание, что ваш кубик не обязательно должен быть кубом с правшей, как показано на первом изображении. (правша и левша описывают сеть кубика)
right-handed die
________
/\ \ net
/ \ z \ _|4|_ _
{ x }-------} |6|2|1|5|
\ / y / |3|
\/_______/
left handed die
________
/\ \ net
/ \ y \ _|3|_ _
{ x }-------} |6|2|1|5|
\ / z / |4|
\/_______/
Если ваш кубик левша, следующий вывод действителен, но не если ваш кубик правша:
________
/\ \
/ \ 2 \
{ 1 }-------}
\ / 3 /
\/_______/
Несмотря на то, что вы можете выбрать левую или правую руку, ваш кубик должен быть последовательным: он не может меняться слева направо или наоборот
Ниже приведен список допустимых выходов для штампа. Обратитесь к рисункам выше для позиций XYZ:
X-Y-Z
-----
5-4-1
1-5-4
4-1-5
5-6-4
4-5-6
6-4-5
5-3-6
6-5-3
3-6-5
5-1-3
3-5-1
1-3-5
2-6-3
3-2-6
6-3-2
2-4-6
6-2-4
4-6-2
2-1-4
4-2-1
1-4-2
2-3-1
1-2-3
3-1-2
опять же, это код-гольф , поэтому чем меньше байтов, тем лучше
Ответы:
Python 3,
197 196192 байтаПроверьте это на Ideone
Правша (переключиться на левшу, поменяв местами
u*u
сl*l
последней строки)Обязан быть побежденным - но давайте сделаем вздох в кости - тем более, что все мои попытки сыграть в ASCII, за исключением того, что я использовал сырье и форматирование старой школы, не смогли сохранить байты;
- Любые дальнейшие советы по игре в гольф для n00b с удовольствием приветствуются.
источник
from random import*
иc=choice
.*
; та!%d
, используйте%4d
вместо этого, и это будет правильно заполнить его для вас. Возможно, вы сможете использовать его и для других частей матрицы.C, 177
В тестовой программе
объяснение
источник
Javascript
238232207201 байтКоторый, когда безголовый это:
Алгоритм
Учтите, что на каждом из 8 угловых пересечений матрицы, пересекающиеся номиналы матрицы фиксированы, но могут появляться в любом из 3 поворотов. Например, смотря вниз на угол «1», «2», «3», матрицу можно повернуть вокруг оси через угол и выйти из противоположного угла, чтобы показать «1», «2» или «3». на вершине ASCII искусства.
v
Жесткие коды граней матрицы, которые пересекаются в каждом углу,b
являются смещением к началу случайного угла иo
началом поворота в данных угла. Искусство ASCII записывается в консоль с использованиемconsole.log
строки формата.источник
`
кавычки, которые позволяют использовать буквенные символы новой строки вместо необходимости писать\n
все время.';'
TSQL 308 байт
280 байт (в Server Management Studio: запрос - результат в текст)
Примечание: удалив отпечаток и часть объявления - и выведите результат непосредственно из SELECT. Однако это не будет работать в скрипке
скрипка
источник
ABS(a^3*b-a*b^3)
чтобы сохранить 4 байта? (Я не уверен - кажется, работает на скрипке, но он дает мне только один бросок a, b, c = 5,1,3, так что я могу ошибаться)Javascript, 251 байт
Звонок с использованием
u();
Это долго, но это ответ, и я не отвечал в течение длительного времени.
источник
a=()=>(0|Math.random()*6)+1;
должен спасти 8Рубин, 150 байт
Все злоупотребления форматированием строки !!!
Кредит на получение формулы для получения последнего номера идет на @xnor здесь .
источник