From 0ebebeccd72ba76a2a9a9ad94c38feaed9b6ab1c Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Tue, 15 May 2018 23:14:32 +0200 Subject: Added end to end tests, comparing against actual game engine --- tests/live-comparison.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/state0.json | 1 + tests/state1.json | 1 + tests/state10.json | 1 + tests/state11.json | 1 + tests/state12.json | 1 + tests/state13.json | 1 + tests/state14.json | 1 + tests/state15.json | 1 + tests/state16.json | 1 + tests/state17.json | 1 + tests/state18.json | 1 + tests/state19.json | 1 + tests/state2.json | 1 + tests/state20.json | 1 + tests/state21.json | 1 + tests/state22.json | 1 + tests/state23.json | 1 + tests/state24.json | 1 + tests/state25.json | 1 + tests/state26.json | 1 + tests/state27.json | 1 + tests/state28.json | 1 + tests/state29.json | 1 + tests/state3.json | 1 + tests/state30.json | 1 + tests/state4.json | 1 + tests/state5.json | 1 + tests/state6.json | 1 + tests/state7.json | 1 + tests/state8.json | 1 + tests/state9.json | 1 + 32 files changed, 85 insertions(+) create mode 100644 tests/live-comparison.rs create mode 100644 tests/state0.json create mode 100644 tests/state1.json create mode 100644 tests/state10.json create mode 100644 tests/state11.json create mode 100644 tests/state12.json create mode 100644 tests/state13.json create mode 100644 tests/state14.json create mode 100644 tests/state15.json create mode 100644 tests/state16.json create mode 100644 tests/state17.json create mode 100644 tests/state18.json create mode 100644 tests/state19.json create mode 100644 tests/state2.json create mode 100644 tests/state20.json create mode 100644 tests/state21.json create mode 100644 tests/state22.json create mode 100644 tests/state23.json create mode 100644 tests/state24.json create mode 100644 tests/state25.json create mode 100644 tests/state26.json create mode 100644 tests/state27.json create mode 100644 tests/state28.json create mode 100644 tests/state29.json create mode 100644 tests/state3.json create mode 100644 tests/state30.json create mode 100644 tests/state4.json create mode 100644 tests/state5.json create mode 100644 tests/state6.json create mode 100644 tests/state7.json create mode 100644 tests/state8.json create mode 100644 tests/state9.json 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 -- cgit v1.2.3