summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2018-05-15 23:14:32 +0200
committerJustin Worthe <justin@worthe-it.co.za>2018-05-15 23:14:32 +0200
commit0ebebeccd72ba76a2a9a9ad94c38feaed9b6ab1c (patch)
tree744e2c93bf925211286cf32e07b7bd74032e980e /tests
parent1ee2a8c0edf506e50587b6b5cfe90077c9f5d8ae (diff)
Added end to end tests, comparing against actual game engine
Diffstat (limited to 'tests')
-rw-r--r--tests/live-comparison.rs54
-rw-r--r--tests/state0.json1
-rw-r--r--tests/state1.json1
-rw-r--r--tests/state10.json1
-rw-r--r--tests/state11.json1
-rw-r--r--tests/state12.json1
-rw-r--r--tests/state13.json1
-rw-r--r--tests/state14.json1
-rw-r--r--tests/state15.json1
-rw-r--r--tests/state16.json1
-rw-r--r--tests/state17.json1
-rw-r--r--tests/state18.json1
-rw-r--r--tests/state19.json1
-rw-r--r--tests/state2.json1
-rw-r--r--tests/state20.json1
-rw-r--r--tests/state21.json1
-rw-r--r--tests/state22.json1
-rw-r--r--tests/state23.json1
-rw-r--r--tests/state24.json1
-rw-r--r--tests/state25.json1
-rw-r--r--tests/state26.json1
-rw-r--r--tests/state27.json1
-rw-r--r--tests/state28.json1
-rw-r--r--tests/state29.json1
-rw-r--r--tests/state3.json1
-rw-r--r--tests/state30.json1
-rw-r--r--tests/state4.json1
-rw-r--r--tests/state5.json1
-rw-r--r--tests/state6.json1
-rw-r--r--tests/state7.json1
-rw-r--r--tests/state8.json1
-rw-r--r--tests/state9.json1
32 files changed, 85 insertions, 0 deletions
diff --git a/tests/live-comparison.rs b/tests/live-comparison.rs
new file mode 100644
index 0000000..e090907
--- /dev/null
+++ b/tests/live-comparison.rs
@@ -0,0 +1,54 @@
+extern crate zombot;
+
+use zombot::json;
+use zombot::engine::command::{Command, BuildingType};
+use zombot::engine::geometry::Point;
+
+#[test]
+fn it_successfully_simulates_moves() {
+ let (settings, mut state) = json::read_state_from_file("tests/state0.json").expect("Failed to read state0.json");
+
+ let all_commands = [
+ (Command::Build(Point::new(3,2),BuildingType::Energy), Command::Nothing),
+ (Command::Nothing, Command::Nothing),
+ (Command::Nothing, Command::Build(Point::new(4,3),BuildingType::Energy)),
+ (Command::Build(Point::new(3,1),BuildingType::Energy), Command::Nothing),
+ (Command::Nothing, Command::Nothing),
+ (Command::Build(Point::new(3,0),BuildingType::Energy),Command::Build(Point::new(6,0),BuildingType::Energy)),
+ (Command::Nothing,Command::Nothing),
+ (Command::Build(Point::new(3,3),BuildingType::Energy),Command::Build(Point::new(7,1),BuildingType::Attack)),
+ (Command::Nothing,Command::Nothing),
+ (Command::Build(Point::new(2,3),BuildingType::Attack),Command::Nothing),
+
+ (Command::Build(Point::new(2,1),BuildingType::Energy),Command::Build(Point::new(5,3),BuildingType::Defence)),
+ (Command::Nothing,Command::Nothing),
+ (Command::Build(Point::new(1,0),BuildingType::Attack),Command::Nothing),
+ (Command::Nothing,Command::Build(Point::new(5,0),BuildingType::Defence)),
+ (Command::Build(Point::new(0,2),BuildingType::Attack),Command::Nothing),
+ (Command::Build(Point::new(3,1),BuildingType::Energy),Command::Nothing),
+ (Command::Nothing,Command::Nothing),
+ (Command::Build(Point::new(0,1),BuildingType::Attack),Command::Build(Point::new(7,2),BuildingType::Defence)),
+ (Command::Build(Point::new(2,1),BuildingType::Energy),Command::Nothing),
+ (Command::Nothing,Command::Nothing),
+
+ (Command::Build(Point::new(0,0),BuildingType::Attack),Command::Nothing),
+ (Command::Build(Point::new(0,3),BuildingType::Attack),Command::Build(Point::new(4,1),BuildingType::Defence)),
+ (Command::Nothing,Command::Nothing),
+ (Command::Build(Point::new(1,3),BuildingType::Attack),Command::Nothing),
+ (Command::Build(Point::new(3,1),BuildingType::Energy),Command::Nothing),
+ (Command::Nothing,Command::Build(Point::new(6,1),BuildingType::Defence)),
+ (Command::Build(Point::new(2,2),BuildingType::Energy),Command::Nothing),
+ (Command::Build(Point::new(1,2),BuildingType::Energy),Command::Nothing),
+ (Command::Build(Point::new(3,1),BuildingType::Energy),Command::Build(Point::new(7,0),BuildingType::Defence)),
+ (Command::Build(Point::new(2,1),BuildingType::Energy),Command::Nothing)
+ ];
+
+ for (i, &(player, opponent)) in all_commands.iter().enumerate() {
+ let file = format!("tests/state{}.json", i+1);
+ state.simulate_mut(&settings, player, opponent);
+ let (_, mut actual_state) = json::read_state_from_file(&file).unwrap();
+ state.sort();
+ actual_state.sort();
+ assert_eq!(state, actual_state, "\nFailed on state {}\n", i+1);
+ }
+}
diff --git a/tests/state0.json b/tests/state0.json
new file mode 100644
index 0000000..fa41459
--- /dev/null
+++ b/tests/state0.json
@@ -0,0 +1 @@
+{"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"}]]}
diff --git a/tests/state1.json b/tests/state1.json
new file mode 100644
index 0000000..164a6bd
--- /dev/null
+++ b/tests/state1.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":1,"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":5,"health":100,"hitsTaken":0,"score":6},{"playerType":"B","energy":25,"health":100,"hitsTaken":0,"score":5}],"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":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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"}]]}
diff --git a/tests/state10.json b/tests/state10.json
new file mode 100644
index 0000000..42c53c4
--- /dev/null
+++ b/tests/state10.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":10,"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":23,"health":100,"hitsTaken":0,"score":118},{"playerType":"B","energy":33,"health":100,"hitsTaken":0,"score":86}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":0,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":4,"y":3,"playerType":"B"}],"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"}]]} \ No newline at end of file
diff --git a/tests/state11.json b/tests/state11.json
new file mode 100644
index 0000000..bc3aa6a
--- /dev/null
+++ b/tests/state11.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":11,"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":141},{"playerType":"B","energy":14,"health":100,"hitsTaken":0,"score":98}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":4,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":20,"constructionTimeLeft":2,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state12.json b/tests/state12.json
new file mode 100644
index 0000000..b025cba
--- /dev/null
+++ b/tests/state12.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":12,"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":37,"health":100,"hitsTaken":0,"score":164},{"playerType":"B","energy":22,"health":100,"hitsTaken":0,"score":112}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":20,"constructionTimeLeft":1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state13.json b/tests/state13.json
new file mode 100644
index 0000000..4cc26c3
--- /dev/null
+++ b/tests/state13.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":13,"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":24,"health":100,"hitsTaken":0,"score":182},{"playerType":"B","energy":30,"health":100,"hitsTaken":0,"score":120}],"gameMap":[[{"x":0,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":0,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"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":[{"damage":5,"speed":1,"x":6,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":20,"constructionTimeLeft":0,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state14.json b/tests/state14.json
new file mode 100644
index 0000000..1a85e19
--- /dev/null
+++ b/tests/state14.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":14,"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":41,"health":100,"hitsTaken":0,"score":199},{"playerType":"B","energy":8,"health":100,"hitsTaken":0,"score":129}],"gameMap":[[{"x":0,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":20,"constructionTimeLeft":2,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"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":[{"damage":5,"speed":1,"x":5,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":20,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state15.json b/tests/state15.json
new file mode 100644
index 0000000..3eb21c5
--- /dev/null
+++ b/tests/state15.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":15,"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":28,"health":100,"hitsTaken":0,"score":227},{"playerType":"B","energy":16,"health":100,"hitsTaken":0,"score":137}],"gameMap":[[{"x":0,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":20,"constructionTimeLeft":1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":0,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":20,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state16.json b/tests/state16.json
new file mode 100644
index 0000000..d05993c
--- /dev/null
+++ b/tests/state16.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":16,"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":25,"health":100,"hitsTaken":0,"score":245},{"playerType":"B","energy":24,"health":100,"hitsTaken":0,"score":145}],"gameMap":[[{"x":0,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":0,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":20,"constructionTimeLeft":0,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":1,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":1,"y":2,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":3,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":20,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state17.json b/tests/state17.json
new file mode 100644
index 0000000..b4824ea
--- /dev/null
+++ b/tests/state17.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":17,"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":42,"health":100,"hitsTaken":0,"score":272},{"playerType":"B","energy":32,"health":100,"hitsTaken":0,"score":159}],"gameMap":[[{"x":0,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"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":[{"damage":5,"speed":1,"x":6,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":2,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state18.json b/tests/state18.json
new file mode 100644
index 0000000..c0d175c
--- /dev/null
+++ b/tests/state18.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":18,"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":29,"health":100,"hitsTaken":0,"score":295},{"playerType":"B","energy":10,"health":100,"hitsTaken":0,"score":168}],"gameMap":[[{"x":0,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":0,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":2,"playerType":"A"}],"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":[{"health":20,"constructionTimeLeft":2,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state19.json b/tests/state19.json
new file mode 100644
index 0000000..1e82db4
--- /dev/null
+++ b/tests/state19.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":19,"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":26,"health":100,"hitsTaken":0,"score":323},{"playerType":"B","energy":18,"health":100,"hitsTaken":0,"score":176}],"gameMap":[[{"x":0,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":1,"y":1,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":1,"buildings":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":2,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":2,"buildings":[{"health":20,"constructionTimeLeft":1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state2.json b/tests/state2.json
new file mode 100644
index 0000000..323ea8e
--- /dev/null
+++ b/tests/state2.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":2,"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":13,"health":100,"hitsTaken":0,"score":14},{"playerType":"B","energy":30,"health":100,"hitsTaken":0,"score":10}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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"}]]}
diff --git a/tests/state20.json b/tests/state20.json
new file mode 100644
index 0000000..9f306c2
--- /dev/null
+++ b/tests/state20.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":20,"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":43,"health":100,"hitsTaken":0,"score":345},{"playerType":"B","energy":26,"health":100,"hitsTaken":0,"score":190}],"gameMap":[[{"x":0,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":0,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":2,"y":1,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":1,"y":2,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":2,"playerType":"A"}],"cellOwner":"B"},{"x":6,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":2,"buildings":[{"health":20,"constructionTimeLeft":0,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":3,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state21.json b/tests/state21.json
new file mode 100644
index 0000000..e75a3cc
--- /dev/null
+++ b/tests/state21.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":21,"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":30,"health":100,"hitsTaken":0,"score":373},{"playerType":"B","energy":34,"health":100,"hitsTaken":0,"score":198}],"gameMap":[[{"x":0,"y":0,"buildings":[{"health":5,"constructionTimeLeft":0,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":3,"y":1,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":6,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":2,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"damage":5,"speed":1,"x":6,"y":2,"playerType":"A"}],"cellOwner":"B"},{"x":7,"y":2,"buildings":[{"health":20,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state22.json b/tests/state22.json
new file mode 100644
index 0000000..72bcadb
--- /dev/null
+++ b/tests/state22.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":22,"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":17,"health":100,"hitsTaken":0,"score":406},{"playerType":"B","energy":12,"health":100,"hitsTaken":0,"score":207}],"gameMap":[[{"x":0,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":1,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[{"health":20,"constructionTimeLeft":2,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":4,"y":1,"playerType":"B"}],"missiles":[{"damage":5,"speed":1,"x":4,"y":1,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":2,"playerType":"A"}],"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":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[{"health":5,"constructionTimeLeft":0,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state23.json b/tests/state23.json
new file mode 100644
index 0000000..6e8bb03
--- /dev/null
+++ b/tests/state23.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":23,"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":34,"health":100,"hitsTaken":0,"score":433},{"playerType":"B","energy":20,"health":100,"hitsTaken":0,"score":215}],"gameMap":[[{"x":0,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":1,"y":1,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[{"health":20,"constructionTimeLeft":1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":4,"y":1,"playerType":"B"}],"missiles":[{"damage":5,"speed":1,"x":4,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":1,"playerType":"A"}],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":2,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":2,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":1,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state24.json b/tests/state24.json
new file mode 100644
index 0000000..d4ee007
--- /dev/null
+++ b/tests/state24.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":24,"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":21,"health":100,"hitsTaken":0,"score":466},{"playerType":"B","energy":28,"health":100,"hitsTaken":0,"score":223}],"gameMap":[[{"x":0,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":0,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":2,"y":1,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":3,"y":1,"playerType":"B"}],"cellOwner":"A"},{"x":4,"y":1,"buildings":[{"health":20,"constructionTimeLeft":0,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":4,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":6,"y":1,"playerType":"A"}],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":1,"y":2,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":2,"playerType":"A"}],"cellOwner":"B"},{"x":6,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":2,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[{"health":5,"constructionTimeLeft":0,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":2,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":3,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state25.json b/tests/state25.json
new file mode 100644
index 0000000..faaeca0
--- /dev/null
+++ b/tests/state25.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":25,"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":15,"health":100,"hitsTaken":0,"score":507},{"playerType":"B","energy":36,"health":100,"hitsTaken":0,"score":237}],"gameMap":[[{"x":0,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":0,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":1,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":1,"buildings":[{"health":20,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":4,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":6,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":7,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":2,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"damage":5,"speed":1,"x":6,"y":2,"playerType":"A"}],"cellOwner":"B"},{"x":7,"y":2,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":2,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state26.json b/tests/state26.json
new file mode 100644
index 0000000..4abfc72
--- /dev/null
+++ b/tests/state26.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":26,"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":32,"health":100,"hitsTaken":0,"score":555},{"playerType":"B","energy":14,"health":100,"hitsTaken":0,"score":246}],"gameMap":[[{"x":0,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":1,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":4,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":6,"y":1,"buildings":[{"health":20,"constructionTimeLeft":2,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":6,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":2,"playerType":"A"}],"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":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":3,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":5,"y":3,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state27.json b/tests/state27.json
new file mode 100644
index 0000000..0d36c79
--- /dev/null
+++ b/tests/state27.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":27,"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":29,"health":100,"hitsTaken":0,"score":594},{"playerType":"B","energy":22,"health":100,"hitsTaken":0,"score":259}],"gameMap":[[{"x":0,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":1,"y":1,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":4,"y":1,"playerType":"B"}],"missiles":[{"damage":5,"speed":1,"x":4,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[{"health":20,"constructionTimeLeft":1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":6,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":2,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":2,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":1,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":3,"playerType":"A"}],"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"}]]} \ No newline at end of file
diff --git a/tests/state28.json b/tests/state28.json
new file mode 100644
index 0000000..303ecbf
--- /dev/null
+++ b/tests/state28.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":28,"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":26,"health":100,"hitsTaken":0,"score":622},{"playerType":"B","energy":30,"health":100,"hitsTaken":0,"score":273}],"gameMap":[[{"x":0,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":0,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":1,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":4,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[{"health":20,"constructionTimeLeft":0,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":6,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":1,"y":2,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":1,"y":2,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":2,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":2,"playerType":"A"}],"cellOwner":"B"},{"x":6,"y":2,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":2,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":2,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":3,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":3,"playerType":"A"}],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state29.json b/tests/state29.json
new file mode 100644
index 0000000..c41b1fc
--- /dev/null
+++ b/tests/state29.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":29,"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":26,"health":100,"hitsTaken":0,"score":658},{"playerType":"B","energy":8,"health":100,"hitsTaken":0,"score":282}],"gameMap":[[{"x":0,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":0,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":0,"playerType":"A"}],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[{"health":20,"constructionTimeLeft":2,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":1,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":1,"buildings":[{"health":15,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":4,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[{"health":20,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":6,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":1,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":2,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":2,"y":2,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"damage":5,"speed":1,"x":6,"y":2,"playerType":"A"}],"cellOwner":"B"},{"x":7,"y":2,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":2,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":3,"playerType":"A"}],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":6,"y":3,"playerType":"A"}],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state3.json b/tests/state3.json
new file mode 100644
index 0000000..98bdc66
--- /dev/null
+++ b/tests/state3.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":3,"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":21,"health":100,"hitsTaken":0,"score":22},{"playerType":"B","energy":15,"health":100,"hitsTaken":0,"score":16}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":4,"y":3,"playerType":"B"}],"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"}]]}
diff --git a/tests/state30.json b/tests/state30.json
new file mode 100644
index 0000000..5527c6d
--- /dev/null
+++ b/tests/state30.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":30,"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":29,"health":100,"hitsTaken":0,"score":713},{"playerType":"B","energy":13,"health":100,"hitsTaken":0,"score":287}],"gameMap":[[{"x":0,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":0,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":1,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":2,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":2,"y":0,"playerType":"A"}],"cellOwner":"A"},{"x":3,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":5,"y":0,"playerType":"A"}],"cellOwner":"B"},{"x":6,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":7,"y":0,"buildings":[{"health":20,"constructionTimeLeft":1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":0,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":1,"buildings":[],"missiles":[],"cellOwner":"A"},{"x":2,"y":1,"buildings":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":1,"buildings":[{"health":10,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":4,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":5,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":1,"buildings":[{"health":20,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":6,"y":1,"playerType":"B"}],"missiles":[],"cellOwner":"B"},{"x":7,"y":1,"buildings":[],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":1,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":1,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":2,"y":2,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":2,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"DEFENSE","x":7,"y":2,"playerType":"B"}],"missiles":[],"cellOwner":"B"}],[{"x":0,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":0,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":1,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":2,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":1,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":2,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":2,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":3,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[{"damage":5,"speed":1,"x":3,"y":3,"playerType":"A"}],"cellOwner":"A"},{"x":4,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":4,"y":3,"playerType":"A"}],"cellOwner":"B"},{"x":5,"y":3,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":6,"y":3,"playerType":"A"}],"cellOwner":"B"},{"x":7,"y":3,"buildings":[],"missiles":[{"damage":5,"speed":1,"x":7,"y":3,"playerType":"A"}],"cellOwner":"B"}]]} \ No newline at end of file
diff --git a/tests/state4.json b/tests/state4.json
new file mode 100644
index 0000000..29f3b2c
--- /dev/null
+++ b/tests/state4.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":4,"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":9,"health":100,"hitsTaken":0,"score":31},{"playerType":"B","energy":23,"health":100,"hitsTaken":0,"score":24}],"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":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":4,"y":3,"playerType":"B"}],"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"}]]}
diff --git a/tests/state5.json b/tests/state5.json
new file mode 100644
index 0000000..02b654c
--- /dev/null
+++ b/tests/state5.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":5,"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":42},{"playerType":"B","energy":31,"health":100,"hitsTaken":0,"score":32}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":4,"y":3,"playerType":"B"}],"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"}]]}
diff --git a/tests/state6.json b/tests/state6.json
new file mode 100644
index 0000000..f4b6f46
--- /dev/null
+++ b/tests/state6.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":6,"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":11,"health":100,"hitsTaken":0,"score":54},{"playerType":"B","energy":19,"health":100,"hitsTaken":0,"score":41}],"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":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":4,"y":3,"playerType":"B"}],"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"}]]} \ No newline at end of file
diff --git a/tests/state7.json b/tests/state7.json
new file mode 100644
index 0000000..3f27bcf
--- /dev/null
+++ b/tests/state7.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":7,"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":25,"health":100,"hitsTaken":0,"score":68},{"playerType":"B","energy":30,"health":100,"hitsTaken":0,"score":52}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":4,"y":3,"playerType":"B"}],"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"}]]} \ No newline at end of file
diff --git a/tests/state8.json b/tests/state8.json
new file mode 100644
index 0000000..d5d82ab
--- /dev/null
+++ b/tests/state8.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":8,"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":19,"health":100,"hitsTaken":0,"score":83},{"playerType":"B","energy":11,"health":100,"hitsTaken":0,"score":64}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":0,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":0,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":4,"y":3,"playerType":"B"}],"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"}]]} \ No newline at end of file
diff --git a/tests/state9.json b/tests/state9.json
new file mode 100644
index 0000000..686a011
--- /dev/null
+++ b/tests/state9.json
@@ -0,0 +1 @@
+{"gameDetails":{"round":9,"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":36,"health":100,"hitsTaken":0,"score":100},{"playerType":"B","energy":22,"health":100,"hitsTaken":0,"score":75}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":0,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":5,"y":0,"buildings":[],"missiles":[],"cellOwner":"B"},{"x":6,"y":0,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":6,"y":0,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":1,"playerType":"A"}],"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":[{"damage":5,"speed":1,"x":6,"y":1,"playerType":"B"}],"cellOwner":"B"},{"x":7,"y":1,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":30,"weaponDamage":5,"weaponSpeed":1,"weaponCooldownTimeLeft":3,"weaponCooldownPeriod":3,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":0,"buildingType":"ATTACK","x":7,"y":1,"playerType":"B"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":2,"playerType":"A"}],"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":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":3,"y":3,"playerType":"A"}],"missiles":[],"cellOwner":"A"},{"x":4,"y":3,"buildings":[{"health":5,"constructionTimeLeft":-1,"price":20,"weaponDamage":0,"weaponSpeed":0,"weaponCooldownTimeLeft":0,"weaponCooldownPeriod":0,"destroyMultiplier":1,"constructionScore":1,"energyGeneratedPerTurn":3,"buildingType":"ENERGY","x":4,"y":3,"playerType":"B"}],"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"}]]} \ No newline at end of file