Program ini merupakan bot yang digunakan untuk menyusun strategi greedy yang bertujuan untuk memenangkan game Worms.
Element algoritma greedy:
-
Himpunan kandidat: Semua cell pada map Semua cell yang berada di map merupakan kandidat dari algoritma greedy.
-
Himpunan solusi: Cell yang memiliki radius 1 dari current worm Cell yang berada di depan, belakang, kiri dan kanan cacing.
-
Fungsi solusi: Fungsi memeriksa apakah cell yang dipilih dapat mengantarkan bot kami menuju ke destinasi dan menambah point tim kami Memastikan bahwa cell yang dipilih tidak membuat worm menjauh dari destinasi dan command yang dipilih dapat menambah point tim kami.
-
Fungsi seleksi: Memeriksa apakah cell yang terpilih merupakan cell yang aman dan dapat memilih command yang paling optimal Memastikan bahwa cell yang dipilih bukan bertipe lava dan belum ditempati oleh worm lain serta memilih command yang paling optimal untuk round tersebut.
-
Fungsi kelayakan: Fungsi memeriksa apakah cell berada di koordinat yang valid Koordinat yang valid merupakan koordinat yang bisa ditempati.
-
Fungsi objektif: Jarak yang ditempuh oleh worm menuju destinasi merupakan jarak minimum dan memaksimalkan score. Tujuan dari implementasi algoritma greedy adalah agar worm dapat sampai di tempat tujuan dengan menempuh jarak yang minimum dan score akhir tim kami dapat maksimal.
Algoritma greedy yang paling mangkus saat digunakan untuk memenangkan permainan adalah algoritma greedy by cells. Algoritma greedy by cells dikembangkan dari algoritma greedy by attack dan menggabungkannya dengan pemilihan cell yang optimal sehingga ketika worm kami sedang tidak menemukan lawan di area sekitarnya, worm akan memilih untuk move atau dig ke cell yang paling optimal, yaitu cell yang dapat mengantarkan worm kami bertemu dengan anggota worm kami yang lain. Sedangkan jika worm telah menemukan di area sekitarnya, maka worm akan memilih untuk menyerang lawan.
Terdapat requirement dasar untuk menjalankan game ini, yaitu menginstall:
- Java (minimal Java 8): https://www.oracle.com/java/technologies/javase/javasejdk8-downloads.html
- IntellIJ IDEA: https://www.jetbrains.com/idea/
- NodeJS: https://nodejs.org/en/download/
- Open project ini menggunakan IntellIJ
- Install project ini dengan plugin Maven yang sudah tersedia pada IntellIJ
- Pindahkan file
..-jar-with-dependencies.jar
pada foldertarget
ke folderstarter-pack
- Klik
run.bat
untuk menjalankan permainannya pada command prompt - Jika ingin melihat tampilan yang jauh lebih menarik, dapat menggunakan visualizer
- Copy isi dari folder
matches-log
ke folderMatches
yang ada pada folder visualizer - Klik
start-visualiser
untuk menjalankan visualizer
- Game engine: https://github.com/EntelectChallenge/2019-Worms.
- Latest game engine: https://github.com/EntelectChallenge/2019-Worms/releases/tag/2019.3.2
- Game rules: https://github.com/EntelectChallenge/2019-Worms/blob/develop/game-engine/game-rules.md.
- Game visualizer: https://github.com/dlweatherhead/entelect-challenge-2019-visualiser/releases/tag/v1.0f1
- Jesica (13519011)
- Rahmah Khoirussyifa’ Nurdini (13519013)
- Clarisa Natalia Edelin (13519213)