Program beserta
.jar
untuk bot penyelesaian permainan Overdrive menggunakan bahasa pemrograman Java dan algoritma Greedy sebagai Tugas Besar 1 IF2211 Strategi Algoritma
[IMPORTANT!] Isi folder bin
adalah build Maven terbaru. Pembuatan build Maven baru tidak akan disimpan di folder bin
, melainkan di folder src\starter-bots\java\target
Permainan Overdrive adalah permainan dimana dua bot mobil akan berusaha untuk memenangkan pertandingan. Bot yang dibuat menggunakan implementasi algoritma greedy yang mengambil keputusan terbaik yang dapat diambil dalam suatu ronde, tanpa memperhitungkan keadaan ronde selanjutnya ataupun sebelumnya. Hal ini selaras dengan sifat algoritma greedy yang mengambil optimasi secara lokal (berupa minimasi atau maksimasi kemungkinan). Optimasi lokal belum tentu mencapai keadaan optimum secara global, namun optimasi lokal dapat menghasilkan keadaan optimum lokal berupa keputusan terbaik yang diambil pada suatu saat tersebut. Pada implementasi algoritma bot Overdrive ini, dibuat beberapa analisis kasus berdasarkan skenario yang mungkin dihadapi oleh bot selama pertandingan, seperti posisi mobil di depan atau di belakang lawan, lane mobil sama atau beda dengan lawan, serta ada tidaknya rintangan di depan mobil. Setiap analisis kasus akan memiliki prioritas penggunaan powerup, berbelok/menghindar, serta mempercepat diri yang berbeda-beda, menyesuaikan kondisi agar didapatkan optimum lokal pada setiap langkah.
Isi direktori adalah sebagai berikut:
├── bin [isi folder hasil kompilasi beserta jar terbaru]
├── docs [laporan tugas besar]
├── src [folder source, sumber: https://github.com/EntelectChallenge/2020-Overdrive/releases/tag/2020.3.4]
├── reference-bot [algoritma bot yang dijadikan referensi, sumber dari tautan di atas]
├── starter-bot [implementasi algoritma greedy]
├── java
├── src / main / java / za / co / entelect / challenge
├── command
├── entities
├── enum
├── Bot.java [implementasi utama algoritma
├── Helper.java [deklarasi class sebagai fungsi helper untuk menjalankan algoritma]
├── Main.java [script utama untuk menjalankan bot]
├── target [isi kompilasi build Maven, jika dilakukan pembaruan]
├── bot.json [konfigurasi bot]
├── java-starter-bot.iml
├── pom.xml [file berisi informasi build Maven]
├── game-config.json [pengaturan permainan game]
├── game-engine.jar [.jar untuk game engine]
├── game-runner-config.json [pengaturan konfigurasi game runner]
├── game-runner-jar-with-dependencies.jar [.jar untuk game runner]
├── run.bat [batch file untuk memulai permainan
[RECOMMENDED] Apabila ingin melakukan build menggunakan Maven, disarankan untuk menggunakan IntelliJ IDEA (versi yang digunakan saat pengembangan adalah Ultimate 2021.2.1)
- Buka direktori
src
menggunakan IntelliJ IDEA - Tunggu hingga indexing selesai, akan muncul opsi untuk melakukan build (IDE akan membaca
pom.xml
untuk mendeteksi Maven builds). PilihLoad...
- Window Maven akan muncul. Pilih opsi
java-starter-bot
->Lifecycle
->Install
- Tunggu hingga proses build selesai
- Jalankan permainan dengan menjalankan
run.bat
. Hasil permainan akan disimpan di foldermatch-logs
.
- Gede Prasidha Bhawarnawa (13520004), bertanggung jawab atas perancangan algoritma dan pembuatan dokumen
- Aditya Prawira Nugroho (13520049), bertanggung jawab atas perancangan program dan debugging
- Owen Christian Wijaya (13520124), bertanggung jawab atas perancangan program dan debugging