- Program Description
- System Requirements
- How to Run Program
- Team Members
- Folders and Files Descriptio
- Extras
Galaxio adalah sebuah game battle royale yang mempertandingkan bot kapal anda dengan beberapa bot kapal yang lain. Setiap pemain akan memiliki sebuah bot kapal dan tujuan dari permainan adalah agar bot kapal anda yang tetap hidup hingga akhir permainan. Penjelasan lebih lanjut mengenai aturan permainan akan dijelaskan di bawah. Agar dapat memenangkan pertandingan, setiap bot harus mengimplementasikan strategi tertentu untuk dapat memenangkan permainan.
Program ini adalah bot yang didesain sedemikian rupa untuk menjadi bot yang dapat memenangkan game Galaxio. Algoritma utama yang digunakan dalam membuat bot ini adalah strategi algoritma Greedy.
Kami menyebut algoritma yang kami terapkan ini sebagai algoritma greedy by survival. Tujuan akhir yang ingin dicapai dari algoritma ini adalah menjadi bot yang bertahan sampai akhir permainan. Dari sisi greedy by points dan juga greedy by attack, bot akan memprioritaskan untuk mengonsumsi musuh. Ketika bot sudah menetapkan musuh sebagai target, bot akan mengejar dan menembaki musuh, dan kemudian mengonsumsi musuh. Prioritas kedua, khususnya apabila tidak terdapat musuh yang lebih kecil daripada bot, adalah mengonsumsi makanan sebanyak-banyaknya. Dari sisi greedy by points dan juga greedy by defense, bot akan memperhitungkan defense yang paling menguntungkan. Apabila memungkinkan untuk memasuki wormhole, bot akan bergerak menuju wormhole terdekat. Selain menjadi sarana untuk menghindar, melewati wormhole juga menambah poin. Apabila sulit untuk menghindar, maka bot akan mengaktifkan shield untuk meminimalkan damage. Secara umum, algoritma yang kami terapkan bertujuan untuk mempertahankan bot selama mungkin dalam permainan. Tujuan ini diharapkan dapat tercapai dengan jalan mengalahkan musuh sembari melindungi diri.
Dalam perancangan bot kami, alur berpikir kami adalah sebagai berikut:
- Prioritaskan menyerang dan mengonsumsi musuh
- Apabila tidak ada musuh yang lebih kecil, prioritaskan mengonsumsi makanan
- Apabila musuh yang lebih besar mengejar bot, prioritaskan kabur sembari mencari makanan; apabila tidak ada makanan dalam jarak dekat, dan posisi bot lebih dekat ke wormhole, maka bergerak menuju wormhole
- Apabila terdapat torpedo yang mendekat, prioritaskan menggunakan shield
- Dalam semua situasi, sebisa mungkin menghindari border, gas cloud, asteroid serta objek-objek lain yang mengancam
- Selain dalam situasi kabur dari musuh, bot akan menghindari wormhole (untuk menghindari perpindahan yang tidak peru)
- Java (ver.11 Minimum): https://www.oracle.com/id/java/
- NodeJs: https://nodejs.org/en/download/
- .Net Core 3.1: https://dotnet.microsoft.com/en-us/download/dotnet/3.1
- .Net Core 5: https://dotnet.microsoft.com/en-us/download/dotnet/5.0
- Clone this repository
$ git clone https://github.com/NicholasLiem/Tubes1_Algonauts
- Change the directory to the location where the main program is stored
$ cd Tubes1_Algonauts
- Make the bot's java file
$ mvn clean package
- Add run java jar command to your run.bat
a. Open your run.bat and add command
start "" java -jar Algonauts.jar
b. If you want to start it without run.bat, type
java -jar Algonauts.jar
in the command line
- Tabitha Permalla - 13521111
- Nicholas Liem - 13521135
- Brigita Tri Carolina - 13521156
- Folder doc
Berisikan file laporan dari tugas besar ini - Folder src
2a. Enums
Berisi enum atau dictionary tentang ObjectTypes dan PlayerActions
2b. Models
Terdiri dari definisi kelas GameObject, GameState, GameStateDto, PlayerAction, Position, dan World.
2c. Services
Terdiri dari BotService.java yang merupakan inti utama dari bot ini. - Folder target
3a. Berisikan file .jar bot