pengantar
Saya memiliki beberapa mobil ASCII yang memiliki kecepatan dan arah. Kecepatan mereka diwakili oleh jumlah mereka. Jika mobil itu <>
maka itu telah berhenti. Sebagai contoh:
<>
1>
2>
3>
Setelah satu detik, saya mengerti
<>
1>
2>
3>
Setelah dua, saya mengerti
<>
1>
2>
3>
Jika dua mobil terlalu dekat, mereka menabrak.
1> <1
1> <2
Setelah sedetik, ini menjadi
###
##
Jika dua mobil berpotongan, mereka menjadi tagar jika mereka akan.
Jika satu mobil cukup cepat untuk 'melompati' yang lain, itu tidak mengakibatkan kecelakaan.
3><1 2><1 4><>
menjadi
<13> ### <>4>
Jika sebuah mobil hilang dari layar, ia menghilang (kecuali ada tabrakan) Tidak ada cara bagi mobil untuk langsung keluar dari layar.
<11>
<1 1>
1 1>
1>
Tantangan
Berdasarkan fisika mobil yang diberikan, Anda harus membuat program yang dapat mengatur waktu satu detik ke masa depan. Input akan berupa mobil dengan spasi dan kecepatan maksimum 5 (regex yang cocok (<[1-5]|[1-5]>|<>| )+
). Simulasi akan terjadi pada satu garis, namun garis itu tidak memiliki ukuran tetap.
Uji kasus
<> 1> 2> 3> 4> 5>
<> 1> 2> 3> 4> 5>
1><1 1> <1 1> <1
## ### 1><1
2><2 2> <2 2> <2 2> <2 2> <2
<22> ### ## ### 2><2
<22> <1 3> <2
### ##
<><> 1><> 2><> 3><> 4><> 5><>
<><> ### ## ### <>4> <> 5>
<><1 <2 <3 <4 <5
###<2<3<4<5
Mencetak gol
Ini adalah kode-golf , jadi kode dengan jumlah byte terkecil menang!
sumber
<>
rata - rata kecepatan 0Jawaban:
JavaScript (ES6), 140 byte
Cobalah online!
Berkomentar
sumber
JavaScript (Node.js) , 259 byte
254 hingga 259 karena saya menambahkan test case yang tidak ada di testcases yang mempersulit pencari hasil regex saya
Cobalah online!
sumber
Retina , 178 byte
Cobalah online! Tautan termasuk kasus uji. Penjelasan:
Tangani wadah mobil yang bergerak ke kiri.
Sementara melengkapi angka mobil yang bergerak ke kiri.
Letakkan setiap mobil di jalurnya sendiri (
$.`* $&¶
) dan tambahkan beberapa indentasi tergantung pada kecepatan mobil; mobil yang bergerak kiri mendapatkan kecepatan yang lengkap, sementara mobil yang tidak bergerak mendapatkan 5 kecepatan lebih.Tidak melengkapi angka mobil yang bergerak kiri.
Pindahkan semua mobil 5 ke kiri. Ini memperbaiki indentasi untuk semua mobil.
Hapus semua mobil yang bergerak dari kiri.
Urutkan mobil yang tersisa dalam urutan terbalik horisontal.
Ulangi tahap yang tersisa sampai semua mobil sudah diproses.
Selama mobil berikutnya tidak mogok, tambahkan ke hasilnya.
Tambahkan mobil yang menabrak ke hasilnya.
sumber