Tugas Besar 1 - Strategi Algoritma
Dibuat oleh:
NIM | Nama |
---|---|
13521006 | Azmi Hasna Zahrani |
13521007 | Matthew Mahendra |
13521018 | Syarifa Dwi Purnamasari |
Galaxio Bot with Java
Bot ini menggunakan algoritma greedy dalam menentukan setiap aksi yang dilakukannya. Greedy yang digunakan pada bot ini adalah greedy by position, sehingga yang menjadi pertimbangan adalah pada posisi baik dari bot maupun objek-objek lainnya termasuk musuh.
Aksi default yang dilakukan adalah memakan makanan untuk bertambah besar. Selanjutnya jika pada posisi bot ada objek gas cloud atau asteroid yang dekat, maka dilakukan proses menghindari objek tersebut.
Pada kasus terdapat musuh yang dekat, maka aksi ditentukan berdasarkan ukuran dari bot dan ukuran dari musuh. Jika bot lebih kecil maka langkah yang diambil adalah untuk menghindar dan jika jaraknya terlalu dekat serta size bot memungkinkan, menggunakan afterburner. Sebaliknya, jika bot lebih beasar dari musuh yang paling dekat, maka dilakukan penyerangan dengan mengarahkan diri ke musuh serta jika memungkinkan melakukan penembakan torpedo ataupun teleport agar lebih dekat.
Pada kasus terdapat torpedo yang dekat, maka bot akan menghindar dan mengaktifkan shield.
Pada kasus bot berada di ujung peta, maka bot akan kembali ke dalam peta dengan menggunakan titik pusat peta sebagai tujuannya.
Untuk menjalankan bot ini Anda memerlukan,
- Java SDK (Bot dikembangkan pada versi 19.0.1)
- .NET 3.1.0 dan .NET Runtime 5.0 untuk menjalankan game engine
- Maven untuk membuat file .JAR
- Game Engine yang dapat diunduh pada tautan: https://github.com/EntelectChallenge/2021-Galaxio/releases/tag/2021.3.2
- Unduh seluruh repository ini sebuah folder dan letakkan dalam engine yang telah diunduh pada folder starter-bots
- Akan terbentuk sebuah file dengan ekstensi .jar dengan nama KMMBot.jar pada folder target. File ini merupakan bot yang akan digunakan
- Jika belum melakukan pengaturan jumlah bot pada game engine, lakukan pengaturan pada file
appsettings.json
pada folder runner-publish dan logger-publish - Pada runner game engine, masukkan command
java -jar path
dengan path yang mengarah pada./target/KMMBot.jar
lalu jalankan runner. Contoh runner.bat yang dapat digunakan adalah
@echo off
:: Game Runner
cd ./runner-publish/
start "" dotnet GameRunner.dll
:: Game Engine
cd ../engine-publish/
timeout /t 1
start "" dotnet Engine.dll
:: Game Logger
cd ../logger-publish/
timeout /t 1
start "" dotnet Logger.dll
:: Bots
cd ../reference-bot-publish/
timeout /t 3
start "" java -jar ../starter-bots/JavaBot/target/JavaBot.jar
timeout /t 3
start "" java -jar ../starter-bots/Tubes1_KMM/target/KMMBot.jar
timeout /t 3
start "" java -jar ../starter-bots/Tubes1_KMM/target/KMMBot.jar
timeout /t 3
start "" java -jar ../starter-bots/Tubes1_KMM/target/KMMBot.jar
cd ../
pause
Runner ini menggunakan 4 bot dengan target adalah KMMBot sebanyak 3 bot dan 1 JavaBot yang merupakan reference bot
- Setelah menjalankan game, visualizer dapat dibuka untuk melihat bot yang telah digunakan
Dapat diakses pada tautan: https://youtu.be/TQM4bUWjono