Tulis program yang menghasilkan dan mencetak labirin acak menggunakan algoritma pilihan Anda. Labirin harus berbeda untuk beberapa kali program dijalankan. Tinggi dan lebar diberikan sebagai argumen baris perintah. Gunakan |
untuk dinding vertikal, -
untuk dinding horizontal dan +
untuk sudut. Labirin dibatasi oleh dinding dan pintu masuk ditandai oleh dinding yang hilang. Labirin berisi harta karun #
yang harus bisa dijangkau dari setidaknya satu pintu masuk.
$ python2 random-maze.py 4 5
+-+-+
|#|
| |
+---+
code-challenge
ascii-art
maze
Alexandru
sumber
sumber
*
atau ada dua pintu masuk yang terpisah? 2: Anda mungkin harus menentukan bahwa pintu keluar harus dapat dijangkau.Jawaban:
Saya pikir ini secara teknis bukan generator labirin, tetapi menciptakan hasil seperti labirin: https://gist.github.com/803450 .
Beberapa kode mengerikan di sana saya tahu, dan itu hanya berfungsi kurang dari separuh waktu, dan hasilnya tidak terlihat tepat untuk dilakukan dengan dinding yang mencuat dari dinding lain. Tapi itu cukup dekat sehingga saya tidak bisa repot memperbaiki sisanya.
Beberapa contoh keluaran:
sumber
Python, 375 karakter
Ini menghasilkan labirin dengan satu pintu masuk dan harta karun yang ditempatkan secara acak. Labirin adalah labirin pohon biner sederhana .
sumber
Ruby 1.9.2p136: 90
Keluaran
Hei, tidak ada yang mengatakan itu harus labirin yang bagus . OKE, OKE, aku akan membuat yang asli sekarang.
sumber
#!/usr/bin/env python
, misalnya, dalam kode mereka. Seperti yang saya katakan saya akan menulis solusi nyata juga, ini hanya menunjukkan kualitas buruk dari pertanyaan itu sendiri (dan banyak lainnya) dan menunjukkan kita perlu memiliki pedoman yang lebih baik. Dan akhirnya menunjuk ke sebuah pertanyaan tidak membuat jawaban atas pertanyaan aturan sebenarnya untuk situs tersebut. Tapi baiklah, ini versi barumu ...C 844
Untuk mengetes:
3x3
7x8
18x20
sumber
Inilah solusi java sederhana:
Beberapa hasil sampel:
3x3:
4x4:
4x5:
5x5:
5x8:
8x15:
sumber