Terinspirasi oleh pertanyaan ini sebelumnya hari ini , saya ingin melihat cara menarik berbagai bahasa pemrograman yang dapat mengubah numpad menjadi probabilitas. Umumnya, game berbasis ubin akan memungkinkan Anda menggunakan numpad untuk bergerak ke arah mana pun berdasarkan di mana karakter Anda saat ini. Ketika membuat AI untuk game-game ini, Math.random() * 8tidak cukup, jadi saya harus sedikit kreatif untuk membuat gerakan terlihat dan terasa agak alami.
Numpad didefinisikan sebagai berikut:
7 | 8 | 9
- - - - -
4 | x | 6
- - - - -
1 | 2 | 3
Harap dicatat, 5 adalah nomor yang tidak valid, karena Anda tidak dapat pindah ke diri Anda sendiri.
Semua contoh akan menggunakan probabilitas ini: [50, 40, 30, 20, 10]
Jika saya ingin membuat probabilitas di sekitarnya 8, akan terlihat seperti ini:
40 | 50 | 40
-- | -- | --
30 | xx | 30
-- | -- | --
20 | 10 | 20
Hasilnya akan [20, 10, 20, 30, 30, 40, 50, 40](dengan 5 dihilangkan) atau [20, 10, 20, 30, null, 30, 40, 50, 40](dengan 5 hadir)
Jika saya ingin membuatnya sekitar 1, akan terlihat seperti ini:
30 | 20 | 10
-- | -- | --
40 | xx | 20
-- | -- | --
50 | 40 | 30
Hasilnya akan [50, 40, 30, 40, 20, 30, 20, 10](dengan 5 dihilangkan) atau [50, 40, 30, 40, null, 20, 30, 20, 10](dengan 5 hadir)
Anda dapat menulis program lengkap yang mengambil input dengan cara biasa (baris perintah, stdin) dan mencetak output, atau Anda dapat menulis fungsi dengan argumen angka, yang mencetak atau mengembalikan output. Program atau fungsi Anda harus menerima satu nomor - posisi untuk menghasilkan sekitar. Anda harus menggunakan probabilitas ini: [50, 40, 30, 20, 10](mereka tidak harus di-hardcode).
Kode terpendek dalam byte menang. Celah standar tidak diijinkan. Jawaban yang diposting di utas tertaut tidak diizinkan. Ruang tertinggal atau terdepan diizinkan. Anda dapat memperlakukan posisi 4sebagai tidak ada atau kosong, tergantung pada preferensi Anda. Saya tidak terlalu pilih-pilih format output - cetak sebagai string yang dipisahkan koma atau sebagai array.
(Ini pertanyaan pertamaku, santai saja!)