Tubes1_polish-remover-nails-/
├── doc/
│ └── placeholder.txt
└── src/
└── src/
├── Blitzkrieg/
│ └── RobotPlayer.java
├── bot067/
│ └── RobotPlayer.java
├── examplefuncsplayer/
│ └── RobotPlayer.java
└── stormtroopers/
└── RobotPlayer.java
Strategi Utama: Meminimalkan jarak absolut ke koordinat target (Euclidean distance) dengan pemecahan rintangan deterministik.
- SoldierState (STARTING → EXPLORING → BUILDING → back to EXPLORING)
- Exploration Phase: Symmetry-based guessing (rotational symmetry untuk predict enemy ruins)
- Pathfinding: Bug2 Algorithm - wall-following saat stuck, straight-line approach saat clear
is_tracing: flag ketika bertemu obstacletracing_dir: arah untuk follow wall (rotate left setiap gagal)onMLine(): Check apakah robot sudah bisa kembali ke straight lineobstacle_dist: track closest distance ke target while tracing
- Tangential Painting: Gerakan tangensial untuk efficient tower pattern completion
- Idle Detection: State reset jika terlalu lama idle
- Priority Targeting: Tower > Mopper > Soldier priority
Strategi Utama: Memaksimalkan luas cat kawan sambil mempertahankan momentum ruang, dihitung melalui skor reward/penalty ubin sekitar.
Setiap unit memilih gerakan dengan scoring system:
score = 0
if (enemy_paint) score += 100
if (empty_tile) score += 60
if (ally_paint) score -= 10
if (toward_target) score += 50
if (same_direction) score += 80
score += random(10)
→ pilih arah dengan score tertinggi
- Role Switching: EXPLORER → ATTACKER → RETREATER berdasarkan paint level
- Symmetry Detection: Menebak lokasi musuh dengan rotational symmetry
- Network Communication: Broadcast ruin dan enemy tower locations
- Tangential Movement: Optimal pathfinding menuju target dengan obstacle avoidance
Strategi Utama: Memaksimalkan penemuan Ruin baru dengan meminimalkan area pencarian yang tumpang tindih.
- Scout (Soldier ID % 4 == 0): Menggunakan spiral pattern untuk eksplorasi, mencari ruin secara sistematis
- Regular Soldier: Menggunakan Greedy Best-First Movement - mengevaluasi 8 arah gerakan, memilih arah yang meminimalkan jarak ke target
- Tower: Menerima laporan ruin dari scout, broadcast ke regular soldiers setelah 5 kali penerimaan
- Mopper: Random direction dengan obstacle avoidance
- Pathfinding Scout: Stack-based path backtracking untuk kembali ke home
- Make sure you have JDK 21 / Java 21
- build the client from the src folder using
./gradlew build - run the game either from the client or using
you can open the client by running the .exe file in
./gradlew runTubes1_polish-remover-nails-/src/client/
- Billie Bhaskara Wibawa | 13524024
- Muhammad Naufal Romi Annafi | 13524058
- I Gusti Ngurah Alit Dharma Yudha | 13524072
