# Starter Laboratorium Puzzle Grid SMP · Lanjutan · sesi 1–16 ## Memakai starter Ekstrak seluruh ZIP, Project Manager → Import → project.godot, lalu F5. Panah bergerak pada mode fisika; petunjuk kontrol khusus ada pada HUD. R membuat scene baru. Siapkan folder terpisah sebelum mengubah kode. Godot 4.x; contoh diperiksa dengan 4.4.1 Compatibility. ## Cakupan yang tersedia Papan 5×5 dari data, langkah empat arah, dorong satu peti, batas, satu tujuan, dan reset. Undo serta peta baru dikerjakan siswa. Starter adalah acuan struktur dan mekanik minimum, bukan proyek akhir yang memenuhi semua rubrik. Gunakan lab sesi untuk menguji konsep kecil. Siswa membangun integrasi dan keputusan sendiri sesuai tugas presentasi. Tidak ada build executable yang diklaim telah diuji oleh paket ini. ## Susunan node saat runtime Node dibuat oleh world.gd dari bentuk dasar. Jalankan F6 lalu lihat Scene → Remote untuk menelusuri pohonnya. Untuk belajar konstruksi editor, buat scene siswa terpisah dan tambahkan node melalui tombol + sesuai fungsi helper di world.gd. ```text Arena2D Arena → CharacterBody2D / StaticBody2D / Area2D (mode fisika) CanvasLayer → Label (HUD) Button (mode antarmuka) Timer (mode spawn) ``` ## Cara membangun di editor 1. Buat root Node2D/Control sesuai tugas, simpan scene. 2. Tambahkan bentuk visual dan collision secara terpisah. Collider harus anak badan/area, bukan hanya mesh. Pada 3D, tambahkan kamera current dan lampu. 3. Tambahkan script pada node yang tepat. Implementasikan satu mekanik dari tugas sesi, uji, baru lanjut. 4. Hubungkan signal sekali lewat panel Node atau _ready. Label membaca model, bukan menjadi sumber keadaan. 5. Catat input, keadaan awal, harapan, aktual, perbaikan, dan batas pengujian. ## Urutan praktik - Sesi 1: Audit koordinat dan array. Modelkan peta kecil melalui array dan koordinat; mentor memberi tabel indeks serta satu fungsi contoh Fokus sesi: audit koordinat dan array. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 2: Array papan dan identitas petak. Modelkan peta kecil melalui array dan koordinat; mentor memberi tabel indeks serta satu fungsi contoh Fokus sesi: array papan dan identitas petak. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 3: Aturan tetangga dan batas. Modelkan peta kecil melalui array dan koordinat; mentor memberi tabel indeks serta satu fungsi contoh Fokus sesi: aturan tetangga dan batas. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 4: Prediksi satu langkah sah. Modelkan peta kecil melalui array dan koordinat; mentor memberi tabel indeks serta satu fungsi contoh Fokus sesi: prediksi satu langkah sah. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 5: Fungsi calon posisi. Buat fungsi cek langkah serta dorong satu peti dengan cabang kondisi yang dapat ditelusuri Fokus sesi: fungsi calon posisi. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 6: Peti dan sel di belakangnya. Buat fungsi cek langkah serta dorong satu peti dengan cabang kondisi yang dapat ditelusuri Fokus sesi: peti dan sel di belakangnya. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 7: Penolakan langkah tanpa perubahan. Buat fungsi cek langkah serta dorong satu peti dengan cabang kondisi yang dapat ditelusuri Fokus sesi: penolakan langkah tanpa perubahan. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 8: Input satu langkah per aksi. Buat fungsi cek langkah serta dorong satu peti dengan cabang kondisi yang dapat ditelusuri Fokus sesi: input satu langkah per aksi. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 9: Snapshot keadaan papan. Simpan satu snapshot lengkap dan pulihkan posisi pemain, peti, serta status tujuan Fokus sesi: snapshot keadaan papan. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 10: Salinan data dan referensi. Simpan satu snapshot lengkap dan pulihkan posisi pemain, peti, serta status tujuan Fokus sesi: salinan data dan referensi. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 11: Pulihkan satu langkah. Simpan satu snapshot lengkap dan pulihkan posisi pemain, peti, serta status tujuan Fokus sesi: pulihkan satu langkah. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 12: Urungkan saat riwayat kosong. Simpan satu snapshot lengkap dan pulihkan posisi pemain, peti, serta status tujuan Fokus sesi: urungkan saat riwayat kosong. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 13: Reset dengan peta awal. Uji batas, dorong terhalang, urungkan kosong, dan satu susunan peta baru Fokus sesi: reset dengan peta awal. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 14: Peta baru dari data. Uji batas, dorong terhalang, urungkan kosong, dan satu susunan peta baru Fokus sesi: peta baru dari data. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 15: Matriks kasus buntu serta menang. Uji batas, dorong terhalang, urungkan kosong, dan satu susunan peta baru Fokus sesi: matriks kasus buntu serta menang. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. - Sesi 16: Presentasi: Laboratorium Puzzle Grid. Uji batas, dorong terhalang, urungkan kosong, dan satu susunan peta baru Fokus sesi: presentasi puzzle grid. Lengkapi kerangka mentor, lalu ubah satu nilai atau susunan dan telusuri hasil sendiri. Ganti susunan dinding dan target tanpa mengedit pemeriksa langkah; tunjukkan satu kasus buntu beserta alasan. ## Kriteria proyek - Bukti tahap 1: Modelkan peta kecil melalui array dan koordinat; mentor memberi tabel indeks serta satu fungsi contoh; siswa menelusuri hasil normal serta satu kegagalan dengan bantuan yang dicatat - Bukti tahap 2: Buat fungsi cek langkah serta dorong satu peti dengan cabang kondisi yang dapat ditelusuri; siswa menelusuri hasil normal serta satu kegagalan dengan bantuan yang dicatat - Bukti tahap 3: Simpan satu snapshot lengkap dan pulihkan posisi pemain, peti, serta status tujuan; siswa menelusuri hasil normal serta satu kegagalan dengan bantuan yang dicatat - Bukti tahap 4: Uji batas, dorong terhalang, urungkan kosong, dan satu susunan peta baru; siswa menelusuri hasil normal serta satu kegagalan dengan bantuan yang dicatat Sumber: https://docs.godotengine.org/en/stable/