summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/engine/command.rs2
-rw-r--r--src/engine/mod.rs89
-rw-r--r--src/input/json.rs2
-rw-r--r--src/strategy/monte_carlo.rs21
-rw-r--r--tests/after_113/Round 003/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 003/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 005/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 007/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 008/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 008/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 009/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 009/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 010/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 010/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 011/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 011/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 012/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 012/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 013/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 013/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 014/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 014/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 015/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 015/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 016/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 016/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 017/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 017/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 018/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 018/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 019/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 019/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 020/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 021/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 022/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 022/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 023/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 023/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 024/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 025/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 025/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 026/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 026/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 027/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 027/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 028/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 029/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 030/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 030/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 031/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 031/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 032/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 033/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 034/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 034/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 035/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 037/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 038/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 039/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 039/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 040/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 040/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 041/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 041/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 042/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 042/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 043/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 044/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 044/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 045/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 046/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 046/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 047/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 049/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 049/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 050/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 051/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 051/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 052/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 052/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 053/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 054/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 055/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 055/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 057/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 057/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 058/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 059/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 059/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 060/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 060/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 061/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 061/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 062/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 062/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 063/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 063/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 064/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 064/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 065/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 066/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 067/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 067/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 068/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 068/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 069/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 069/PlayerCommand.txt1
-rw-r--r--tests/after_113/Round 070/OpponentCommand.txt1
-rw-r--r--tests/after_113/Round 070/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 000/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 000/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 001/OpponentCommand.txt (renamed from tests/after_113/Round 001/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 001/PlayerCommand.txt (renamed from tests/after_113/Round 001/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 002/OpponentCommand.txt (renamed from tests/after_113/Round 002/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 002/PlayerCommand.txt (renamed from tests/after_113/Round 002/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 003/OpponentCommand.txt (renamed from tests/after_113/Round 058/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 003/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 004/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 004/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 005/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 005/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 006/OpponentCommand.txt (renamed from tests/after_113/Round 004/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 006/PlayerCommand.txt (renamed from tests/after_113/Round 004/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 007/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 007/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 008/OpponentCommand.txt (renamed from tests/after_113/Round 006/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 008/PlayerCommand.txt (renamed from tests/after_113/Round 006/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 009/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 009/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 010/OpponentCommand.txt (renamed from tests/after_113/Round 021/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 010/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 011/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 011/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 012/OpponentCommand.txt (renamed from tests/after_113/Round 032/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 012/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 013/OpponentCommand.txt (renamed from tests/after_113/Round 005/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 013/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 014/OpponentCommand.txt (renamed from tests/after_113/Round 024/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 014/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 015/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 015/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 016/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 016/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 017/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 017/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 018/OpponentCommand.txt (renamed from tests/after_113/Round 038/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 018/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 019/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 019/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 020/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 020/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 021/OpponentCommand.txt (renamed from tests/after_113/Round 036/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 021/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 022/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 022/PlayerCommand.txt (renamed from tests/after_113/Round 036/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 023/OpponentCommand.txt (renamed from tests/after_113/Round 054/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 023/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 024/OpponentCommand.txt (renamed from tests/after_113/Round 000/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 024/PlayerCommand.txt (renamed from tests/after_113/Round 020/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 025/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 025/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 026/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 026/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 027/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 027/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 028/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 028/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 029/OpponentCommand.txt (renamed from tests/after_113/Round 033/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 029/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 030/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 030/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 031/OpponentCommand.txt (renamed from tests/after_113/Round 007/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 031/PlayerCommand.txt (renamed from tests/after_113/Round 066/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 032/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 032/PlayerCommand.txt (renamed from tests/after_113/Round 047/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 033/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 033/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 034/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 034/PlayerCommand.txt (renamed from tests/after_113/Round 029/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 035/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 035/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 036/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 036/PlayerCommand.txt (renamed from tests/after_113/Round 048/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 037/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 037/PlayerCommand.txt (renamed from tests/after_113/Round 045/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 038/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 038/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 039/OpponentCommand.txt (renamed from tests/after_113/Round 065/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 039/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 040/OpponentCommand.txt (renamed from tests/after_113/Round 056/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 040/PlayerCommand.txt (renamed from tests/after_113/Round 053/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 041/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 041/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 042/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 042/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 043/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 043/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 044/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 044/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 045/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 045/PlayerCommand.txt (renamed from tests/after_113/Round 028/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 046/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 046/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 047/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 047/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 048/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 048/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 049/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 049/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 050/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 050/PlayerCommand.txt (renamed from tests/after_113/Round 043/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 051/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 051/PlayerCommand.txt (renamed from tests/after_113/Round 035/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 052/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 052/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 053/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 053/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 054/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 054/PlayerCommand.txt (renamed from tests/after_113/Round 048/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 055/OpponentCommand.txt (renamed from tests/after_113/Round 050/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 055/PlayerCommand.txt (renamed from tests/after_113/Round 056/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 056/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 056/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 057/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 057/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 058/OpponentCommand.txt (renamed from tests/after_113/Round 000/PlayerCommand.txt)0
-rw-r--r--tests/after_200/Round 058/PlayerCommand.txt (renamed from tests/after_113/Round 037/OpponentCommand.txt)0
-rw-r--r--tests/after_200/Round 059/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 059/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 060/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 060/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 061/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 061/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 062/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 062/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 063/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 063/PlayerCommand.txt1
-rw-r--r--tests/after_200/Round 064/OpponentCommand.txt1
-rw-r--r--tests/after_200/Round 064/PlayerCommand.txt1
-rw-r--r--tests/bigstate.json1499
-rw-r--r--tests/live-comparison.rs16
-rw-r--r--tests/monte-carlo-test.rs19
-rw-r--r--tests/state0.json311
243 files changed, 1991 insertions, 166 deletions
diff --git a/src/engine/command.rs b/src/engine/command.rs
index 7a2594d..bcfc352 100644
--- a/src/engine/command.rs
+++ b/src/engine/command.rs
@@ -13,7 +13,7 @@ impl fmt::Display for Command {
match *self {
Command::Nothing => write!(f, ""),
Command::Build(p, b) => write!(f, "{},{},{}", p.x, p.y, b as u8),
- Command::Deconstruct(p) => write!(f, "3,{},{}", p.x, p.y),
+ Command::Deconstruct(p) => write!(f, "{},{},3", p.x, p.y),
}
}
}
diff --git a/src/engine/mod.rs b/src/engine/mod.rs
index 15b7a4d..a04f875 100644
--- a/src/engine/mod.rs
+++ b/src/engine/mod.rs
@@ -119,6 +119,11 @@ impl GameState {
return;
}
+ GameState::perform_construct_command(&mut self.player_unconstructed_buildings, &mut self.player_buildings, &mut self.player, &mut self.unoccupied_player_cells, settings, player_command, &settings.size);
+ GameState::perform_construct_command(&mut self.opponent_unconstructed_buildings, &mut self.opponent_buildings, &mut self.opponent, &mut self.unoccupied_opponent_cells, settings, opponent_command, &settings.size);
+ GameState::perform_deconstruct_command(&mut self.player_unconstructed_buildings, &mut self.player_buildings, &mut self.player, &mut self.unoccupied_player_cells, player_command);
+ GameState::perform_deconstruct_command(&mut self.opponent_unconstructed_buildings, &mut self.opponent_buildings, &mut self.opponent, &mut self.unoccupied_opponent_cells, opponent_command);
+
GameState::update_construction(&mut self.player_unconstructed_buildings, &mut self.player_buildings, &mut self.player);
GameState::update_construction(&mut self.opponent_unconstructed_buildings, &mut self.opponent_buildings, &mut self.opponent);
@@ -138,47 +143,44 @@ impl GameState {
GameState::add_energy(&mut self.player);
GameState::add_energy(&mut self.opponent);
-
- GameState::perform_command(&mut self.player_unconstructed_buildings, &mut self.player_buildings, &mut self.player, &mut self.unoccupied_player_cells, settings, player_command, &settings.size);
- GameState::perform_command(&mut self.opponent_unconstructed_buildings, &mut self.opponent_buildings, &mut self.opponent, &mut self.unoccupied_opponent_cells, settings, opponent_command, &settings.size);
GameState::update_status(self);
}
- fn perform_command(unconstructed_buildings: &mut Vec<UnconstructedBuilding>, buildings: &mut Vec<Building>, player: &mut Player, unoccupied_cells: &mut Vec<Point>, settings: &GameSettings, command: Command, size: &Point) {
- match command {
- Command::Nothing => { },
- Command::Build(p, b) => {
- let blueprint = settings.building_settings(b);
+ fn perform_construct_command(unconstructed_buildings: &mut Vec<UnconstructedBuilding>, buildings: &mut Vec<Building>, player: &mut Player, unoccupied_cells: &mut Vec<Point>, settings: &GameSettings, command: Command, size: &Point) {
+ if let Command::Build(p, b) = command {
+ let blueprint = settings.building_settings(b);
- // This is used internally. I should not be making
- // invalid moves!
- debug_assert!(!buildings.iter().any(|b| b.pos == p));
- debug_assert!(p.x < size.x && p.y < size.y);
- debug_assert!(player.energy >= blueprint.price);
+ // This is used internally. I should not be making
+ // invalid moves!
+ debug_assert!(!buildings.iter().any(|b| b.pos == p));
+ debug_assert!(p.x < size.x && p.y < size.y);
+ debug_assert!(player.energy >= blueprint.price);
- player.energy -= blueprint.price;
- unconstructed_buildings.push(UnconstructedBuilding::new(p, blueprint));
-
- let to_remove_index = unoccupied_cells.iter().position(|&pos| pos == p).unwrap();
- unoccupied_cells.swap_remove(to_remove_index);
- },
- Command::Deconstruct(p) => {
- let to_remove_index = buildings.iter().position(|ref b| b.pos == p);
- if let Some(i) = to_remove_index {
- buildings.swap_remove(i);
- }
- let unconstructed_to_remove_index = unconstructed_buildings.iter().position(|ref b| b.pos == p);
- if let Some(i) = unconstructed_to_remove_index {
- unconstructed_buildings.swap_remove(i);
- }
-
- debug_assert!(to_remove_index.is_some() || unconstructed_to_remove_index.is_some());
-
- player.energy += 5;
-
- unoccupied_cells.push(p);
- },
+ player.energy -= blueprint.price;
+ unconstructed_buildings.push(UnconstructedBuilding::new(p, blueprint));
+
+ let to_remove_index = unoccupied_cells.iter().position(|&pos| pos == p).unwrap();
+ unoccupied_cells.swap_remove(to_remove_index);
+ }
+ }
+ fn perform_deconstruct_command(unconstructed_buildings: &mut Vec<UnconstructedBuilding>, buildings: &mut Vec<Building>, player: &mut Player, unoccupied_cells: &mut Vec<Point>, command: Command) {
+ if let Command::Deconstruct(p) = command {
+ let to_remove_index = buildings.iter().position(|ref b| b.pos == p);
+ let unconstructed_to_remove_index = unconstructed_buildings.iter().position(|ref b| b.pos == p);
+ debug_assert!(to_remove_index.is_some() || unconstructed_to_remove_index.is_some());
+
+ if let Some(i) = to_remove_index {
+ player.energy_generated -= buildings[i].energy_generated_per_turn;
+ buildings.swap_remove(i);
+ }
+ if let Some(i) = unconstructed_to_remove_index {
+ unconstructed_buildings.swap_remove(i);
+ }
+
+ player.energy += 5;
+
+ unoccupied_cells.push(p);
}
}
@@ -209,7 +211,7 @@ impl GameState {
opponent.health = opponent.health.saturating_sub(settings.tesla.weapon_damage);
}
'player_col_loop: for x in tesla.pos.x+1..tesla.pos.x+(settings.size.x/2)+2 {
- for &y in [tesla.pos.y - 1, tesla.pos.y, tesla.pos.y + 1].iter() {
+ for &y in [tesla.pos.y.saturating_sub(1), tesla.pos.y, tesla.pos.y.saturating_add(1)].iter() {
let target_point = Point::new(x, y);
for b in 0..opponent_buildings.len() {
if opponent_buildings[b].pos == target_point && opponent_buildings[b].health > 0 {
@@ -233,7 +235,7 @@ impl GameState {
player.health = player.health.saturating_sub(settings.tesla.weapon_damage);
}
'opponent_col_loop: for x in tesla.pos.x.saturating_sub((settings.size.x/2)+1)..tesla.pos.x {
- for &y in [tesla.pos.y - 1, tesla.pos.y, tesla.pos.y + 1].iter() {
+ for &y in [tesla.pos.y.saturating_sub(1), tesla.pos.y, tesla.pos.y.saturating_add(1)].iter() {
let target_point = Point::new(x, y);
for b in 0..player_buildings.len() {
if player_buildings[b].pos == target_point && player_buildings[b].health > 0 {
@@ -332,6 +334,18 @@ impl GameState {
}
result
}
+
+
+ pub fn occupied_player_cells(&self) -> Vec<Point> {
+ self.player_unconstructed_buildings.iter().map(|b| b.pos)
+ .chain(self.player_buildings.iter().map(|b| b.pos))
+ .collect()
+ }
+ pub fn occupied_opponent_cells(&self) -> Vec<Point> {
+ self.opponent_unconstructed_buildings.iter().map(|b| b.pos)
+ .chain(self.opponent_buildings.iter().map(|b| b.pos))
+ .collect()
+ }
}
impl GameStatus {
@@ -376,7 +390,6 @@ impl Player {
}
result
}
-
}
impl UnconstructedBuilding {
diff --git a/src/input/json.rs b/src/input/json.rs
index 95dbd46..a2f6d8c 100644
--- a/src/input/json.rs
+++ b/src/input/json.rs
@@ -188,7 +188,7 @@ impl BuildingBlueprint {
engine::settings::BuildingSettings {
price: self.price,
health: self.health,
- construction_time: self.construction_time-2,
+ construction_time: self.construction_time-1,
weapon_damage: self.weapon_damage,
weapon_speed: self.weapon_speed,
weapon_cooldown_period: self.weapon_cooldown_period,
diff --git a/src/strategy/monte_carlo.rs b/src/strategy/monte_carlo.rs
index 1ea18db..18b8acc 100644
--- a/src/strategy/monte_carlo.rs
+++ b/src/strategy/monte_carlo.rs
@@ -76,18 +76,18 @@ fn simulate_to_endstate<R: Rng>(command_score: &mut CommandScore, settings: &Gam
fn random_player_move<R: Rng>(settings: &GameSettings, state: &GameState, rng: &mut R) -> Command {
let all_buildings = state.player.sensible_buildings(settings);
- random_move(&settings, &state.unoccupied_player_cells, &all_buildings, rng)
+ random_move(&state.unoccupied_player_cells, &state.occupied_player_cells(), &all_buildings, rng)
}
fn random_opponent_move<R: Rng>(settings: &GameSettings, state: &GameState, rng: &mut R) -> Command {
let all_buildings = state.opponent.sensible_buildings(settings);
- random_move(&settings, &state.unoccupied_opponent_cells, &all_buildings, rng)
+ random_move(&state.unoccupied_opponent_cells, &state.occupied_opponent_cells(), &all_buildings, rng)
}
-fn random_move<R: Rng>(settings: &GameSettings, all_positions: &[Point], all_buildings: &[BuildingType], rng: &mut R) -> Command {
+fn random_move<R: Rng>(free_positions: &[Point], occupied_positions: &[Point], all_buildings: &[BuildingType], rng: &mut R) -> Command {
- let building_command_count = all_positions.len()*all_buildings.len();
- let deconstruct_count = (settings.size.x as usize * settings.size.y as usize / 2) - all_positions.len();
+ let building_command_count = free_positions.len()*all_buildings.len();
+ let deconstruct_count = occupied_positions.len();
let nothing_count = 1;
let number_of_commands = building_command_count + deconstruct_count + nothing_count;
@@ -98,12 +98,12 @@ fn random_move<R: Rng>(settings: &GameSettings, all_positions: &[Point], all_bui
Command::Nothing
} else if choice_index < building_command_count {
Command::Build(
- all_positions[choice_index/all_buildings.len()],
+ free_positions[choice_index/all_buildings.len()],
all_buildings[choice_index%all_buildings.len()]
)
} else {
Command::Deconstruct(
- all_positions[choice_index-building_command_count]
+ occupied_positions[choice_index-building_command_count]
)
}
}
@@ -176,11 +176,8 @@ impl CommandScore {
}
}
- for building in &state.player_buildings {
- commands.push(CommandScore::new(Command::Deconstruct(building.pos)));
- }
- for building in &state.player_unconstructed_buildings {
- commands.push(CommandScore::new(Command::Deconstruct(building.pos)));
+ for &position in &state.occupied_player_cells() {
+ commands.push(CommandScore::new(Command::Deconstruct(position)));
}
commands
diff --git a/tests/after_113/Round 003/OpponentCommand.txt b/tests/after_113/Round 003/OpponentCommand.txt
deleted file mode 100644
index e61ee5b..0000000
--- a/tests/after_113/Round 003/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,5,2 \ No newline at end of file
diff --git a/tests/after_113/Round 003/PlayerCommand.txt b/tests/after_113/Round 003/PlayerCommand.txt
deleted file mode 100644
index 4119710..0000000
--- a/tests/after_113/Round 003/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-2,1,2 \ No newline at end of file
diff --git a/tests/after_113/Round 005/PlayerCommand.txt b/tests/after_113/Round 005/PlayerCommand.txt
deleted file mode 100644
index 7388cff..0000000
--- a/tests/after_113/Round 005/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-4,0,2 \ No newline at end of file
diff --git a/tests/after_113/Round 007/OpponentCommand.txt b/tests/after_113/Round 007/OpponentCommand.txt
deleted file mode 100644
index 9b9f49b..0000000
--- a/tests/after_113/Round 007/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 008/OpponentCommand.txt b/tests/after_113/Round 008/OpponentCommand.txt
deleted file mode 100644
index bdb74d0..0000000
--- a/tests/after_113/Round 008/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-No Command \ No newline at end of file
diff --git a/tests/after_113/Round 008/PlayerCommand.txt b/tests/after_113/Round 008/PlayerCommand.txt
deleted file mode 100644
index bdb74d0..0000000
--- a/tests/after_113/Round 008/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-No Command \ No newline at end of file
diff --git a/tests/after_113/Round 009/OpponentCommand.txt b/tests/after_113/Round 009/OpponentCommand.txt
deleted file mode 100644
index bd4deea..0000000
--- a/tests/after_113/Round 009/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-1,7,1 \ No newline at end of file
diff --git a/tests/after_113/Round 009/PlayerCommand.txt b/tests/after_113/Round 009/PlayerCommand.txt
deleted file mode 100644
index d9a0acb..0000000
--- a/tests/after_113/Round 009/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-2,7,1 \ No newline at end of file
diff --git a/tests/after_113/Round 010/OpponentCommand.txt b/tests/after_113/Round 010/OpponentCommand.txt
deleted file mode 100644
index 1260cea..0000000
--- a/tests/after_113/Round 010/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 010/PlayerCommand.txt b/tests/after_113/Round 010/PlayerCommand.txt
deleted file mode 100644
index ca8db41..0000000
--- a/tests/after_113/Round 010/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-3,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 011/OpponentCommand.txt b/tests/after_113/Round 011/OpponentCommand.txt
deleted file mode 100644
index 19fbb8f..0000000
--- a/tests/after_113/Round 011/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-4,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 011/PlayerCommand.txt b/tests/after_113/Round 011/PlayerCommand.txt
deleted file mode 100644
index 5c3de37..0000000
--- a/tests/after_113/Round 011/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 012/OpponentCommand.txt b/tests/after_113/Round 012/OpponentCommand.txt
deleted file mode 100644
index 5c3de37..0000000
--- a/tests/after_113/Round 012/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 012/PlayerCommand.txt b/tests/after_113/Round 012/PlayerCommand.txt
deleted file mode 100644
index 1260cea..0000000
--- a/tests/after_113/Round 012/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 013/OpponentCommand.txt b/tests/after_113/Round 013/OpponentCommand.txt
deleted file mode 100644
index 9b9f49b..0000000
--- a/tests/after_113/Round 013/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 013/PlayerCommand.txt b/tests/after_113/Round 013/PlayerCommand.txt
deleted file mode 100644
index 4d83fd9..0000000
--- a/tests/after_113/Round 013/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-3,1,2 \ No newline at end of file
diff --git a/tests/after_113/Round 014/OpponentCommand.txt b/tests/after_113/Round 014/OpponentCommand.txt
deleted file mode 100644
index af58f31..0000000
--- a/tests/after_113/Round 014/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-2,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 014/PlayerCommand.txt b/tests/after_113/Round 014/PlayerCommand.txt
deleted file mode 100644
index 9b9f49b..0000000
--- a/tests/after_113/Round 014/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 015/OpponentCommand.txt b/tests/after_113/Round 015/OpponentCommand.txt
deleted file mode 100644
index 8ba7f16..0000000
--- a/tests/after_113/Round 015/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-1,5,2 \ No newline at end of file
diff --git a/tests/after_113/Round 015/PlayerCommand.txt b/tests/after_113/Round 015/PlayerCommand.txt
deleted file mode 100644
index 055ca5b..0000000
--- a/tests/after_113/Round 015/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-0,7,1 \ No newline at end of file
diff --git a/tests/after_113/Round 016/OpponentCommand.txt b/tests/after_113/Round 016/OpponentCommand.txt
deleted file mode 100644
index a943cb9..0000000
--- a/tests/after_113/Round 016/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-3,7,1 \ No newline at end of file
diff --git a/tests/after_113/Round 016/PlayerCommand.txt b/tests/after_113/Round 016/PlayerCommand.txt
deleted file mode 100644
index 1fcc509..0000000
--- a/tests/after_113/Round 016/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-0,5,1 \ No newline at end of file
diff --git a/tests/after_113/Round 017/OpponentCommand.txt b/tests/after_113/Round 017/OpponentCommand.txt
deleted file mode 100644
index 487bf6a..0000000
--- a/tests/after_113/Round 017/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 017/PlayerCommand.txt b/tests/after_113/Round 017/PlayerCommand.txt
deleted file mode 100644
index 9f12d31..0000000
--- a/tests/after_113/Round 017/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 018/OpponentCommand.txt b/tests/after_113/Round 018/OpponentCommand.txt
deleted file mode 100644
index 055ca5b..0000000
--- a/tests/after_113/Round 018/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-0,7,1 \ No newline at end of file
diff --git a/tests/after_113/Round 018/PlayerCommand.txt b/tests/after_113/Round 018/PlayerCommand.txt
deleted file mode 100644
index 5ff9de4..0000000
--- a/tests/after_113/Round 018/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-3,5,2 \ No newline at end of file
diff --git a/tests/after_113/Round 019/OpponentCommand.txt b/tests/after_113/Round 019/OpponentCommand.txt
deleted file mode 100644
index f23ef17..0000000
--- a/tests/after_113/Round 019/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-4,6,1 \ No newline at end of file
diff --git a/tests/after_113/Round 019/PlayerCommand.txt b/tests/after_113/Round 019/PlayerCommand.txt
deleted file mode 100644
index 75b785b..0000000
--- a/tests/after_113/Round 019/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-4,7,1 \ No newline at end of file
diff --git a/tests/after_113/Round 020/OpponentCommand.txt b/tests/after_113/Round 020/OpponentCommand.txt
deleted file mode 100644
index 8bb009c..0000000
--- a/tests/after_113/Round 020/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,1,1 \ No newline at end of file
diff --git a/tests/after_113/Round 021/OpponentCommand.txt b/tests/after_113/Round 021/OpponentCommand.txt
deleted file mode 100644
index 9477e06..0000000
--- a/tests/after_113/Round 021/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 022/OpponentCommand.txt b/tests/after_113/Round 022/OpponentCommand.txt
deleted file mode 100644
index 9f12d31..0000000
--- a/tests/after_113/Round 022/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 022/PlayerCommand.txt b/tests/after_113/Round 022/PlayerCommand.txt
deleted file mode 100644
index 323dbb1..0000000
--- a/tests/after_113/Round 022/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,1,1 \ No newline at end of file
diff --git a/tests/after_113/Round 023/OpponentCommand.txt b/tests/after_113/Round 023/OpponentCommand.txt
deleted file mode 100644
index ad5f821..0000000
--- a/tests/after_113/Round 023/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 023/PlayerCommand.txt b/tests/after_113/Round 023/PlayerCommand.txt
deleted file mode 100644
index 4763908..0000000
--- a/tests/after_113/Round 023/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 024/OpponentCommand.txt b/tests/after_113/Round 024/OpponentCommand.txt
deleted file mode 100644
index 533b1c8..0000000
--- a/tests/after_113/Round 024/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-2,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 025/OpponentCommand.txt b/tests/after_113/Round 025/OpponentCommand.txt
deleted file mode 100644
index 487bf6a..0000000
--- a/tests/after_113/Round 025/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 025/PlayerCommand.txt b/tests/after_113/Round 025/PlayerCommand.txt
deleted file mode 100644
index 487bf6a..0000000
--- a/tests/after_113/Round 025/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 026/OpponentCommand.txt b/tests/after_113/Round 026/OpponentCommand.txt
deleted file mode 100644
index e02c049..0000000
--- a/tests/after_113/Round 026/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-3,6,1 \ No newline at end of file
diff --git a/tests/after_113/Round 026/PlayerCommand.txt b/tests/after_113/Round 026/PlayerCommand.txt
deleted file mode 100644
index bd4deea..0000000
--- a/tests/after_113/Round 026/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-1,7,1 \ No newline at end of file
diff --git a/tests/after_113/Round 027/OpponentCommand.txt b/tests/after_113/Round 027/OpponentCommand.txt
deleted file mode 100644
index 323dbb1..0000000
--- a/tests/after_113/Round 027/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,1,1 \ No newline at end of file
diff --git a/tests/after_113/Round 027/PlayerCommand.txt b/tests/after_113/Round 027/PlayerCommand.txt
deleted file mode 100644
index 5c3de37..0000000
--- a/tests/after_113/Round 027/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 028/PlayerCommand.txt b/tests/after_113/Round 028/PlayerCommand.txt
deleted file mode 100644
index 08ecb10..0000000
--- a/tests/after_113/Round 028/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-3,1,1 \ No newline at end of file
diff --git a/tests/after_113/Round 029/OpponentCommand.txt b/tests/after_113/Round 029/OpponentCommand.txt
deleted file mode 100644
index 8bb009c..0000000
--- a/tests/after_113/Round 029/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,1,1 \ No newline at end of file
diff --git a/tests/after_113/Round 030/OpponentCommand.txt b/tests/after_113/Round 030/OpponentCommand.txt
deleted file mode 100644
index ac6c42a..0000000
--- a/tests/after_113/Round 030/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,6,1 \ No newline at end of file
diff --git a/tests/after_113/Round 030/PlayerCommand.txt b/tests/after_113/Round 030/PlayerCommand.txt
deleted file mode 100644
index 26912c7..0000000
--- a/tests/after_113/Round 030/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-4,1,1 \ No newline at end of file
diff --git a/tests/after_113/Round 031/OpponentCommand.txt b/tests/after_113/Round 031/OpponentCommand.txt
deleted file mode 100644
index 8ac3a56..0000000
--- a/tests/after_113/Round 031/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-1,6,1 \ No newline at end of file
diff --git a/tests/after_113/Round 031/PlayerCommand.txt b/tests/after_113/Round 031/PlayerCommand.txt
deleted file mode 100644
index a5bd5ef..0000000
--- a/tests/after_113/Round 031/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-1,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 032/OpponentCommand.txt b/tests/after_113/Round 032/OpponentCommand.txt
deleted file mode 100644
index 9b9f49b..0000000
--- a/tests/after_113/Round 032/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 033/PlayerCommand.txt b/tests/after_113/Round 033/PlayerCommand.txt
deleted file mode 100644
index 429fd32..0000000
--- a/tests/after_113/Round 033/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,6,0 \ No newline at end of file
diff --git a/tests/after_113/Round 034/OpponentCommand.txt b/tests/after_113/Round 034/OpponentCommand.txt
deleted file mode 100644
index 487bf6a..0000000
--- a/tests/after_113/Round 034/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 034/PlayerCommand.txt b/tests/after_113/Round 034/PlayerCommand.txt
deleted file mode 100644
index 487bf6a..0000000
--- a/tests/after_113/Round 034/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 035/OpponentCommand.txt b/tests/after_113/Round 035/OpponentCommand.txt
deleted file mode 100644
index 9f12d31..0000000
--- a/tests/after_113/Round 035/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 037/PlayerCommand.txt b/tests/after_113/Round 037/PlayerCommand.txt
deleted file mode 100644
index ad5f821..0000000
--- a/tests/after_113/Round 037/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 038/PlayerCommand.txt b/tests/after_113/Round 038/PlayerCommand.txt
deleted file mode 100644
index 9f12d31..0000000
--- a/tests/after_113/Round 038/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 039/OpponentCommand.txt b/tests/after_113/Round 039/OpponentCommand.txt
deleted file mode 100644
index 79e2fd9..0000000
--- a/tests/after_113/Round 039/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-1,3,0 \ No newline at end of file
diff --git a/tests/after_113/Round 039/PlayerCommand.txt b/tests/after_113/Round 039/PlayerCommand.txt
deleted file mode 100644
index 58897af..0000000
--- a/tests/after_113/Round 039/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-3,6,0 \ No newline at end of file
diff --git a/tests/after_113/Round 040/OpponentCommand.txt b/tests/after_113/Round 040/OpponentCommand.txt
deleted file mode 100644
index b557a00..0000000
--- a/tests/after_113/Round 040/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-4,3,2 \ No newline at end of file
diff --git a/tests/after_113/Round 040/PlayerCommand.txt b/tests/after_113/Round 040/PlayerCommand.txt
deleted file mode 100644
index f217f6d..0000000
--- a/tests/after_113/Round 040/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 041/OpponentCommand.txt b/tests/after_113/Round 041/OpponentCommand.txt
deleted file mode 100644
index 487bf6a..0000000
--- a/tests/after_113/Round 041/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 041/PlayerCommand.txt b/tests/after_113/Round 041/PlayerCommand.txt
deleted file mode 100644
index 743727a..0000000
--- a/tests/after_113/Round 041/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,6,0 \ No newline at end of file
diff --git a/tests/after_113/Round 042/OpponentCommand.txt b/tests/after_113/Round 042/OpponentCommand.txt
deleted file mode 100644
index 75b785b..0000000
--- a/tests/after_113/Round 042/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-4,7,1 \ No newline at end of file
diff --git a/tests/after_113/Round 042/PlayerCommand.txt b/tests/after_113/Round 042/PlayerCommand.txt
deleted file mode 100644
index 487bf6a..0000000
--- a/tests/after_113/Round 042/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 043/PlayerCommand.txt b/tests/after_113/Round 043/PlayerCommand.txt
deleted file mode 100644
index 533b1c8..0000000
--- a/tests/after_113/Round 043/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-2,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 044/OpponentCommand.txt b/tests/after_113/Round 044/OpponentCommand.txt
deleted file mode 100644
index c27eaf9..0000000
--- a/tests/after_113/Round 044/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,1,2 \ No newline at end of file
diff --git a/tests/after_113/Round 044/PlayerCommand.txt b/tests/after_113/Round 044/PlayerCommand.txt
deleted file mode 100644
index 9f12d31..0000000
--- a/tests/after_113/Round 044/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 045/PlayerCommand.txt b/tests/after_113/Round 045/PlayerCommand.txt
deleted file mode 100644
index 9477e06..0000000
--- a/tests/after_113/Round 045/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 046/OpponentCommand.txt b/tests/after_113/Round 046/OpponentCommand.txt
deleted file mode 100644
index 8bb009c..0000000
--- a/tests/after_113/Round 046/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,1,1 \ No newline at end of file
diff --git a/tests/after_113/Round 046/PlayerCommand.txt b/tests/after_113/Round 046/PlayerCommand.txt
deleted file mode 100644
index 1260cea..0000000
--- a/tests/after_113/Round 046/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 047/PlayerCommand.txt b/tests/after_113/Round 047/PlayerCommand.txt
deleted file mode 100644
index ac6c42a..0000000
--- a/tests/after_113/Round 047/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,6,1 \ No newline at end of file
diff --git a/tests/after_113/Round 049/OpponentCommand.txt b/tests/after_113/Round 049/OpponentCommand.txt
deleted file mode 100644
index 7ae20d1..0000000
--- a/tests/after_113/Round 049/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,5,0 \ No newline at end of file
diff --git a/tests/after_113/Round 049/PlayerCommand.txt b/tests/after_113/Round 049/PlayerCommand.txt
deleted file mode 100644
index ad5f821..0000000
--- a/tests/after_113/Round 049/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 050/PlayerCommand.txt b/tests/after_113/Round 050/PlayerCommand.txt
deleted file mode 100644
index 9b9f49b..0000000
--- a/tests/after_113/Round 050/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 051/OpponentCommand.txt b/tests/after_113/Round 051/OpponentCommand.txt
deleted file mode 100644
index a81a341..0000000
--- a/tests/after_113/Round 051/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,6,1 \ No newline at end of file
diff --git a/tests/after_113/Round 051/PlayerCommand.txt b/tests/after_113/Round 051/PlayerCommand.txt
deleted file mode 100644
index 9477e06..0000000
--- a/tests/after_113/Round 051/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 052/OpponentCommand.txt b/tests/after_113/Round 052/OpponentCommand.txt
deleted file mode 100644
index 4763908..0000000
--- a/tests/after_113/Round 052/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 052/PlayerCommand.txt b/tests/after_113/Round 052/PlayerCommand.txt
deleted file mode 100644
index c41707e..0000000
--- a/tests/after_113/Round 052/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,1 \ No newline at end of file
diff --git a/tests/after_113/Round 053/OpponentCommand.txt b/tests/after_113/Round 053/OpponentCommand.txt
deleted file mode 100644
index 239b17a..0000000
--- a/tests/after_113/Round 053/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-1,4,2 \ No newline at end of file
diff --git a/tests/after_113/Round 054/PlayerCommand.txt b/tests/after_113/Round 054/PlayerCommand.txt
deleted file mode 100644
index 9b9f49b..0000000
--- a/tests/after_113/Round 054/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 055/OpponentCommand.txt b/tests/after_113/Round 055/OpponentCommand.txt
deleted file mode 100644
index a81a341..0000000
--- a/tests/after_113/Round 055/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,6,1 \ No newline at end of file
diff --git a/tests/after_113/Round 055/PlayerCommand.txt b/tests/after_113/Round 055/PlayerCommand.txt
deleted file mode 100644
index 1084f37..0000000
--- a/tests/after_113/Round 055/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,6,1 \ No newline at end of file
diff --git a/tests/after_113/Round 057/OpponentCommand.txt b/tests/after_113/Round 057/OpponentCommand.txt
deleted file mode 100644
index c4e7948..0000000
--- a/tests/after_113/Round 057/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-2,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 057/PlayerCommand.txt b/tests/after_113/Round 057/PlayerCommand.txt
deleted file mode 100644
index ad5f821..0000000
--- a/tests/after_113/Round 057/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 058/PlayerCommand.txt b/tests/after_113/Round 058/PlayerCommand.txt
deleted file mode 100644
index c41707e..0000000
--- a/tests/after_113/Round 058/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,1 \ No newline at end of file
diff --git a/tests/after_113/Round 059/OpponentCommand.txt b/tests/after_113/Round 059/OpponentCommand.txt
deleted file mode 100644
index aa178b0..0000000
--- a/tests/after_113/Round 059/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-3,3,0 \ No newline at end of file
diff --git a/tests/after_113/Round 059/PlayerCommand.txt b/tests/after_113/Round 059/PlayerCommand.txt
deleted file mode 100644
index 9477e06..0000000
--- a/tests/after_113/Round 059/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 060/OpponentCommand.txt b/tests/after_113/Round 060/OpponentCommand.txt
deleted file mode 100644
index 9f12d31..0000000
--- a/tests/after_113/Round 060/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 060/PlayerCommand.txt b/tests/after_113/Round 060/PlayerCommand.txt
deleted file mode 100644
index 5c3de37..0000000
--- a/tests/after_113/Round 060/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 061/OpponentCommand.txt b/tests/after_113/Round 061/OpponentCommand.txt
deleted file mode 100644
index a7c241f..0000000
--- a/tests/after_113/Round 061/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-0,7,0 \ No newline at end of file
diff --git a/tests/after_113/Round 061/PlayerCommand.txt b/tests/after_113/Round 061/PlayerCommand.txt
deleted file mode 100644
index 743727a..0000000
--- a/tests/after_113/Round 061/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,6,0 \ No newline at end of file
diff --git a/tests/after_113/Round 062/OpponentCommand.txt b/tests/after_113/Round 062/OpponentCommand.txt
deleted file mode 100644
index 9033ecb..0000000
--- a/tests/after_113/Round 062/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-4,5,2 \ No newline at end of file
diff --git a/tests/after_113/Round 062/PlayerCommand.txt b/tests/after_113/Round 062/PlayerCommand.txt
deleted file mode 100644
index 9477e06..0000000
--- a/tests/after_113/Round 062/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 063/OpponentCommand.txt b/tests/after_113/Round 063/OpponentCommand.txt
deleted file mode 100644
index 455ac78..0000000
--- a/tests/after_113/Round 063/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-2,5,1 \ No newline at end of file
diff --git a/tests/after_113/Round 063/PlayerCommand.txt b/tests/after_113/Round 063/PlayerCommand.txt
deleted file mode 100644
index f217f6d..0000000
--- a/tests/after_113/Round 063/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 064/OpponentCommand.txt b/tests/after_113/Round 064/OpponentCommand.txt
deleted file mode 100644
index 9b9f49b..0000000
--- a/tests/after_113/Round 064/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 064/PlayerCommand.txt b/tests/after_113/Round 064/PlayerCommand.txt
deleted file mode 100644
index 9477e06..0000000
--- a/tests/after_113/Round 064/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 065/OpponentCommand.txt b/tests/after_113/Round 065/OpponentCommand.txt
deleted file mode 100644
index 1260cea..0000000
--- a/tests/after_113/Round 065/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 066/OpponentCommand.txt b/tests/after_113/Round 066/OpponentCommand.txt
deleted file mode 100644
index 9b9f49b..0000000
--- a/tests/after_113/Round 066/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 067/OpponentCommand.txt b/tests/after_113/Round 067/OpponentCommand.txt
deleted file mode 100644
index 5c3de37..0000000
--- a/tests/after_113/Round 067/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 067/PlayerCommand.txt b/tests/after_113/Round 067/PlayerCommand.txt
deleted file mode 100644
index 533b1c8..0000000
--- a/tests/after_113/Round 067/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-2,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 068/OpponentCommand.txt b/tests/after_113/Round 068/OpponentCommand.txt
deleted file mode 100644
index 9b9f49b..0000000
--- a/tests/after_113/Round 068/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 068/PlayerCommand.txt b/tests/after_113/Round 068/PlayerCommand.txt
deleted file mode 100644
index ad5f821..0000000
--- a/tests/after_113/Round 068/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 069/OpponentCommand.txt b/tests/after_113/Round 069/OpponentCommand.txt
deleted file mode 100644
index 1260cea..0000000
--- a/tests/after_113/Round 069/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-5,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 069/PlayerCommand.txt b/tests/after_113/Round 069/PlayerCommand.txt
deleted file mode 100644
index 9477e06..0000000
--- a/tests/after_113/Round 069/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-6,6,2 \ No newline at end of file
diff --git a/tests/after_113/Round 070/OpponentCommand.txt b/tests/after_113/Round 070/OpponentCommand.txt
deleted file mode 100644
index 9b9f49b..0000000
--- a/tests/after_113/Round 070/OpponentCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,7,2 \ No newline at end of file
diff --git a/tests/after_113/Round 070/PlayerCommand.txt b/tests/after_113/Round 070/PlayerCommand.txt
deleted file mode 100644
index ad5f821..0000000
--- a/tests/after_113/Round 070/PlayerCommand.txt
+++ /dev/null
@@ -1 +0,0 @@
-7,6,2 \ No newline at end of file
diff --git a/tests/after_200/Round 000/OpponentCommand.txt b/tests/after_200/Round 000/OpponentCommand.txt
new file mode 100644
index 0000000..ea9e316
--- /dev/null
+++ b/tests/after_200/Round 000/OpponentCommand.txt
@@ -0,0 +1 @@
+6,1,2 \ No newline at end of file
diff --git a/tests/after_200/Round 000/PlayerCommand.txt b/tests/after_200/Round 000/PlayerCommand.txt
new file mode 100644
index 0000000..ea9e316
--- /dev/null
+++ b/tests/after_200/Round 000/PlayerCommand.txt
@@ -0,0 +1 @@
+6,1,2 \ No newline at end of file
diff --git a/tests/after_113/Round 001/OpponentCommand.txt b/tests/after_200/Round 001/OpponentCommand.txt
index bdb74d0..bdb74d0 100644
--- a/tests/after_113/Round 001/OpponentCommand.txt
+++ b/tests/after_200/Round 001/OpponentCommand.txt
diff --git a/tests/after_113/Round 001/PlayerCommand.txt b/tests/after_200/Round 001/PlayerCommand.txt
index bdb74d0..bdb74d0 100644
--- a/tests/after_113/Round 001/PlayerCommand.txt
+++ b/tests/after_200/Round 001/PlayerCommand.txt
diff --git a/tests/after_113/Round 002/OpponentCommand.txt b/tests/after_200/Round 002/OpponentCommand.txt
index bdb74d0..bdb74d0 100644
--- a/tests/after_113/Round 002/OpponentCommand.txt
+++ b/tests/after_200/Round 002/OpponentCommand.txt
diff --git a/tests/after_113/Round 002/PlayerCommand.txt b/tests/after_200/Round 002/PlayerCommand.txt
index bdb74d0..bdb74d0 100644
--- a/tests/after_113/Round 002/PlayerCommand.txt
+++ b/tests/after_200/Round 002/PlayerCommand.txt
diff --git a/tests/after_113/Round 058/OpponentCommand.txt b/tests/after_200/Round 003/OpponentCommand.txt
index ab857c9..ab857c9 100644
--- a/tests/after_113/Round 058/OpponentCommand.txt
+++ b/tests/after_200/Round 003/OpponentCommand.txt
diff --git a/tests/after_200/Round 003/PlayerCommand.txt b/tests/after_200/Round 003/PlayerCommand.txt
new file mode 100644
index 0000000..ab857c9
--- /dev/null
+++ b/tests/after_200/Round 003/PlayerCommand.txt
@@ -0,0 +1 @@
+7,1,2 \ No newline at end of file
diff --git a/tests/after_200/Round 004/OpponentCommand.txt b/tests/after_200/Round 004/OpponentCommand.txt
new file mode 100644
index 0000000..5720dc8
--- /dev/null
+++ b/tests/after_200/Round 004/OpponentCommand.txt
@@ -0,0 +1 @@
+6,1,3 \ No newline at end of file
diff --git a/tests/after_200/Round 004/PlayerCommand.txt b/tests/after_200/Round 004/PlayerCommand.txt
new file mode 100644
index 0000000..5720dc8
--- /dev/null
+++ b/tests/after_200/Round 004/PlayerCommand.txt
@@ -0,0 +1 @@
+6,1,3 \ No newline at end of file
diff --git a/tests/after_200/Round 005/OpponentCommand.txt b/tests/after_200/Round 005/OpponentCommand.txt
new file mode 100644
index 0000000..87d322f
--- /dev/null
+++ b/tests/after_200/Round 005/OpponentCommand.txt
@@ -0,0 +1 @@
+3,0,2 \ No newline at end of file
diff --git a/tests/after_200/Round 005/PlayerCommand.txt b/tests/after_200/Round 005/PlayerCommand.txt
new file mode 100644
index 0000000..87d322f
--- /dev/null
+++ b/tests/after_200/Round 005/PlayerCommand.txt
@@ -0,0 +1 @@
+3,0,2 \ No newline at end of file
diff --git a/tests/after_113/Round 004/OpponentCommand.txt b/tests/after_200/Round 006/OpponentCommand.txt
index bdb74d0..bdb74d0 100644
--- a/tests/after_113/Round 004/OpponentCommand.txt
+++ b/tests/after_200/Round 006/OpponentCommand.txt
diff --git a/tests/after_113/Round 004/PlayerCommand.txt b/tests/after_200/Round 006/PlayerCommand.txt
index bdb74d0..bdb74d0 100644
--- a/tests/after_113/Round 004/PlayerCommand.txt
+++ b/tests/after_200/Round 006/PlayerCommand.txt
diff --git a/tests/after_200/Round 007/OpponentCommand.txt b/tests/after_200/Round 007/OpponentCommand.txt
new file mode 100644
index 0000000..49dd99d
--- /dev/null
+++ b/tests/after_200/Round 007/OpponentCommand.txt
@@ -0,0 +1 @@
+1,2,2 \ No newline at end of file
diff --git a/tests/after_200/Round 007/PlayerCommand.txt b/tests/after_200/Round 007/PlayerCommand.txt
new file mode 100644
index 0000000..49dd99d
--- /dev/null
+++ b/tests/after_200/Round 007/PlayerCommand.txt
@@ -0,0 +1 @@
+1,2,2 \ No newline at end of file
diff --git a/tests/after_113/Round 006/OpponentCommand.txt b/tests/after_200/Round 008/OpponentCommand.txt
index bdb74d0..bdb74d0 100644
--- a/tests/after_113/Round 006/OpponentCommand.txt
+++ b/tests/after_200/Round 008/OpponentCommand.txt
diff --git a/tests/after_113/Round 006/PlayerCommand.txt b/tests/after_200/Round 008/PlayerCommand.txt
index bdb74d0..bdb74d0 100644
--- a/tests/after_113/Round 006/PlayerCommand.txt
+++ b/tests/after_200/Round 008/PlayerCommand.txt
diff --git a/tests/after_200/Round 009/OpponentCommand.txt b/tests/after_200/Round 009/OpponentCommand.txt
new file mode 100644
index 0000000..f3c8f77
--- /dev/null
+++ b/tests/after_200/Round 009/OpponentCommand.txt
@@ -0,0 +1 @@
+2,2,2 \ No newline at end of file
diff --git a/tests/after_200/Round 009/PlayerCommand.txt b/tests/after_200/Round 009/PlayerCommand.txt
new file mode 100644
index 0000000..f3c8f77
--- /dev/null
+++ b/tests/after_200/Round 009/PlayerCommand.txt
@@ -0,0 +1 @@
+2,2,2 \ No newline at end of file
diff --git a/tests/after_113/Round 021/PlayerCommand.txt b/tests/after_200/Round 010/OpponentCommand.txt
index 67f6e86..67f6e86 100644
--- a/tests/after_113/Round 021/PlayerCommand.txt
+++ b/tests/after_200/Round 010/OpponentCommand.txt
diff --git a/tests/after_200/Round 010/PlayerCommand.txt b/tests/after_200/Round 010/PlayerCommand.txt
new file mode 100644
index 0000000..67f6e86
--- /dev/null
+++ b/tests/after_200/Round 010/PlayerCommand.txt
@@ -0,0 +1 @@
+7,3,2 \ No newline at end of file
diff --git a/tests/after_200/Round 011/OpponentCommand.txt b/tests/after_200/Round 011/OpponentCommand.txt
new file mode 100644
index 0000000..c919a0e
--- /dev/null
+++ b/tests/after_200/Round 011/OpponentCommand.txt
@@ -0,0 +1 @@
+7,1,3 \ No newline at end of file
diff --git a/tests/after_200/Round 011/PlayerCommand.txt b/tests/after_200/Round 011/PlayerCommand.txt
new file mode 100644
index 0000000..c919a0e
--- /dev/null
+++ b/tests/after_200/Round 011/PlayerCommand.txt
@@ -0,0 +1 @@
+7,1,3 \ No newline at end of file
diff --git a/tests/after_113/Round 032/PlayerCommand.txt b/tests/after_200/Round 012/OpponentCommand.txt
index addc906..addc906 100644
--- a/tests/after_113/Round 032/PlayerCommand.txt
+++ b/tests/after_200/Round 012/OpponentCommand.txt
diff --git a/tests/after_200/Round 012/PlayerCommand.txt b/tests/after_200/Round 012/PlayerCommand.txt
new file mode 100644
index 0000000..addc906
--- /dev/null
+++ b/tests/after_200/Round 012/PlayerCommand.txt
@@ -0,0 +1 @@
+4,3,1 \ No newline at end of file
diff --git a/tests/after_113/Round 005/OpponentCommand.txt b/tests/after_200/Round 013/OpponentCommand.txt
index 8e935c8..8e935c8 100644
--- a/tests/after_113/Round 005/OpponentCommand.txt
+++ b/tests/after_200/Round 013/OpponentCommand.txt
diff --git a/tests/after_200/Round 013/PlayerCommand.txt b/tests/after_200/Round 013/PlayerCommand.txt
new file mode 100644
index 0000000..8e935c8
--- /dev/null
+++ b/tests/after_200/Round 013/PlayerCommand.txt
@@ -0,0 +1 @@
+6,3,2 \ No newline at end of file
diff --git a/tests/after_113/Round 024/PlayerCommand.txt b/tests/after_200/Round 014/OpponentCommand.txt
index 17d7db2..17d7db2 100644
--- a/tests/after_113/Round 024/PlayerCommand.txt
+++ b/tests/after_200/Round 014/OpponentCommand.txt
diff --git a/tests/after_200/Round 014/PlayerCommand.txt b/tests/after_200/Round 014/PlayerCommand.txt
new file mode 100644
index 0000000..17d7db2
--- /dev/null
+++ b/tests/after_200/Round 014/PlayerCommand.txt
@@ -0,0 +1 @@
+5,3,2 \ No newline at end of file
diff --git a/tests/after_200/Round 015/OpponentCommand.txt b/tests/after_200/Round 015/OpponentCommand.txt
new file mode 100644
index 0000000..601aa29
--- /dev/null
+++ b/tests/after_200/Round 015/OpponentCommand.txt
@@ -0,0 +1 @@
+2,5,2 \ No newline at end of file
diff --git a/tests/after_200/Round 015/PlayerCommand.txt b/tests/after_200/Round 015/PlayerCommand.txt
new file mode 100644
index 0000000..601aa29
--- /dev/null
+++ b/tests/after_200/Round 015/PlayerCommand.txt
@@ -0,0 +1 @@
+2,5,2 \ No newline at end of file
diff --git a/tests/after_200/Round 016/OpponentCommand.txt b/tests/after_200/Round 016/OpponentCommand.txt
new file mode 100644
index 0000000..85eacdb
--- /dev/null
+++ b/tests/after_200/Round 016/OpponentCommand.txt
@@ -0,0 +1 @@
+3,2,2 \ No newline at end of file
diff --git a/tests/after_200/Round 016/PlayerCommand.txt b/tests/after_200/Round 016/PlayerCommand.txt
new file mode 100644
index 0000000..85eacdb
--- /dev/null
+++ b/tests/after_200/Round 016/PlayerCommand.txt
@@ -0,0 +1 @@
+3,2,2 \ No newline at end of file
diff --git a/tests/after_200/Round 017/OpponentCommand.txt b/tests/after_200/Round 017/OpponentCommand.txt
new file mode 100644
index 0000000..67f6e86
--- /dev/null
+++ b/tests/after_200/Round 017/OpponentCommand.txt
@@ -0,0 +1 @@
+7,3,2 \ No newline at end of file
diff --git a/tests/after_200/Round 017/PlayerCommand.txt b/tests/after_200/Round 017/PlayerCommand.txt
new file mode 100644
index 0000000..67f6e86
--- /dev/null
+++ b/tests/after_200/Round 017/PlayerCommand.txt
@@ -0,0 +1 @@
+7,3,2 \ No newline at end of file
diff --git a/tests/after_113/Round 038/OpponentCommand.txt b/tests/after_200/Round 018/OpponentCommand.txt
index 61f66b5..61f66b5 100644
--- a/tests/after_113/Round 038/OpponentCommand.txt
+++ b/tests/after_200/Round 018/OpponentCommand.txt
diff --git a/tests/after_200/Round 018/PlayerCommand.txt b/tests/after_200/Round 018/PlayerCommand.txt
new file mode 100644
index 0000000..4a9590d
--- /dev/null
+++ b/tests/after_200/Round 018/PlayerCommand.txt
@@ -0,0 +1 @@
+0,7,2 \ No newline at end of file
diff --git a/tests/after_200/Round 019/OpponentCommand.txt b/tests/after_200/Round 019/OpponentCommand.txt
new file mode 100644
index 0000000..ccd082b
--- /dev/null
+++ b/tests/after_200/Round 019/OpponentCommand.txt
@@ -0,0 +1 @@
+6,2,1 \ No newline at end of file
diff --git a/tests/after_200/Round 019/PlayerCommand.txt b/tests/after_200/Round 019/PlayerCommand.txt
new file mode 100644
index 0000000..10532f2
--- /dev/null
+++ b/tests/after_200/Round 019/PlayerCommand.txt
@@ -0,0 +1 @@
+0,2,1 \ No newline at end of file
diff --git a/tests/after_200/Round 020/OpponentCommand.txt b/tests/after_200/Round 020/OpponentCommand.txt
new file mode 100644
index 0000000..d9d71ea
--- /dev/null
+++ b/tests/after_200/Round 020/OpponentCommand.txt
@@ -0,0 +1 @@
+4,2,1 \ No newline at end of file
diff --git a/tests/after_200/Round 020/PlayerCommand.txt b/tests/after_200/Round 020/PlayerCommand.txt
new file mode 100644
index 0000000..49c1201
--- /dev/null
+++ b/tests/after_200/Round 020/PlayerCommand.txt
@@ -0,0 +1 @@
+7,2,1 \ No newline at end of file
diff --git a/tests/after_113/Round 036/PlayerCommand.txt b/tests/after_200/Round 021/OpponentCommand.txt
index a825030..a825030 100644
--- a/tests/after_113/Round 036/PlayerCommand.txt
+++ b/tests/after_200/Round 021/OpponentCommand.txt
diff --git a/tests/after_200/Round 021/PlayerCommand.txt b/tests/after_200/Round 021/PlayerCommand.txt
new file mode 100644
index 0000000..ccd082b
--- /dev/null
+++ b/tests/after_200/Round 021/PlayerCommand.txt
@@ -0,0 +1 @@
+6,2,1 \ No newline at end of file
diff --git a/tests/after_200/Round 022/OpponentCommand.txt b/tests/after_200/Round 022/OpponentCommand.txt
new file mode 100644
index 0000000..ccd082b
--- /dev/null
+++ b/tests/after_200/Round 022/OpponentCommand.txt
@@ -0,0 +1 @@
+6,2,1 \ No newline at end of file
diff --git a/tests/after_113/Round 036/OpponentCommand.txt b/tests/after_200/Round 022/PlayerCommand.txt
index 3ca9676..3ca9676 100644
--- a/tests/after_113/Round 036/OpponentCommand.txt
+++ b/tests/after_200/Round 022/PlayerCommand.txt
diff --git a/tests/after_113/Round 054/OpponentCommand.txt b/tests/after_200/Round 023/OpponentCommand.txt
index 3ca9676..3ca9676 100644
--- a/tests/after_113/Round 054/OpponentCommand.txt
+++ b/tests/after_200/Round 023/OpponentCommand.txt
diff --git a/tests/after_200/Round 023/PlayerCommand.txt b/tests/after_200/Round 023/PlayerCommand.txt
new file mode 100644
index 0000000..b7adddf
--- /dev/null
+++ b/tests/after_200/Round 023/PlayerCommand.txt
@@ -0,0 +1 @@
+5,4,2 \ No newline at end of file
diff --git a/tests/after_113/Round 000/OpponentCommand.txt b/tests/after_200/Round 024/OpponentCommand.txt
index 94bee18..94bee18 100644
--- a/tests/after_113/Round 000/OpponentCommand.txt
+++ b/tests/after_200/Round 024/OpponentCommand.txt
diff --git a/tests/after_113/Round 020/PlayerCommand.txt b/tests/after_200/Round 024/PlayerCommand.txt
index 3dee0c6..3dee0c6 100644
--- a/tests/after_113/Round 020/PlayerCommand.txt
+++ b/tests/after_200/Round 024/PlayerCommand.txt
diff --git a/tests/after_200/Round 025/OpponentCommand.txt b/tests/after_200/Round 025/OpponentCommand.txt
new file mode 100644
index 0000000..cb47d55
--- /dev/null
+++ b/tests/after_200/Round 025/OpponentCommand.txt
@@ -0,0 +1 @@
+0,3,1 \ No newline at end of file
diff --git a/tests/after_200/Round 025/PlayerCommand.txt b/tests/after_200/Round 025/PlayerCommand.txt
new file mode 100644
index 0000000..ad5a4bc
--- /dev/null
+++ b/tests/after_200/Round 025/PlayerCommand.txt
@@ -0,0 +1 @@
+3,4,2 \ No newline at end of file
diff --git a/tests/after_200/Round 026/OpponentCommand.txt b/tests/after_200/Round 026/OpponentCommand.txt
new file mode 100644
index 0000000..a030ed4
--- /dev/null
+++ b/tests/after_200/Round 026/OpponentCommand.txt
@@ -0,0 +1 @@
+6,4,1 \ No newline at end of file
diff --git a/tests/after_200/Round 026/PlayerCommand.txt b/tests/after_200/Round 026/PlayerCommand.txt
new file mode 100644
index 0000000..cb47d55
--- /dev/null
+++ b/tests/after_200/Round 026/PlayerCommand.txt
@@ -0,0 +1 @@
+0,3,1 \ No newline at end of file
diff --git a/tests/after_200/Round 027/OpponentCommand.txt b/tests/after_200/Round 027/OpponentCommand.txt
new file mode 100644
index 0000000..734a249
--- /dev/null
+++ b/tests/after_200/Round 027/OpponentCommand.txt
@@ -0,0 +1 @@
+7,4,2 \ No newline at end of file
diff --git a/tests/after_200/Round 027/PlayerCommand.txt b/tests/after_200/Round 027/PlayerCommand.txt
new file mode 100644
index 0000000..5ee21e6
--- /dev/null
+++ b/tests/after_200/Round 027/PlayerCommand.txt
@@ -0,0 +1 @@
+4,4,1 \ No newline at end of file
diff --git a/tests/after_200/Round 028/OpponentCommand.txt b/tests/after_200/Round 028/OpponentCommand.txt
new file mode 100644
index 0000000..6643b0d
--- /dev/null
+++ b/tests/after_200/Round 028/OpponentCommand.txt
@@ -0,0 +1 @@
+5,4,1 \ No newline at end of file
diff --git a/tests/after_200/Round 028/PlayerCommand.txt b/tests/after_200/Round 028/PlayerCommand.txt
new file mode 100644
index 0000000..a01c7f4
--- /dev/null
+++ b/tests/after_200/Round 028/PlayerCommand.txt
@@ -0,0 +1 @@
+7,4,1 \ No newline at end of file
diff --git a/tests/after_113/Round 033/OpponentCommand.txt b/tests/after_200/Round 029/OpponentCommand.txt
index 7f7238b..7f7238b 100644
--- a/tests/after_113/Round 033/OpponentCommand.txt
+++ b/tests/after_200/Round 029/OpponentCommand.txt
diff --git a/tests/after_200/Round 029/PlayerCommand.txt b/tests/after_200/Round 029/PlayerCommand.txt
new file mode 100644
index 0000000..b7adddf
--- /dev/null
+++ b/tests/after_200/Round 029/PlayerCommand.txt
@@ -0,0 +1 @@
+5,4,2 \ No newline at end of file
diff --git a/tests/after_200/Round 030/OpponentCommand.txt b/tests/after_200/Round 030/OpponentCommand.txt
new file mode 100644
index 0000000..17d7db2
--- /dev/null
+++ b/tests/after_200/Round 030/OpponentCommand.txt
@@ -0,0 +1 @@
+5,3,2 \ No newline at end of file
diff --git a/tests/after_200/Round 030/PlayerCommand.txt b/tests/after_200/Round 030/PlayerCommand.txt
new file mode 100644
index 0000000..a7503e5
--- /dev/null
+++ b/tests/after_200/Round 030/PlayerCommand.txt
@@ -0,0 +1 @@
+7,3,1 \ No newline at end of file
diff --git a/tests/after_113/Round 007/PlayerCommand.txt b/tests/after_200/Round 031/OpponentCommand.txt
index f1d02f4..f1d02f4 100644
--- a/tests/after_113/Round 007/PlayerCommand.txt
+++ b/tests/after_200/Round 031/OpponentCommand.txt
diff --git a/tests/after_113/Round 066/PlayerCommand.txt b/tests/after_200/Round 031/PlayerCommand.txt
index e638283..e638283 100644
--- a/tests/after_113/Round 066/PlayerCommand.txt
+++ b/tests/after_200/Round 031/PlayerCommand.txt
diff --git a/tests/after_200/Round 032/OpponentCommand.txt b/tests/after_200/Round 032/OpponentCommand.txt
new file mode 100644
index 0000000..a030ed4
--- /dev/null
+++ b/tests/after_200/Round 032/OpponentCommand.txt
@@ -0,0 +1 @@
+6,4,1 \ No newline at end of file
diff --git a/tests/after_113/Round 047/OpponentCommand.txt b/tests/after_200/Round 032/PlayerCommand.txt
index 7f7238b..7f7238b 100644
--- a/tests/after_113/Round 047/OpponentCommand.txt
+++ b/tests/after_200/Round 032/PlayerCommand.txt
diff --git a/tests/after_200/Round 033/OpponentCommand.txt b/tests/after_200/Round 033/OpponentCommand.txt
new file mode 100644
index 0000000..bb03eca
--- /dev/null
+++ b/tests/after_200/Round 033/OpponentCommand.txt
@@ -0,0 +1 @@
+5,3,1 \ No newline at end of file
diff --git a/tests/after_200/Round 033/PlayerCommand.txt b/tests/after_200/Round 033/PlayerCommand.txt
new file mode 100644
index 0000000..a030ed4
--- /dev/null
+++ b/tests/after_200/Round 033/PlayerCommand.txt
@@ -0,0 +1 @@
+6,4,1 \ No newline at end of file
diff --git a/tests/after_200/Round 034/OpponentCommand.txt b/tests/after_200/Round 034/OpponentCommand.txt
new file mode 100644
index 0000000..3fde4e2
--- /dev/null
+++ b/tests/after_200/Round 034/OpponentCommand.txt
@@ -0,0 +1 @@
+1,2,3 \ No newline at end of file
diff --git a/tests/after_113/Round 029/PlayerCommand.txt b/tests/after_200/Round 034/PlayerCommand.txt
index 3177984..3177984 100644
--- a/tests/after_113/Round 029/PlayerCommand.txt
+++ b/tests/after_200/Round 034/PlayerCommand.txt
diff --git a/tests/after_200/Round 035/OpponentCommand.txt b/tests/after_200/Round 035/OpponentCommand.txt
new file mode 100644
index 0000000..3ca9676
--- /dev/null
+++ b/tests/after_200/Round 035/OpponentCommand.txt
@@ -0,0 +1 @@
+7,3,0 \ No newline at end of file
diff --git a/tests/after_200/Round 035/PlayerCommand.txt b/tests/after_200/Round 035/PlayerCommand.txt
new file mode 100644
index 0000000..b0f2a85
--- /dev/null
+++ b/tests/after_200/Round 035/PlayerCommand.txt
@@ -0,0 +1 @@
+6,4,2 \ No newline at end of file
diff --git a/tests/after_200/Round 036/OpponentCommand.txt b/tests/after_200/Round 036/OpponentCommand.txt
new file mode 100644
index 0000000..3177984
--- /dev/null
+++ b/tests/after_200/Round 036/OpponentCommand.txt
@@ -0,0 +1 @@
+2,3,1 \ No newline at end of file
diff --git a/tests/after_113/Round 048/OpponentCommand.txt b/tests/after_200/Round 036/PlayerCommand.txt
index 61f66b5..61f66b5 100644
--- a/tests/after_113/Round 048/OpponentCommand.txt
+++ b/tests/after_200/Round 036/PlayerCommand.txt
diff --git a/tests/after_200/Round 037/OpponentCommand.txt b/tests/after_200/Round 037/OpponentCommand.txt
new file mode 100644
index 0000000..4a8cf07
--- /dev/null
+++ b/tests/after_200/Round 037/OpponentCommand.txt
@@ -0,0 +1 @@
+4,0,1 \ No newline at end of file
diff --git a/tests/after_113/Round 045/OpponentCommand.txt b/tests/after_200/Round 037/PlayerCommand.txt
index 1571d81..1571d81 100644
--- a/tests/after_113/Round 045/OpponentCommand.txt
+++ b/tests/after_200/Round 037/PlayerCommand.txt
diff --git a/tests/after_200/Round 038/OpponentCommand.txt b/tests/after_200/Round 038/OpponentCommand.txt
new file mode 100644
index 0000000..72ca43d
--- /dev/null
+++ b/tests/after_200/Round 038/OpponentCommand.txt
@@ -0,0 +1 @@
+0,5,2 \ No newline at end of file
diff --git a/tests/after_200/Round 038/PlayerCommand.txt b/tests/after_200/Round 038/PlayerCommand.txt
new file mode 100644
index 0000000..ddc7f56
--- /dev/null
+++ b/tests/after_200/Round 038/PlayerCommand.txt
@@ -0,0 +1 @@
+7,5,1 \ No newline at end of file
diff --git a/tests/after_113/Round 065/PlayerCommand.txt b/tests/after_200/Round 039/OpponentCommand.txt
index b87efa8..b87efa8 100644
--- a/tests/after_113/Round 065/PlayerCommand.txt
+++ b/tests/after_200/Round 039/OpponentCommand.txt
diff --git a/tests/after_200/Round 039/PlayerCommand.txt b/tests/after_200/Round 039/PlayerCommand.txt
new file mode 100644
index 0000000..16ddcd7
--- /dev/null
+++ b/tests/after_200/Round 039/PlayerCommand.txt
@@ -0,0 +1 @@
+7,0,1 \ No newline at end of file
diff --git a/tests/after_113/Round 056/OpponentCommand.txt b/tests/after_200/Round 040/OpponentCommand.txt
index d17d619..d17d619 100644
--- a/tests/after_113/Round 056/OpponentCommand.txt
+++ b/tests/after_200/Round 040/OpponentCommand.txt
diff --git a/tests/after_113/Round 053/PlayerCommand.txt b/tests/after_200/Round 040/PlayerCommand.txt
index a81a341..a81a341 100644
--- a/tests/after_113/Round 053/PlayerCommand.txt
+++ b/tests/after_200/Round 040/PlayerCommand.txt
diff --git a/tests/after_200/Round 041/OpponentCommand.txt b/tests/after_200/Round 041/OpponentCommand.txt
new file mode 100644
index 0000000..ddc7f56
--- /dev/null
+++ b/tests/after_200/Round 041/OpponentCommand.txt
@@ -0,0 +1 @@
+7,5,1 \ No newline at end of file
diff --git a/tests/after_200/Round 041/PlayerCommand.txt b/tests/after_200/Round 041/PlayerCommand.txt
new file mode 100644
index 0000000..3ab3f32
--- /dev/null
+++ b/tests/after_200/Round 041/PlayerCommand.txt
@@ -0,0 +1 @@
+5,0,1 \ No newline at end of file
diff --git a/tests/after_200/Round 042/OpponentCommand.txt b/tests/after_200/Round 042/OpponentCommand.txt
new file mode 100644
index 0000000..d17d619
--- /dev/null
+++ b/tests/after_200/Round 042/OpponentCommand.txt
@@ -0,0 +1 @@
+5,0,2 \ No newline at end of file
diff --git a/tests/after_200/Round 042/PlayerCommand.txt b/tests/after_200/Round 042/PlayerCommand.txt
new file mode 100644
index 0000000..87d322f
--- /dev/null
+++ b/tests/after_200/Round 042/PlayerCommand.txt
@@ -0,0 +1 @@
+3,0,2 \ No newline at end of file
diff --git a/tests/after_200/Round 043/OpponentCommand.txt b/tests/after_200/Round 043/OpponentCommand.txt
new file mode 100644
index 0000000..67f6e86
--- /dev/null
+++ b/tests/after_200/Round 043/OpponentCommand.txt
@@ -0,0 +1 @@
+7,3,2 \ No newline at end of file
diff --git a/tests/after_200/Round 043/PlayerCommand.txt b/tests/after_200/Round 043/PlayerCommand.txt
new file mode 100644
index 0000000..3d765f0
--- /dev/null
+++ b/tests/after_200/Round 043/PlayerCommand.txt
@@ -0,0 +1 @@
+5,5,1 \ No newline at end of file
diff --git a/tests/after_200/Round 044/OpponentCommand.txt b/tests/after_200/Round 044/OpponentCommand.txt
new file mode 100644
index 0000000..6c57709
--- /dev/null
+++ b/tests/after_200/Round 044/OpponentCommand.txt
@@ -0,0 +1 @@
+1,7,2 \ No newline at end of file
diff --git a/tests/after_200/Round 044/PlayerCommand.txt b/tests/after_200/Round 044/PlayerCommand.txt
new file mode 100644
index 0000000..3dee0c6
--- /dev/null
+++ b/tests/after_200/Round 044/PlayerCommand.txt
@@ -0,0 +1 @@
+6,3,1 \ No newline at end of file
diff --git a/tests/after_200/Round 045/OpponentCommand.txt b/tests/after_200/Round 045/OpponentCommand.txt
new file mode 100644
index 0000000..93ec9b2
--- /dev/null
+++ b/tests/after_200/Round 045/OpponentCommand.txt
@@ -0,0 +1 @@
+6,5,1 \ No newline at end of file
diff --git a/tests/after_113/Round 028/OpponentCommand.txt b/tests/after_200/Round 045/PlayerCommand.txt
index 9b5a49a..9b5a49a 100644
--- a/tests/after_113/Round 028/OpponentCommand.txt
+++ b/tests/after_200/Round 045/PlayerCommand.txt
diff --git a/tests/after_200/Round 046/OpponentCommand.txt b/tests/after_200/Round 046/OpponentCommand.txt
new file mode 100644
index 0000000..67f6e86
--- /dev/null
+++ b/tests/after_200/Round 046/OpponentCommand.txt
@@ -0,0 +1 @@
+7,3,2 \ No newline at end of file
diff --git a/tests/after_200/Round 046/PlayerCommand.txt b/tests/after_200/Round 046/PlayerCommand.txt
new file mode 100644
index 0000000..93ec9b2
--- /dev/null
+++ b/tests/after_200/Round 046/PlayerCommand.txt
@@ -0,0 +1 @@
+6,5,1 \ No newline at end of file
diff --git a/tests/after_200/Round 047/OpponentCommand.txt b/tests/after_200/Round 047/OpponentCommand.txt
new file mode 100644
index 0000000..d17d619
--- /dev/null
+++ b/tests/after_200/Round 047/OpponentCommand.txt
@@ -0,0 +1 @@
+5,0,2 \ No newline at end of file
diff --git a/tests/after_200/Round 047/PlayerCommand.txt b/tests/after_200/Round 047/PlayerCommand.txt
new file mode 100644
index 0000000..16ddcd7
--- /dev/null
+++ b/tests/after_200/Round 047/PlayerCommand.txt
@@ -0,0 +1 @@
+7,0,1 \ No newline at end of file
diff --git a/tests/after_200/Round 048/OpponentCommand.txt b/tests/after_200/Round 048/OpponentCommand.txt
new file mode 100644
index 0000000..bb03eca
--- /dev/null
+++ b/tests/after_200/Round 048/OpponentCommand.txt
@@ -0,0 +1 @@
+5,3,1 \ No newline at end of file
diff --git a/tests/after_200/Round 048/PlayerCommand.txt b/tests/after_200/Round 048/PlayerCommand.txt
new file mode 100644
index 0000000..addc906
--- /dev/null
+++ b/tests/after_200/Round 048/PlayerCommand.txt
@@ -0,0 +1 @@
+4,3,1 \ No newline at end of file
diff --git a/tests/after_200/Round 049/OpponentCommand.txt b/tests/after_200/Round 049/OpponentCommand.txt
new file mode 100644
index 0000000..8e935c8
--- /dev/null
+++ b/tests/after_200/Round 049/OpponentCommand.txt
@@ -0,0 +1 @@
+6,3,2 \ No newline at end of file
diff --git a/tests/after_200/Round 049/PlayerCommand.txt b/tests/after_200/Round 049/PlayerCommand.txt
new file mode 100644
index 0000000..67f6e86
--- /dev/null
+++ b/tests/after_200/Round 049/PlayerCommand.txt
@@ -0,0 +1 @@
+7,3,2 \ No newline at end of file
diff --git a/tests/after_200/Round 050/OpponentCommand.txt b/tests/after_200/Round 050/OpponentCommand.txt
new file mode 100644
index 0000000..4dd67d5
--- /dev/null
+++ b/tests/after_200/Round 050/OpponentCommand.txt
@@ -0,0 +1 @@
+1,0,2 \ No newline at end of file
diff --git a/tests/after_113/Round 043/OpponentCommand.txt b/tests/after_200/Round 050/PlayerCommand.txt
index 1818e31..1818e31 100644
--- a/tests/after_113/Round 043/OpponentCommand.txt
+++ b/tests/after_200/Round 050/PlayerCommand.txt
diff --git a/tests/after_200/Round 051/OpponentCommand.txt b/tests/after_200/Round 051/OpponentCommand.txt
new file mode 100644
index 0000000..c602c71
--- /dev/null
+++ b/tests/after_200/Round 051/OpponentCommand.txt
@@ -0,0 +1 @@
+2,0,0 \ No newline at end of file
diff --git a/tests/after_113/Round 035/PlayerCommand.txt b/tests/after_200/Round 051/PlayerCommand.txt
index ea179d3..ea179d3 100644
--- a/tests/after_113/Round 035/PlayerCommand.txt
+++ b/tests/after_200/Round 051/PlayerCommand.txt
diff --git a/tests/after_200/Round 052/OpponentCommand.txt b/tests/after_200/Round 052/OpponentCommand.txt
new file mode 100644
index 0000000..8e935c8
--- /dev/null
+++ b/tests/after_200/Round 052/OpponentCommand.txt
@@ -0,0 +1 @@
+6,3,2 \ No newline at end of file
diff --git a/tests/after_200/Round 052/PlayerCommand.txt b/tests/after_200/Round 052/PlayerCommand.txt
new file mode 100644
index 0000000..0d2a91c
--- /dev/null
+++ b/tests/after_200/Round 052/PlayerCommand.txt
@@ -0,0 +1 @@
+3,4,3 \ No newline at end of file
diff --git a/tests/after_200/Round 053/OpponentCommand.txt b/tests/after_200/Round 053/OpponentCommand.txt
new file mode 100644
index 0000000..704840c
--- /dev/null
+++ b/tests/after_200/Round 053/OpponentCommand.txt
@@ -0,0 +1 @@
+3,3,3 \ No newline at end of file
diff --git a/tests/after_200/Round 053/PlayerCommand.txt b/tests/after_200/Round 053/PlayerCommand.txt
new file mode 100644
index 0000000..6643b0d
--- /dev/null
+++ b/tests/after_200/Round 053/PlayerCommand.txt
@@ -0,0 +1 @@
+5,4,1 \ No newline at end of file
diff --git a/tests/after_200/Round 054/OpponentCommand.txt b/tests/after_200/Round 054/OpponentCommand.txt
new file mode 100644
index 0000000..ebfc684
--- /dev/null
+++ b/tests/after_200/Round 054/OpponentCommand.txt
@@ -0,0 +1 @@
+0,4,0 \ No newline at end of file
diff --git a/tests/after_113/Round 048/PlayerCommand.txt b/tests/after_200/Round 054/PlayerCommand.txt
index c41707e..c41707e 100644
--- a/tests/after_113/Round 048/PlayerCommand.txt
+++ b/tests/after_200/Round 054/PlayerCommand.txt
diff --git a/tests/after_113/Round 050/OpponentCommand.txt b/tests/after_200/Round 055/OpponentCommand.txt
index 5ff9de4..5ff9de4 100644
--- a/tests/after_113/Round 050/OpponentCommand.txt
+++ b/tests/after_200/Round 055/OpponentCommand.txt
diff --git a/tests/after_113/Round 056/PlayerCommand.txt b/tests/after_200/Round 055/PlayerCommand.txt
index 433ff46..433ff46 100644
--- a/tests/after_113/Round 056/PlayerCommand.txt
+++ b/tests/after_200/Round 055/PlayerCommand.txt
diff --git a/tests/after_200/Round 056/OpponentCommand.txt b/tests/after_200/Round 056/OpponentCommand.txt
new file mode 100644
index 0000000..c7d9109
--- /dev/null
+++ b/tests/after_200/Round 056/OpponentCommand.txt
@@ -0,0 +1 @@
+5,2,2 \ No newline at end of file
diff --git a/tests/after_200/Round 056/PlayerCommand.txt b/tests/after_200/Round 056/PlayerCommand.txt
new file mode 100644
index 0000000..9c6b08d
--- /dev/null
+++ b/tests/after_200/Round 056/PlayerCommand.txt
@@ -0,0 +1 @@
+3,6,3 \ No newline at end of file
diff --git a/tests/after_200/Round 057/OpponentCommand.txt b/tests/after_200/Round 057/OpponentCommand.txt
new file mode 100644
index 0000000..4a9590d
--- /dev/null
+++ b/tests/after_200/Round 057/OpponentCommand.txt
@@ -0,0 +1 @@
+0,7,2 \ No newline at end of file
diff --git a/tests/after_200/Round 057/PlayerCommand.txt b/tests/after_200/Round 057/PlayerCommand.txt
new file mode 100644
index 0000000..885148a
--- /dev/null
+++ b/tests/after_200/Round 057/PlayerCommand.txt
@@ -0,0 +1 @@
+6,4,3 \ No newline at end of file
diff --git a/tests/after_113/Round 000/PlayerCommand.txt b/tests/after_200/Round 058/OpponentCommand.txt
index 94bee18..94bee18 100644
--- a/tests/after_113/Round 000/PlayerCommand.txt
+++ b/tests/after_200/Round 058/OpponentCommand.txt
diff --git a/tests/after_113/Round 037/OpponentCommand.txt b/tests/after_200/Round 058/PlayerCommand.txt
index e09f712..e09f712 100644
--- a/tests/after_113/Round 037/OpponentCommand.txt
+++ b/tests/after_200/Round 058/PlayerCommand.txt
diff --git a/tests/after_200/Round 059/OpponentCommand.txt b/tests/after_200/Round 059/OpponentCommand.txt
new file mode 100644
index 0000000..c163991
--- /dev/null
+++ b/tests/after_200/Round 059/OpponentCommand.txt
@@ -0,0 +1 @@
+0,7,3 \ No newline at end of file
diff --git a/tests/after_200/Round 059/PlayerCommand.txt b/tests/after_200/Round 059/PlayerCommand.txt
new file mode 100644
index 0000000..c163991
--- /dev/null
+++ b/tests/after_200/Round 059/PlayerCommand.txt
@@ -0,0 +1 @@
+0,7,3 \ No newline at end of file
diff --git a/tests/after_200/Round 060/OpponentCommand.txt b/tests/after_200/Round 060/OpponentCommand.txt
new file mode 100644
index 0000000..f069b31
--- /dev/null
+++ b/tests/after_200/Round 060/OpponentCommand.txt
@@ -0,0 +1 @@
+0,6,3 \ No newline at end of file
diff --git a/tests/after_200/Round 060/PlayerCommand.txt b/tests/after_200/Round 060/PlayerCommand.txt
new file mode 100644
index 0000000..5cbd497
--- /dev/null
+++ b/tests/after_200/Round 060/PlayerCommand.txt
@@ -0,0 +1 @@
+7,7,3 \ No newline at end of file
diff --git a/tests/after_200/Round 061/OpponentCommand.txt b/tests/after_200/Round 061/OpponentCommand.txt
new file mode 100644
index 0000000..80a0b9a
--- /dev/null
+++ b/tests/after_200/Round 061/OpponentCommand.txt
@@ -0,0 +1 @@
+0,4,3 \ No newline at end of file
diff --git a/tests/after_200/Round 061/PlayerCommand.txt b/tests/after_200/Round 061/PlayerCommand.txt
new file mode 100644
index 0000000..589fe67
--- /dev/null
+++ b/tests/after_200/Round 061/PlayerCommand.txt
@@ -0,0 +1 @@
+6,7,3 \ No newline at end of file
diff --git a/tests/after_200/Round 062/OpponentCommand.txt b/tests/after_200/Round 062/OpponentCommand.txt
new file mode 100644
index 0000000..70a041a
--- /dev/null
+++ b/tests/after_200/Round 062/OpponentCommand.txt
@@ -0,0 +1 @@
+5,3,3 \ No newline at end of file
diff --git a/tests/after_200/Round 062/PlayerCommand.txt b/tests/after_200/Round 062/PlayerCommand.txt
new file mode 100644
index 0000000..66cb3b1
--- /dev/null
+++ b/tests/after_200/Round 062/PlayerCommand.txt
@@ -0,0 +1 @@
+5,7,3 \ No newline at end of file
diff --git a/tests/after_200/Round 063/OpponentCommand.txt b/tests/after_200/Round 063/OpponentCommand.txt
new file mode 100644
index 0000000..cb0f20e
--- /dev/null
+++ b/tests/after_200/Round 063/OpponentCommand.txt
@@ -0,0 +1 @@
+4,3,3 \ No newline at end of file
diff --git a/tests/after_200/Round 063/PlayerCommand.txt b/tests/after_200/Round 063/PlayerCommand.txt
new file mode 100644
index 0000000..e7cde1b
--- /dev/null
+++ b/tests/after_200/Round 063/PlayerCommand.txt
@@ -0,0 +1 @@
+7,6,3 \ No newline at end of file
diff --git a/tests/after_200/Round 064/OpponentCommand.txt b/tests/after_200/Round 064/OpponentCommand.txt
new file mode 100644
index 0000000..8a8e05d
--- /dev/null
+++ b/tests/after_200/Round 064/OpponentCommand.txt
@@ -0,0 +1 @@
+2,3,3 \ No newline at end of file
diff --git a/tests/after_200/Round 064/PlayerCommand.txt b/tests/after_200/Round 064/PlayerCommand.txt
new file mode 100644
index 0000000..4e89ade
--- /dev/null
+++ b/tests/after_200/Round 064/PlayerCommand.txt
@@ -0,0 +1 @@
+5,5,3 \ No newline at end of file
diff --git a/tests/bigstate.json b/tests/bigstate.json
index dd15670..2ad555f 100644
--- a/tests/bigstate.json
+++ b/tests/bigstate.json
@@ -1 +1,1498 @@
-{"gameDetails":{"round":0,"mapWidth":20,"mapHeight":10,"roundIncomeEnergy":5,"buildingPrices":{"ENERGY":20,"ATTACK":30,"DEFENSE":30},"buildingsStats":{"ENERGY":{"health":5,"constructionTime":2,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownPeriod":0,"energyGeneratedPerTurn":3,"destroyMultiplier":1,"constructionScore":1},"ATTACK":{"health":5,"constructionTime":2,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownPeriod":3,"energyGeneratedPerTurn":0,"destroyMultiplier":1,"constructionScore":1},"DEFENSE":{"health":20,"constructionTime":4,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownPeriod":0,"energyGeneratedPerTurn":0,"destroyMultiplier":1,"constructionScore":1}}},"players":[{"playerType":"A","energy":20,"health":100,"hitsTaken":0,"score":0},{"playerType":"B","energy":20,"health":100,"hitsTaken":0,"score":0}],"gameMap":[[{"x":0,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":6,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":8,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":9,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":10,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":11,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":12,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":13,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":14,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":15,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":16,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":17,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":18,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":19,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":6,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":7,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":8,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":9,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":10,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":11,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":12,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":13,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":14,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":15,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":16,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":17,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":18,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":19,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":5,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":6,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":7,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":8,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":9,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":10,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":11,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":12,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":13,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":14,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":15,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":16,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":17,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":18,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":19,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":5,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":8,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":9,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":10,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":11,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":12,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":13,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":14,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":15,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":16,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":17,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":18,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":19,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":4,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":4,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":4,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":4,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":4,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":5,"y":4,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":6,"y":4,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":7,"y":4,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":8,"y":4,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":9,"y":4,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":10,"y":4,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":11,"y":4,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":12,"y":4,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":13,"y":4,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":14,"y":4,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":15,"y":4,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":16,"y":4,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":17,"y":4,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":18,"y":4,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":19,"y":4,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":5,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":5,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":5,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":5,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":5,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":5,"y":5,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":6,"y":5,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":7,"y":5,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":8,"y":5,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":9,"y":5,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":10,"y":5,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":11,"y":5,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":12,"y":5,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":13,"y":5,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":14,"y":5,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":15,"y":5,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":16,"y":5,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":17,"y":5,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":18,"y":5,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":19,"y":5,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":6,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":6,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":6,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":6,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":6,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":5,"y":6,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":6,"y":6,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":7,"y":6,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":8,"y":6,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":9,"y":6,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":10,"y":6,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":11,"y":6,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":12,"y":6,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":13,"y":6,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":14,"y":6,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":15,"y":6,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":16,"y":6,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":17,"y":6,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":18,"y":6,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":19,"y":6,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":7,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":7,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":7,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":7,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":7,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":5,"y":7,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":6,"y":7,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":7,"y":7,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":8,"y":7,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":9,"y":7,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":10,"y":7,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":11,"y":7,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":12,"y":7,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":13,"y":7,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":14,"y":7,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":15,"y":7,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":16,"y":7,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":17,"y":7,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":18,"y":7,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":19,"y":7,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":8,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":8,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":8,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":8,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":8,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":5,"y":8,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":6,"y":8,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":7,"y":8,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":8,"y":8,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":9,"y":8,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":10,"y":8,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":11,"y":8,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":12,"y":8,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":13,"y":8,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":14,"y":8,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":15,"y":8,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":16,"y":8,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":17,"y":8,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":18,"y":8,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":19,"y":8,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":9,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":9,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":9,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":9,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":9,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":5,"y":9,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":6,"y":9,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":7,"y":9,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":8,"y":9,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":9,"y":9,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":10,"y":9,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":11,"y":9,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":12,"y":9,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":13,"y":9,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":14,"y":9,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":15,"y":9,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":16,"y":9,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":17,"y":9,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":18,"y":9,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":19,"y":9,"buildings":[],"missiles":[],"cellOwner":"B"}]]}
+{
+ "gameDetails": {
+ "round": 0,
+ "mapWidth": 20,
+ "mapHeight": 10,
+ "roundIncomeEnergy": 5,
+ "buildingPrices": {
+ "TESLA": 300,
+ "ENERGY": 20,
+ "ATTACK": 30,
+ "DEFENSE": 30
+ },
+ "buildingsStats": {
+ "TESLA": {
+ "health": 5,
+ "constructionTime": 11,
+ "price": 300,
+ "weaponDamage": 20,
+ "weaponSpeed": 0,
+ "weaponCooldownPeriod": 10,
+ "energyGeneratedPerTurn": 0,
+ "destroyMultiplier": 1,
+ "constructionScore": 1
+ },
+ "ENERGY": {
+ "health": 5,
+ "constructionTime": 2,
+ "price": 20,
+ "weaponDamage": 0,
+ "weaponSpeed": 0,
+ "weaponCooldownPeriod": 0,
+ "energyGeneratedPerTurn": 3,
+ "destroyMultiplier": 1,
+ "constructionScore": 1
+ },
+ "ATTACK": {
+ "health": 5,
+ "constructionTime": 2,
+ "price": 30,
+ "weaponDamage": 5,
+ "weaponSpeed": 1,
+ "weaponCooldownPeriod": 3,
+ "energyGeneratedPerTurn": 0,
+ "destroyMultiplier": 1,
+ "constructionScore": 1
+ },
+ "DEFENSE": {
+ "health": 20,
+ "constructionTime": 4,
+ "price": 30,
+ "weaponDamage": 0,
+ "weaponSpeed": 0,
+ "weaponCooldownPeriod": 0,
+ "energyGeneratedPerTurn": 0,
+ "destroyMultiplier": 1,
+ "constructionScore": 1
+ }
+ }
+ },
+ "players": [
+ {
+ "playerType": "A",
+ "energy": 20,
+ "health": 100,
+ "hitsTaken": 0,
+ "score": 0
+ },
+ {
+ "playerType": "B",
+ "energy": 20,
+ "health": 100,
+ "hitsTaken": 0,
+ "score": 0
+ }
+ ],
+ "gameMap": [
+ [
+ {
+ "x": 0,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 5,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 6,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 7,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 8,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 9,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 10,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 11,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 12,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 13,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 14,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 15,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 16,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 17,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 18,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 19,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 5,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 6,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 7,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 8,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 9,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 10,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 11,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 12,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 13,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 14,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 15,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 16,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 17,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 18,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 19,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 5,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 6,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 7,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 8,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 9,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 10,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 11,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 12,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 13,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 14,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 15,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 16,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 17,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 18,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 19,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 5,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 6,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 7,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 8,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 9,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 10,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 11,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 12,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 13,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 14,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 15,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 16,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 17,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 18,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 19,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 5,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 6,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 7,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 8,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 9,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 10,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 11,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 12,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 13,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 14,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 15,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 16,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 17,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 18,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 19,
+ "y": 4,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 5,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 6,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 7,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 8,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 9,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 10,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 11,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 12,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 13,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 14,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 15,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 16,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 17,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 18,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 19,
+ "y": 5,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 5,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 6,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 7,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 8,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 9,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 10,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 11,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 12,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 13,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 14,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 15,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 16,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 17,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 18,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 19,
+ "y": 6,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 5,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 6,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 7,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 8,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 9,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 10,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 11,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 12,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 13,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 14,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 15,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 16,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 17,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 18,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 19,
+ "y": 7,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 5,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 6,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 7,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 8,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 9,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 10,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 11,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 12,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 13,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 14,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 15,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 16,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 17,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 18,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 19,
+ "y": 8,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 5,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 6,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 7,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 8,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 9,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 10,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 11,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 12,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 13,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 14,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 15,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 16,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 17,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 18,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 19,
+ "y": 9,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ]
+ ]
+}
diff --git a/tests/live-comparison.rs b/tests/live-comparison.rs
index 621c247..e063959 100644
--- a/tests/live-comparison.rs
+++ b/tests/live-comparison.rs
@@ -10,7 +10,7 @@ use std::io::prelude::*;
#[test]
fn it_successfully_simulates_replay() {
- test_from_replay("tests/after_113", 32);
+ test_from_replay("tests/after_200", 62);
}
fn test_from_replay(replay_folder: &str, length: usize) {
@@ -37,12 +37,14 @@ fn read_player_command(filename: &str) -> Command {
}
else {
let mut components = content.split(',');
- Command::Build(
- Point::new(components.next().unwrap().trim().parse().unwrap(),
- components.next().unwrap().trim().parse().unwrap()
- ),
- BuildingType::from_u8(components.next().unwrap().trim().parse().unwrap()).unwrap()
- )
+ let point = Point::new(components.next().unwrap().trim().parse().unwrap(),
+ components.next().unwrap().trim().parse().unwrap());
+ let action_type = components.next().unwrap().trim().parse().unwrap();
+ if action_type == 3 {
+ Command::Deconstruct(point)
+ } else {
+ Command::Build(point, BuildingType::from_u8(action_type).unwrap())
+ }
}
}
diff --git a/tests/monte-carlo-test.rs b/tests/monte-carlo-test.rs
new file mode 100644
index 0000000..479b36d
--- /dev/null
+++ b/tests/monte-carlo-test.rs
@@ -0,0 +1,19 @@
+extern crate zombot;
+extern crate time;
+use time::{PreciseTime, Duration};
+
+use zombot::*;
+
+const STATE_PATH: &str = "tests/state0.json";
+
+// there are assertions in the game engine, run when it's in debug mode
+#[test]
+fn it_does_a_normal_turn_successfully() {
+ let start_time = PreciseTime::now();
+ let (settings, state) = match input::json::read_state_from_file(STATE_PATH) {
+ Ok(ok) => ok,
+ Err(error) => panic!("Error while parsing JSON file: {}", error)
+ };
+ let max_time = Duration::milliseconds(1950);
+ strategy::monte_carlo::choose_move(&settings, &state, &start_time, max_time);
+}
diff --git a/tests/state0.json b/tests/state0.json
index fa41459..ef5cd39 100644
--- a/tests/state0.json
+++ b/tests/state0.json
@@ -1 +1,310 @@
-{"gameDetails":{"round":0,"mapWidth":8,"mapHeight":4,"roundIncomeEnergy":5,"buildingPrices":{"ENERGY":20,"ATTACK":30,"DEFENSE":30},"buildingsStats":{"ENERGY":{"health":5,"constructionTime":2,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownPeriod":0,"energyGeneratedPerTurn":3,"destroyMultiplier":1,"constructionScore":1},"ATTACK":{"health":5,"constructionTime":2,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownPeriod":3,"energyGeneratedPerTurn":0,"destroyMultiplier":1,"constructionScore":1},"DEFENSE":{"health":20,"constructionTime":4,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownPeriod":0,"energyGeneratedPerTurn":0,"destroyMultiplier":1,"constructionScore":1}}},"players":[{"playerType":"A","energy":20,"health":100,"hitsTaken":0,"score":0},{"playerType":"B","energy":20,"health":100,"hitsTaken":0,"score":0}],"gameMap":[[{"x":0,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]}
+{
+ "gameDetails": {
+ "round": 0,
+ "mapWidth": 8,
+ "mapHeight": 4,
+ "roundIncomeEnergy": 5,
+ "buildingPrices": {
+ "TESLA": 300,
+ "ENERGY": 20,
+ "ATTACK": 30,
+ "DEFENSE": 30
+ },
+ "buildingsStats": {
+ "TESLA": {
+ "health": 5,
+ "constructionTime": 11,
+ "price": 300,
+ "weaponDamage": 20,
+ "weaponSpeed": 0,
+ "weaponCooldownPeriod": 10,
+ "energyGeneratedPerTurn": 0,
+ "destroyMultiplier": 1,
+ "constructionScore": 1
+ },
+ "ENERGY": {
+ "health": 5,
+ "constructionTime": 2,
+ "price": 20,
+ "weaponDamage": 0,
+ "weaponSpeed": 0,
+ "weaponCooldownPeriod": 0,
+ "energyGeneratedPerTurn": 3,
+ "destroyMultiplier": 1,
+ "constructionScore": 1
+ },
+ "ATTACK": {
+ "health": 5,
+ "constructionTime": 2,
+ "price": 30,
+ "weaponDamage": 5,
+ "weaponSpeed": 1,
+ "weaponCooldownPeriod": 3,
+ "energyGeneratedPerTurn": 0,
+ "destroyMultiplier": 1,
+ "constructionScore": 1
+ },
+ "DEFENSE": {
+ "health": 20,
+ "constructionTime": 4,
+ "price": 30,
+ "weaponDamage": 0,
+ "weaponSpeed": 0,
+ "weaponCooldownPeriod": 0,
+ "energyGeneratedPerTurn": 0,
+ "destroyMultiplier": 1,
+ "constructionScore": 1
+ }
+ }
+ },
+ "players": [
+ {
+ "playerType": "A",
+ "energy": 20,
+ "health": 100,
+ "hitsTaken": 0,
+ "score": 0
+ },
+ {
+ "playerType": "B",
+ "energy": 20,
+ "health": 100,
+ "hitsTaken": 0,
+ "score": 0
+ }
+ ],
+ "gameMap": [
+ [
+ {
+ "x": 0,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 5,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 6,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 7,
+ "y": 0,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 5,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 6,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 7,
+ "y": 1,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 5,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 6,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 7,
+ "y": 2,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ],
+ [
+ {
+ "x": 0,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 1,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 2,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 3,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "A"
+ },
+ {
+ "x": 4,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 5,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 6,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ },
+ {
+ "x": 7,
+ "y": 3,
+ "buildings": [],
+ "missiles": [],
+ "cellOwner": "B"
+ }
+ ]
+ ]
+}