Dalam tantangan kode-golf ini , Anda harus menampilkan seni ascii dari die roll acak.
seperti ini:
________
/\ \
/ \ 6 \
{ 4 }-------}
\ / 5 /
\/_______/
Harap dicatat bahwa:
________
/\ \
/ \ 3 \
{ 4 }-------}
\ / 5 /
\/_______/
output tidak valid, karena itu bukan hasil yang mungkin pada cetakan
Ada 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 kemungkinan gulungan mati.
Program Anda harus menampilkan salah satu dari gulungan-gulungan ini dalam bentuk seni ascii (dimodelkan seperti yang di bawah ini, dengan xy dan zs diganti dengan angka-angka) seperti di atas, dengan setiap output memiliki> 0 kemungkinan terjadi, tetapi kemungkinan tidak harus genap (mereka diizinkan untuk menjadi trik dadu, tidak seperti dalam kehidupan nyata). Program Anda tidak dapat menghasilkan die roll yang tidak valid, atau non die roll. Program Anda harus memiliki probabilitas 1 menghasilkan gulungan yang valid
Harap dicatat bahwa dadu Anda tidak harus berupa dadu yang lurus seperti yang ditunjukkan pada gambar pertama. (Tangan kanan dan kiri menggambarkan jaring die)
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|
\/_______/
Jika dadu Anda kidal, berikut ini adalah output yang valid, tetapi tidak jika dadu Anda kidal:
________
/\ \
/ \ 2 \
{ 1 }-------}
\ / 3 /
\/_______/
Meskipun Anda dapat memilih tangan kiri atau tangan kanan, dadu Anda harus konsisten: ia tidak dapat berubah dari kiri ke kanan atau sebaliknya
berikut ini adalah daftar output yang valid untuk die. Lihat gambar di atas untuk posisi 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
sekali lagi ini adalah kode-golf , jadi lebih sedikit byte lebih baik
Jawaban:
Python 3,
197 196192 byteUji di ideone
Tangan kanan (beralih ke kidal dengan bertukar
u*u
denganl*l
pada baris terakhir)Pasti akan mengalahkan - tapi mari kita dadu bergulir napas - terutama karena semua upaya saya untuk golf ASCII kecuali akan baku dan menggunakan tua-sekolah format semua gagal menyimpan byte;
- tips golf lebih lanjut untuk n00b dengan senang hati dihargai.
sumber
from random import*
danc=choice
.*
; ta!%d
, gunakan%4d
sebaliknya dan itu akan cocok untuk Anda. Anda mungkin dapat memanfaatkannya untuk bagian lain dari die juga.C, 177
Dalam program uji
Penjelasan
sumber
Javascript
238232207201 byteyang ketika ungolfed adalah:
Algoritma
Pertimbangkan bahwa pada masing-masing persimpangan sudut 8 dari mati, nilai-nilai wajah die berpotongan tetap tetapi dapat muncul dalam salah satu dari 3 rotasi. Misalnya sambil melihat ke sudut "1", "2", "3", dadu dapat diputar tentang sumbu melalui sudut dan keluar sudut yang berlawanan, untuk menunjukkan "1", "2" atau "3" di atas seni ASCII.
v
kode keras wajah-wajah die yang berpotongan di setiap sudut,b
merupakan offset ke awal sudut acak, dano
merupakan awal rotasi dalam data sudut. Seni ASCII ditulis ke konsol menggunakanconsole.log
string format.sumber
`
tanda kutip yang memungkinkan penggunaan karakter baris baru literal daripada harus menulis\n
sepanjang waktu.';'
TSQL 308 byte
280 byte (di Server Management Studio: Permintaan - hasil ke teks)
Catatan: dengan menghapus cetakan dan bagian mendeklarasikan - dan mengeluarkan hasilnya langsung dari SELECT. Namun itu tidak akan berhasil dalam biola
Biola
sumber
ABS(a^3*b-a*b^3)
untuk menyimpan 4 byte? (Saya tidak yakin - tampaknya bekerja di biola, tapi itu hanya memberi saya satu gulungan a, b, c = 5,1,3 jadi saya mungkin salah)Javascript, 251 byte
Panggilan menggunakan
u();
Itu panjang tapi itu adalah jawaban, dan saya belum menjawab dalam waktu yang lama.
sumber
a=()=>(0|Math.random()*6)+1;
harus menyimpan 8Ruby, 150 byte
Semua penyalahgunaan format string !!!
Kredit untuk formula yang mendapatkan nomor terakhir jatuh ke @ xnor di sini .
sumber