Repository ini berisi 4 bot Robocode Tank Royale berbasis C#/.NET untuk Tugas Besar IF25-21013 Strategi Algoritma. Bot utama yang dipilih adalah MobilMBG; tiga bot lain disimpan sebagai alternatif pembanding strategi greedy.
- Ridho Maulana Saputra (NIM 124140090)
- Hafidz Raihan Putra Anfa (NIM 124140108)
- Richard Halim (NIM 124140084)
.
|-- src/
| |-- MobilMBG/
| `-- alternative-bots/
| |-- LetMeThink/
| |-- Ompreng/
| `-- SkibidiRam/
|-- doc/
| `-- Tubes_PucukDingin.pdf
|-- README.md
`-- PUCUKDINGIN.sln
- .NET SDK 10.0 atau versi yang kompatibel dengan
TargetFrameworkpada file.csproj. - Java Runtime Environment untuk menjalankan
robocode-tankroyale-gui-0.30.0.jar. - Robocode Tank Royale Bot API versi
0.30.0, otomatis diambil olehdotnet restore.
| Bot | Jenis | Heuristic utama | Ringkasan strategi |
|---|---|---|---|
| MobilMBG | Main bot | Minimum danger/gravity | Mengevaluasi banyak kandidat posisi di sekitar bot, lalu memilih posisi dengan nilai gravity paling kecil. Nilai gravity menggabungkan jarak musuh, prediksi peluru virtual, posisi target, dan risiko sudut arena. |
| LetMeThink | Alt 1 | Maximum kill-adjusted target score | Bergerak ke pinggir terdekat lalu berpatroli mengitari sudut arena, sambil memilih target dengan skor tertinggi berdasarkan prioritas finishing, jarak, kecepatan target, dan energi target. |
| Ompreng | Alt 2 | Minimum ideal-orbit error | Memilih kandidat gerak orbit yang paling dekat dengan jarak tempur ideal dan tetap aman dari dinding. |
| SkibidiRam | Alt 3 | Minimum ram cost | Memilih target tabrak dengan biaya terkecil berdasarkan jarak, sudut putar, energi target, dan risiko posisi dekat dinding. |
Keempat bot memakai heuristic greedy yang berbeda. Perbedaan utamanya ada pada fungsi seleksi: MobilMBG memilih posisi paling aman, LetMeThink memilih target paling layak untuk ditembak dari posisi patroli pinggir, Ompreng memilih orbit paling ideal, dan SkibidiRam memilih target tabrak paling murah.
Clone repository ini lewat terminal:
https://github.com/udinvoldigoad/Tubes1_PucukDingin.git
cd Tubes1_PucukDinginBuild semua bot melalui solution:
dotnet build "PUCUKDINGIN.sln"Atau build bot tertentu:
cd src/MobilMBG
dotnet buildcd src/alternative-bots/LetMeThink
dotnet buildcd src/alternative-bots/Ompreng
dotnet buildcd src/alternative-bots/SkibidiRam
dotnet buildJalankan game engine:
java -jar robocode-tankroyale-gui-0.30.0.jarPada GUI Robocode, tambahkan root directory repository ini sebagai Bot Root Directory. Setelah itu boot bot dari folder masing-masing.
Bot juga dapat dijalankan dari terminal setelah server Robocode aktif dan SERVER_SECRET sudah diatur:
cd src/MobilMBG
dotnet runUntuk Windows, setiap folder bot menyediakan file .cmd. Untuk Linux/macOS, setiap folder bot menyediakan file .sh.
- Semua bot dibuat dalam C# menggunakan
Robocode.TankRoyale.BotApiversi0.30.0. - File metadata
.jsontiap bot sudah memuat nama, versi, author, deskripsi strategi, negara, platform, dan bahasa. - Nama author pada metadata bot disingkat agar aman terhadap batas panjang nama pada starter guide, sedangkan nama lengkap dicantumkan pada README ini.