Bot "Crawler" mengimplementasikan serangkaian strategi berbasis algoritma greedy untuk mencapai tujuannya dalam permainan. Algoritma greedy yang digunakan berfokus pada pengambilan keputusan yang optimal secara lokal pada setiap langkah dengan harapan mencapai hasil yang baik secara global. Implementasi spesifiknya meliputi:
- Pemilihan Target Berlian Berbasis Kepadatan: Bot menghitung "kepadatan" untuk setiap berlian yang dapat dijangkau. Kepadatan didefinisikan sebagai poin berlian dibagi dengan jarak (langkah yang dibutuhkan) untuk mencapainya. Bot akan secara greedy memilih berlian dengan kepadatan tertinggi sebagai target utamanya. Perhitungan ini juga mempertimbangkan rute melalui teleporter jika itu menawarkan kepadatan yang lebih baik.
- Prioritas Kembali ke Markas: Bot akan secara greedy memutuskan untuk kembali ke markas jika:
- Jumlah berlian yang dibawa mencapai ambang batas tertentu (misalnya, 3 berlian).
- Sisa waktu permainan menipis dan jarak ke markas (baik langsung maupun via teleporter) menjadi kritis.
- Pengejaran Bot Lawan (Opportunistik): Jika bot lawan yang membawa sejumlah berlian signifikan berada dalam jarak dekat, bot "Crawler" akan secara greedy mencoba mengejarnya. Untuk menghindari pengejaran yang sia-sia, terdapat mekanisme blacklist dan batas langkah pengejaran.
- Pengambilan Keputusan Lainnya:
- Jika jumlah berlian di papan sedikit, bot dapat secara greedy menargetkan tombol berlian jika lebih dekat.
- Jika dalam perjalanan kembali ke markas dan ada berlian yang sangat dekat, bot akan secara greedy mengambilnya terlebih dahulu jika kapasitas memungkinkan.
Secara keseluruhan, bot membuat keputusan langkah demi langkah dengan memilih opsi yang memberikan keuntungan paling langsung berdasarkan kondisi permainan saat ini.
- Python 3.13
Pastikan version Python 3.13 di Komputer anda (Versi lain mungkin tidak berkerja)
- Copy repository ini
git clone https://github.com/Faiq1818/Tubes-Stigma-Bot---Crawler.git
- Masuk ke root foldernya
- Masukan bot di main.py
- Jalankan botnya menggunakan sintaks yang sudah diberikan
| Nama | NIM | Github |
|---|---|---|
| Faiq Ghozy Erlangga | 123140139 | Faiq1818 |
| Rifka Priseilla Br Silitonga | 123140024 | rifkasltg |
| Prima Agusta Sembiring | 123140119 | PrimaSembiring |