W tym wyzwaniu polegającym na grze w golfa musisz wygenerować ascii-art losowego rzutu kostką.
lubię to:
________
/\ \
/ \ 6 \
{ 4 }-------}
\ / 5 /
\/_______/
Proszę to zanotować:
________
/\ \
/ \ 3 \
{ 4 }-------}
\ / 5 /
\/_______/
jest nieprawidłowym wyjściem, ponieważ nie jest to możliwy wynik na kości
Istnieją 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 możliwości rzutów kostką.
Twój program musi wypisać jeden z tych rzutów matryc w postaci sztuki ascii (modelowanej jak ta poniżej, z xy i zs zastąpionymi liczbami) jak wyżej, przy czym każde wyjście ma> 0 prawdopodobieństwa wystąpienia, ale prawdopodobieństwa nie muszą być równe (w przeciwieństwie do prawdziwego życia mogą to być podstępne kości). Twój program nie może wygenerować nieprawidłowego rzutu ani rzutu innego niż matryca. Twój program musi mieć prawdopodobieństwo 1 wypuszczenia prawidłowego rzutu
Pamiętaj, że twoja kość niekoniecznie musi być kością praworęczną, jak pokazano na pierwszym obrazku. (prawo- i leworęczni opisują sieć kości)
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|
\/_______/
Jeśli twoja kość jest leworęczna, poniższe wyniki są prawidłowe, ale nie, jeśli twoja kość jest praworęczna:
________
/\ \
/ \ 2 \
{ 1 }-------}
\ / 3 /
\/_______/
Chociaż możesz wybrać leworęczny lub praworęczny, twoja kość musi być spójna: nie może zmieniać się z lewej na prawą lub odwrotnie
poniżej znajduje się lista prawidłowych wyników dla matrycy. Pozycje XYZ znajdują się na powyższych zdjęciach:
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
znowu jest to golf golfowy , więc im mniej bajtów, tym lepiej
Odpowiedzi:
Python 3,
197 196192 bajtówPrzetestuj to ideonie
Praworęczny (zmień na lewy, zamieniając
u*u
zl*l
na ostatnim wierszu)Zobowiązany do pokonania - ale przejdźmy kości toczenia westchnienie - zwłaszcza, że wszystkie moje próby Golf ASCII wyjątkiem będzie surowy i za pomocą formatowania wszystko udało się zapisać bajtów starej szkoły;
- wszelkie dalsze wskazówki dotyczące gry w golfa dla n00b są mile widziane.
źródło
from random import*
ic=choice
.*
; ta!%d
użyj%4d
zamiast tego, a wypełnisz je odpowiednio dla Ciebie. Być może będziesz w stanie wykorzystać go również do innych części kości.C 177
W programie testowym
Wyjaśnienie
źródło
JavaScript
238232207201 bajtówktóry, gdy nie jest golfem, jest:
Algorytm
Weź pod uwagę, że na każdym z 8 skrzyżowań narożnika matrycy wartości przecinających się matryc są ustalone, ale mogą pojawić się w dowolnym z 3 obrotów. Na przykład, patrząc w dół na narożnik „1”, „2”, „3”, matrycę można obracać wokół osi przechodzącej przez narożnik i na zewnątrz przeciwnego rogu, aby wyświetlić „1”, „2” lub „3” na szczycie ASCII art.
v
twarde kody ścianek matrycy, które przecinają się w każdym rogu,b
są przesunięciem względem początku losowego rogu io
są początkiem obrotu w danych narożnika. Grafika ASCII jest zapisywana w konsoli za pomocą ciąguconsole.log
formatu.źródło
`
cudzysłowów, które pozwalają na użycie dosłownych znaków nowej linii zamiast ciągłego pisania\n
.';'
TSQL 308 bajtów
280 bajtów (w Server Management Studio: zapytanie - wynik na tekst)
Uwaga: usuwając wydruk i część deklarującą - i wysyłaj wynik bezpośrednio z WYBORU. Nie działałoby to jednak w skrzypcach
Skrzypce
źródło
ABS(a^3*b-a*b^3)
aby zapisać 4 bajty? (Nie jestem pewien - wydaje się, że działa na skrzypcach, ale zawsze daje mi tylko jeden rzut a, b, c = 5,1,3, więc mogę się mylić)JavaScript, 251 bajtów
Połączenia za pomocą
u();
Jest długi, ale jest odpowiedzią, a ja długo nie odpowiadałem.
źródło
a=()=>(0|Math.random()*6)+1;
powinien uratować 8Rubinowy, 150 bajtów
Wszystkie nadużycia formatowania ciągów !!!
Kredyt za formułę, która uzyskała ostatni numer, znajduje się tutaj @xnor .
źródło