Mereka memberi saya Micro: Bit. Yang untuk mengajar anak sekolah, dari BBC dan sekarang memiliki popularitas yang meningkat (terutama setelah Cina berjanji untuk membuat tiruannya sekitar dua kali lebih murah). Saya sendiri tahu Arduino, adalah salah satu pelopor di negara kami yang menunjukkan cara menyeberang Arduino dengan Scratch dan scarf ini ... pada awalnya saya tidak tertarik. Tetapi sedikit kemudian ide itu lahir: tetapi tidak untuk melintasinya dengan permainan papan?
Saya sendiri adalah penulis "desktop", penggemar mereka. Dan kehadiran lingkungan pemrograman yang cukup ramah (awalnya papan diprogram dalam Python dan Java, tetapi ada lingkungan blok dengan simulator) membuat saya mencoba menerapkan ide ini.
Saya harus segera memperingatkan Anda - Saya bukan programmer! Dan ini bagus, karena bahkan siswa sekolah dasar saya dan Anda semua dapat mengulangi penelitian saya. Dan jadikan diri Anda perangkat "khusus" yang membantu dan menyederhanakan kehidupan dengan permainan papan.

Yang pertama muncul dengan ide untuk menerapkan dadu D6 biasa (yaitu dari 1 hingga 6). Tidak lebih cepat dikatakan daripada dilakukan. Menjalankan lingkungan
makecode.microbit.org, saya membuat sketsa program sederhana yang, ketika Anda menekan tombol A, menghasilkan angka acak dari 1 hingga 6 dan menampilkannya pada matriks LED perangkat.
Untuk "menghias" kode, saya menambahkan beberapa gambar "generasi" kubus dan voila. Siapkan kubus elektronik sederhana.

Dan jika Anda membutuhkan kubus D12? Kami menghasilkan angka acak hingga 12. Dan D20? Hingga 20 tentu saja. Tetapi masalahnya adalah bahwa hanya satu digit ditempatkan pada "layar" dan dua digit digulir, tetapi hanya sekali oleh perintah untuk menampilkannya ke matriks. Apa yang harus dilakukan Saya harus menambahkan variabel untuk menyimpan hasilnya, menampilkan siklus dan mengulangi nilai lemparan tulang terakhir dengan menekan tombol B.

Mengganti acara menekan tombol dengan pembacaan "gemetar" (Mikro: Bit memiliki accelerometer) dapat membuat proses "melempar" lebih realistis.
Dan jika Anda perlu melempar dua dadu? Tugasnya menjadi lebih menarik. Ditambah lagi, saya ingin membuat dadu sebagaimana mestinya dengan titik-titik. Untungnya, matriks (berukuran 5x5) terdiri dari LED yang cukup jauh dan jika Anda menyalakannya bahkan di dekatnya, Anda dapat dengan mudah membedakan mana "unit" dan di mana "enam".
Sekarang saya membuat “dadu” untuk permainan seperti Monopoly dan Kolonialisator (di mana 2 dadu dilemparkan) atau Machi Koro (di mana satu atau dua dadu D6 harus dilemparkan selama pertandingan). Tetapi muncul masalah dalam menampilkan lemparan ini.
Seperti yang saya tulis di atas, matriksnya ada di Micro: Bit 5x5. Untuk menampilkan kubus hex reguler, kita membutuhkan 3x3 LED.

Dua kubus juga dapat ditampilkan di tengah satu demi satu, tetapi secara visual maka buruk untuk membacanya. Oleh karena itu, saya memutuskan untuk menampilkan satu kubus dengan offset di sudut kiri atas, dan yang kedua di kanan bawah dalam loop tak terbatas hingga beberapa tindakan lain dilakukan.
Menemukan bahwa perintah sementara tidak bekerja dengan baik dengan membaca peristiwa tekan tombol dan menulis sistem kruk dari variabel dan memeriksanya, saya mendapatkan hasil yang saya butuhkan. Dengan menekan tombol A, satu kubus dihasilkan, pada B - dua dadu, A + B mematikan layar dan membawa sistem ke kondisi awal.
Saya juga memutuskan untuk "meletakkan" generator angka acak menggunakan rumus dadu = putaran sederhana (acak (50-649) / 100). "Cubes" mulai rontok sedikit lebih realistis.
"Kode monster" yang terakhir ternyata seperti ini (kode untuk langsung mengeluarkan grafik kubus tidak cocok, karena ia jauh turun).

Dan hasil karya bisa dilihat di video:
Sudah sesuatu yang menarik. Selain itu, karena pergeseran sudut-sudut, sebanyak 5 kubus dapat ditampilkan secara berurutan dan mereka dapat dengan mudah cukup berurutan.
Bisakah saya melakukan sesuatu yang lain? Dalam permainan papan baru saya "Parobot Card League", dadu akan digunakan untuk dua hal: menentukan bonus untuk pemain di babak saat ini dan menentukan tim untuk robot robot di lapangan bermain. Oleh karena itu, diputuskan untuk mengimplementasikan hal-hal berikut:
- Meja bundar (total ada 8)
- Penentuan Bonus di babak saat ini (tombol A)
- Definisi Perintah Bot (Tombol B)
- Maju ke babak berikutnya (penekanan berulang tombol A)
Saya menerapkan kubus "kustom", yang segera menampilkan pada layar simbol kartu bonus yang jatuh (atau N, jika tidak) dan infografis tim Bot - panah gerakan (maju, mundur, belok kiri dan kanan, tekan dan pertahanan).

Cara kerja program terlihat di video:
Karena mengunduh ke Micro: Bit sederhana (hubungkan saja melalui micro-USB ke komputer dan transfer file hex program ke root disk yang muncul), saya membuat halaman di situs web saya di mana saya ingin menempatkan "preset" yang sudah jadi untuk berbagai permainan papan:
www.simplerobot.org/elektronikaDi sana Anda dapat menemukan file hex yang siap pakai dan tautan ke kode sumber. Gunakan untuk kesehatan. Anda dapat membeli papan di Amperka yang sama atau "dari bahasa Cina" di Ali.
Apa lagi yang ingin Anda lakukan? Pertama, "lepaskan" papan dari daya eksternal dengan memasang pelindung untuk baterai.

Kedua, cobalah untuk mengimplementasikan berdasarkan papan "automat" untuk bermain sendiri dengan lawan komputer dan menggunakan kompas bawaan dan akselerometer.
Jika Anda membuat program khusus untuk gim papan dan mengirimkannya kepada saya, saya dengan senang hati akan mempostingnya di situs. Atau saya bisa melakukannya atas permintaan Anda (dengan kemampuan terbaik saya dan keterbatasan papan).