Desktop macOS client for the Robowars game
🟢 - Implement some kind of validator which have to validate ships returned by robots according to a specified game mode:
[✅] a. check that the count and size of ships returned is correct
[✅] b. check that the ships placed on correct positions:
[✅] 1. all ships are placed incide the battlefield
[✅] 2. there are no collisions between ships positions
🟢 - Integrate ships validation into the GameEngine
🟢 - Implement shooting logic
[✅] Ask a robot for coordinate of shooting
[✅] Send a robot the result of shooting
🟢 - Improve shooting logic
[✅] Implement more real test cases
[✅] Improve the code
🟢 - Add a delegate for GameEngine
[✅] Emmit the `robot 1 did change` event
[✅] Emmit the `robot 2 did change` event
[✅] Emmit the `did fail` event in case of incorrect ships placement by any robot
[✅] Emit the `robot 1 did shoot` event
[✅] Emit the `robot 2 did shoot` event
[✅] Emit the `robot 1 did win` event
[✅] Emit the `robot 2 did win` event
[✅] Emit the `robot 1 did lose` event
[✅] Emit the `robot 2 did lose` event
🟢 - Emmit the game mode did change
event
🟢 - Add memory leak test
🟢 - Do refactoring (system design mostlys)
🟢 - Setup CI
🟢 - Make a prototype app
[✅] Add 'Samples' panel
[✅] Show/hide error message
[✅] Start game
[✅] In progress game
[✅] Finished game
[✅] Show winner message
[✅] Set colors
[✅] Battlefield colors
[✅] Colors
[✅] Draw 'X' for hit shots
[✅] Draw 'O' for missed shots
🟢 - Implement basic game rules
[✅] Add `Game Speed` combo box
[✅] After a match started a user cannot interact with UI until a match finishes
[✅] After a match finishes there is only a `New Battle` button available which cleans up battlefields,
and returns UI to the state before the previous battle
[✅] When a user changes game mode or a robot befrore start a battle, battlefields should update
[✅] Show winner popup.
🟢 - Support light mode
[✅] Support light mode
🟢 - Add more game modes
[✅] Middleweight
[✅] Heavyweight
[✅] Super Heavyweight
🟢 - Implement a dummy robot (Randomator)
[✅] Implement random shooting
[✅] Implement ships placing
As a user
I want to select robots, select the game mode and specify the shooting speed
So I can start the game and see the robots battle
Given the user selects robots
And the user selects the game mode
And the user specifies the shooting speed
When the user taps the start button
Then the robots start fighting
As a user
I can not start the game when there are no robots
So the start button have to be disabled
Given the user selects the game mode
And the user specifies the shooting speed
When there are no robots
Then the start button have to be disabled
As a user
I can not start the game when there is no game mode
So the start button have to be disabled
Given the user selects robots
And the user specifies the shooting speed
When there is no game mode
Then the start button have to be disabled
When the system sends battlefield size and list of possible ships to a robot
Robot have to send back ships positions
The system checks whether ships placed correctly
Given the system sends battlefield and list of possible ships to a rebot
When battlefield and list of possible ships are not empty
Then robot sends back to the system non empty list of ships
- Robot #1
- Robot #2
- The Game Mode
- Shooting Speed
- Launch the app
- Select Robot #1
- Select Robot #2
- Select the game mode
- Specify the shooting speed
- Tap the start button
- The robots start fighting
- The start button have to be disabled
- The app should show the no robots error message
- The start button have to be disabled
- The app should show the no game mode error message
- Battlefiled
- List of possible ships
- Set non empty battlefield
- Set non empty list of possible ships
- System receives non empty list of ships
- System checks whether the list of ships is correct
- Set an empty battlefield
- Set non empty list of possible ships
- System receives an empty list of ships
- Set non empty battlefield
- Set an empty list of possible ships
- System receives an empty list of ships
- Set an empty battlefield
- Set an empty list of possible ships
- System receives an empty list of ships