Pernyataan
Anda diberi serangkaian bola jatuh di kotak 2D. Grid ini dikelilingi oleh dinding yang tidak bisa diubah dan tidak bisa dipecahkan sehingga semua aksi terkandung di dalamnya. Tugas Anda adalah menentukan bagaimana keadaan skenario setelah gravitasi melakukan semua itu berhasil.
Elemen di dalam kotak
-
Lantai, tidak mengubah arah bola jatuh.\
Geser ke kanan, mengubah jalur bola satu (1) posisi ke kanan./
Geser kiri, mengubah jalur bola satu (1) posisi ke kiri.o
Bola.
Aturan
- Bola jatuh.
- Lantai, dan slide tidak jatuh .
- Jika bola menyentuh slide yang akan membuatnya menembus dinding (
\#
atau#/
), atau melewati lantai, slide akan bertindak sebagai lantai. - Saat bola mengenai bola yang lain, bola itu akan menjadi satu bola, tetapi tingkatkan kekuatannya sampai jumlah kedua bola itu.
- Bola-bola baru (bergabung) akan terus bersikap seperti biasa.
- Ketika bola tidak bisa bergerak lagi, itu digantikan oleh kekuatannya.
- Kekuatan bola akan selalu maksimal 9.
Memasukkan
Kotak akan diberikan dalam variabel string dengan nama apa pun yang terpendek dalam bahasa pilihan Anda. Secara default kita akan gunakan a
sebagai input. Contoh input, persis seperti yang diterima:
##########\n# \ #\n#o #\n# - -\o #\n#/- \ #\n# \oo-/\#\n#-/ \ /#\n# \ \ #\n# /#\n##########
Untuk kisi-kisi acak yang dihasilkan, gunakan https://repl.it/B1j3/2 . Sebagai gantinya gunakan halaman saya yang dihasilkan (tidak ada iklan, tidak ada omong kosong, hanya input dan output)
Catatan jeda baris adalah \n
. Mencetak input ke layar (tidak diperlukan untuk tantangan) akan menunjukkan hal-hal seperti ini. Meskipun saya telah menempatkan empat teka-teki di samping ruang yang aman.
########## ########## ########## ##########
# \ # # o -/# # o# #-o / #
#o # # \ # # o -# #-- \ /\ #
# - -\o # #- \ # # - \o# # - -- o-#
#/- \ # # # #o /\ # #/ \ #
# \oo-/\# #o -o- # # / -o# #/ /o oo/#
#-/ \ /# # -/- # # - o -# #o/ #
# \ \ # # \\ # # \o /# #o-o o#
# /# # \o\ /\# # \o # # -\o o /#
########## ########## ########## ##########
Keluaran
Kisi yang sama, dicetak ke layar dengan hasil akhir dari kekuatan bola. Jawaban yang valid akan menjadi satu (1) dari teka-teki berikut, masing-masing sesuai dengan input pada posisi yang sama, tentu saja jika input berbeda Anda harus menyesuaikan output. Tidak membatasi ke empat!
########## ########## ########## ##########
# \ # # -/# # 1# #-1 / #
# # # \ # # -# #-- \ /\ #
#1 - -\ # #- \ # # - \ # # - -- -#
#/- \1# # # # /\ # #/ \ #
# \ -/\# # -1- # # / -2# #/ / /#
#-/ \ /# # -/- # # - -# # / #
# \ \ # # \\ # # \ /# # - #
# 2 /# #1\2\ /\# #2 2\1 # #2-\3 23/#
########## ########## ########## ##########
Skor
Bahasa akan bersaing melawan diri mereka sendiri sehingga merasa bebas untuk menggunakan bahasa nongolf. Untuk memvalidasi solusi, saya harus dapat mengujinya di suatu tempat untuk melihatnya berfungsi !.
Skor adalah jumlah byte. Dalam hal seri, jawaban pertama untuk mencapai skor terikat menang.
Peringatan
- Jika tidak yakin bagaimana seharusnya bola bereaksi, tanyakan kepada saya dan saya akan mengklarifikasi, saya sudah sejelas mungkin tapi saya yakin ada kasus yang membingungkan.
- Slide hanya dikendarai jika Anda bisa keluar , pikirkan itu seperti slide nyata. Ada seorang pria di atas yang tidak membiarkan Anda melewati bola kecuali itu akan keluar melalui sisi lain.
Klarifikasi contoh gerakan bola
###### ######
#-o- # BALL WOULD GO RD #- - #
# \ # # \o #
###### ######
###### ######
#-o- # BALL WOULD STAY #-o- #
# \\ # # \\ #
###### ######
###### ######
# -o# BALL WOULD STAY # -o#
# \# # \#
###### ######
###### ######
# o # BALL WOULD STAY # o #
# \/# # \/#
###### ######
###### ######
#-o- # BALL WOULD GO LD #- - #
# /\ # #o/\ #
###### ######
PEMBARUAN
Bagaimana saya bisa menguji jika jawaban saya valid?
Saya telah membuat halaman sederhana di salah satu situs saya yang akan memberi Anda teka-teki acak, dan jawabannya. Ambil input dan periksa dengan output. Solusi saya, tanpa terlalu khawatir tentang golf adalah dalam python (generator, dan halaman juga python)389b
355b
Papan peringkat
sumber
Jawaban:
JavaScript (ES6), 157
196Edit char by char daripada baris demi baris, hasil yang jauh lebih baik
Catatan: tidak menangani nilai bola> 9. Tapi itu bisa, dengan biaya 18 byte. Lihat kode dasar di bawah ini.
Cuplikan TEST (halaman penuh lebih baik)
sumber
v>9?9:v
?Javascript (ES6),
453426409306290286 byteSolusi pertama dan paling jelas yang muncul di benak saya adalah solusi yang melihat-lihat slide dan kemudian digabung atau diganti.
Tidak Disatukan:
Tes seperti:
Terima kasih kepada: @ edc65
sumber
b.replace(/o/g,'1').split``
dapat disingkat menjadi[...b.replace(/o/g,1)]
Java,
Terlalu Banyak1102.987byteKarena, Jawa.
\ o / Di bawah 1000!
Tujuan sisi adalah mampu mencetak setiap iterasi dari papan: hanya menghapus tengah
;
dalamwhile(g.i())
;
System.out.print(g.s());
(Meskipun ini tidak menonaktifkan cetak terakhir yang memiliki 0-> konversi daya). Sayangnya, dalam versi ini, gravitasi bekerja dengan aneh. Setiap operan saya mengambil bola pertama yang tidak macet dan memindahkannya. Hubungan pendekiterate()
ada lebih sedikit byte daripada pergi ke seluruh papan lalu kembali jika ada yang berubah.Ini adalah kelas utama yang lengkap, kompilasi dan jalankan di baris perintah dengan argumen:
Versi "Dapat dibaca":
sumber
Python3, 355b
Tes di sini
sumber
PHP,
228 204 197194 bytemenghasilkan peringatan di PHP 7.1. Masukkan
(int)
sebelum$a[$t]+$c
untuk memperbaikinya.Jalankan dengan
php -nr '$a="<string>";<code>'
atau coba online .kerusakan
sumber