Snake Game adalah permainan klasik yang mungkin sudah pernah Kita mainkan di ponsel atau komputer. Kini, Kita bisa membuat versi sederhana dari permainan ini dengan menggunakan micro:bit. Proyek ini tidak hanya menyenangkan tetapi juga mendidik, karena Kita akan belajar tentang pemrograman dan penggunaan sensor pada micro:bit. Dalam artikel ini, saya akan memberikan deskripsi dan langkah-langkah untuk membuat Snake Game dengan micro:bit. Yuk, kita mulai!
Snake Game adalah permainan di mana pemain mengontrol seekor ular yang bergerak di sekitar layar. Ular ini harus memakan makanan untuk tumbuh lebih panjang, dan pemain harus menghindari menabrak dinding atau tubuh ular itu sendiri. Tujuannya adalah untuk mengumpulkan poin sebanyak mungkin dengan memakan makanan.
Sebelum memulai, pastikan Kita memiliki semua alat dan bahan berikut:
Berikut adalah langkah-langkah untuk menyelesaikan proyek Snake Game:
snake
.direction
.fruit
.head
.gameRunning
.[[2, 2]]
.[1, 0]
.moveSnake
.moveSnake
, tambahkan:snake[0][0] + direction[0], snake[0][1] + direction[1]
.head[0] < 0 || head[0] > 4 || head[1] < 0 || head[1] > 4 || isSnakeColliding(head)
:
head[0] == fruit[0] && head[1] == fruit[1]
:
drawSnake
.drawSnake
, tambahkan:direction[0] == 0
:
direction[0] == 0
:
gameRunning
:
isSnakeColliding
.isSnakeColliding
, tambahkan:segment2[0] == position[0] && segment2[1] == position[1]
:Dengan langkah-langkah yang lebih rinci ini,kita sekarang dapat mengunggah kode ke micro:bit, merakit komponen hardware, dan menguji proyek Snake Game. Selamat mencoba dan semoga berhasil!
function isSnakeColliding (position: any[]) { for (let segment2 of snake) { if (segment2[0] == position[0] && segment2[1] == position[1]) { return true } } return false } // Kontrol dengan tombol A dan B input.onButtonPressed(Button.A, function () { if (direction[0] == 0) { // Kiri direction = [-1, 0] } else { // Atas direction = [0, -1] } }) function moveSnake () { head = [snake[0][0] + direction[0], snake[0][1] + direction[1]] // Cek apakah ular menabrak dinding atau dirinya sendiri if (head[0] < 0 || head[0] > 4 || head[1] < 0 || head[1] > 4 || isSnakeColliding(head)) { gameRunning = false basic.showString("GAME OVER") return } snake.unshift(head) // Jika makan buah, tambah panjang if (head[0] == fruit[0] && head[1] == fruit[1]) { fruit = [Math.randomRange(0, 4), Math.randomRange(0, 4)] } else { // Hapus ekor jika tidak makan buah snake.pop() } } input.onButtonPressed(Button.B, function () { if (direction[0] == 0) { // Kanan direction = [1, 0] } else { // Bawah direction = [0, 1] } }) function drawSnake () { basic.clearScreen() for (let segment of snake) { led.plot(segment[0], segment[1]) } led.plotBrightness(fruit[0], fruit[1], 255) } let head: number[] = [] let gameRunning = false let fruit: number[] = [] let direction: number[] = [] let snake: number[][] = [] // Posisi awal ular snake = [[2, 2]] // Bergerak ke kanan direction = [1, 0] fruit = [Math.randomRange(0, 4), Math.randomRange(0, 4)] gameRunning = true // Loop utama basic.forever(function () { if (gameRunning) { moveSnake() drawSnake() basic.pause(500) } })
File .HEX bisa diunduh disini
Selamat! Kita telah berhasil membuat proyek Snake Game dengan micro:bit. Proyek ini bisa menjadi dasar untuk berbagai pengembangan lebih lanjut. Kita bisa menambahkan lebih banyak fitur, seperti tingkat kesulitan yang meningkat, efek suara, atau tampilan yang lebih menarik.
Proyek Snake Game ini tidak hanya mengajarkan dasar-dasar pemrograman dan penggunaan sensor pada micro:bit, tetapi juga membangkitkan kreativitas dan rasa ingin tahu. Dengan platform MakeCode dan micro:bit, Kita bisa terus bereksperimen dan membuat proyek-proyek yang lebih kompleks dan menantang.
Semoga artikel ini bermanfaat dan menginspirasi Kita untuk terus belajar dan berkreasi dengan teknologi!
Supported by CV. FR-SYSTEM | FRWEBHOST © 2019
Informasi Lengkap Hubungi 087899297914
Mau dapat ilmu-ilmu baru dari FR-ACADEMY?
Yuk kakak ganteng n cantik isi formulir ini.
kamu akan mendapat Ilmu baru yang akan dikirim ke emailmu
setiap ada update dari situs ini
GRATIS
Terima Kasih Kakak, Subscribe telah Berhasil
There was an error while trying to send your request. Please try again.