Source Code ini dibuat oleh kami, Kelompok 2B1Reuni, untuk memenuhi Tugas Besar 1 Strategi Algoritma yaitu mengimplementasikan Bot Galaxio dengan Menggunakan Algoritma Greedy
- Author
- Penjelasan Algoritma
- Implementasi Program
- Sistematika File
- Requirements
- Cara Menjalankan Program
NIM | Nama |
---|---|
13521071 | Margaretha Olivia Haryono |
13521084 | Austin Gabriel Pardosi |
13521108 | Michael Leon Putra Widhi |
Dalam permainan ini, penulis mengimplementasikan beberapa algoritma greedy dalam pembuatan bot. Terdapat enam upa-strategi greedy serta satu algoritma greedy utama yang diimplementasikan. Keenam strategi greedy yang kami buat yaitu sebagai berikut.
- Strategi Greedy untuk Memperoleh Food dan SuperFood
Strategi ini digunakan untuk melakukan implementasi skema pencarian makanan. - Strategi Greedy untuk Menggunakan Torpedo Salvo
Strategi ini digunakan untuk menembakkan torpedo salvo ketika ukuran bot cukup dan terdapat bot yang dekat sehingga dimungkinkan untuk menembakkan torpedo salvo terhadap bot lawan tersebut. - Strategi Greedy untuk Menggunakan Teleporter
Strategi ini digunakan untuk menembakkan teleporter ketika ukuran bot cukup dan terdapat bot yang dekat sehingga dimungkinkan untuk menembakkan teleporter terhadap bot lawan tersebut. - Strategi Greedy untuk Menghindari Gas Clouds
Strategi ini dijalankan untuk menghindari gas clouds yang terdapat dalam peta, sehingga ketika bot berjalan menuju gas clouds, bot akan membelokkan arah geraknya. - Strategi Greedy untuk Menghindari Edge Map
Ketika bot berada dekat dengan ujung (lingkaran peta), bot akan mengarahkan kapalnya ke arah tengah peta sehingga tidak keluar dari jalur peta. - Strategi Greedy untuk Menggunakan Shield
Strategi dalam penggunaan shield ini menangani dua buah kasus, yaitu teleporter serta torpedo salvo. Pada intinya kedua kasus ini menerapkan teknik yang sama, yaitu menggunakan hukum kinematika 1 dimensi untuk menyalakan shield perlindungan pada waktu yang tepat.
Pada Tugas Besar kali ini, kami berhasil mengimplementasikan fungsionalitas dari bot pada permainan Galaxio menggunakan Algoritma Greedy. Berikut adalah daftar implementasi fitur :
BotService.java
Bot Service JavaKejarMusuh.java
Skema Pengejaran MusuhMakan.java
Skema Pengejaran Makan
.
├───doc
├───src
│ └───main
│ └───java
│ ├───Enums
│ ├───Models
│ └───Services
└───target
├───classes
│ ├───Enums
│ ├───Models
│ └───Services
├───generated-sources
│ └───annotations
├───libs
├───maven-archiver
└───maven-status
└───maven-compiler-plugin
└───compile
└───default-compile
- Java Virtual Machine (JVM) versi 11 atau lebih baru.
- IntelliJ IDEA versi 2021.3 atau lebih baru.
- Apache Maven 3.8.4
- Lakukan konfigurasi jumlah bot yang ingin dimainkan pada file JSON
appsettings.json
dalam folderrunner-publish
danengine-publish
- Buka terminal baru pada folder runner-publish.
- Jalankan runner menggunakan perintah
dotnet GameRunner.dll
- Buka terminal baru pada folder engine-publish
- Jalankan engine menggunakan perintah
dotnet Engine.dll
- Buka terminal baru pada folder logger-publish
- Jalankan engine menggunakan perintah
dotnet Logger.dll
- Jalankan seluruh bot yang ingin dimainkan
- Setelah permainan selesai, riwayat permainan akan tersimpan pada 2 file JSON
GameStateLog\_{Timestamp}
dalam folderlogger-publish
. Kedua file tersebut diantaranya GameComplete (hasil akhir dari permainan) dan proses dalam permainan tersebut.
Cara lain menjalankan program yaitu dengan membuat file run.sh
pada Linux atau run.bat
pada Windows.