comp345 / risk-game

Warzone game on console implemented using C++
1 stars 0 forks source link

A2 Refactoring/Fixing to do #21

Open eyeshield2110 opened 2 years ago

eyeshield2110 commented 2 years ago

Part 1: CommandProcessor, FileCommandProcessorAdapter

Part 2: StartupPhase - Assigned to @ratulkai93 @laila-chammaa

Part 3: GamePlayPhase - Assigned to @eyeshield2110 and @GD-Dheer

During the demo, this part crashed but I (@eyeshield2110) don't know why. Needs to be reviewed by someone other than Noah or Alexander, during a call.

Part 4: Order execution implementation - Assigned to @laila-chammaa and someone else (???)

6 Order subtypes to implement. As of A2 demo, only 4 are done. laila is currently working on some, so check branch laila-fixes.

Todo

Part 5: Game log observer

In General

eyeshield2110 commented 2 years ago

@GD-Dheer @ratulkai93 @Figgueh @laila-chammaa Edit and add to the issue (aka the post above) the urgent things to do to fix A2 before starting A3.

laila-chammaa commented 2 years ago

im good to take one of the orders, and help @ratulkai93 with fixing up part 2

eyeshield2110 commented 2 years ago

im good to take one of the orders, and help @ratulkai93 with fixing up part 2

Ok, ive assigned the parts to you for now. For the orders, let me know if you need help or a call.

laila-chammaa commented 2 years ago

im good to take one of the orders, and help @ratulkai93 with fixing up part 2

Ok, ive assigned the parts to you for now. For the orders, let me know if you need help or a call.

one order tho, im not sure which one yet, but others are free to pick one of em as well

laila-chammaa commented 2 years ago

implemented blockade (it's on laila-fixes branch), just need to add it to OrdersDriver? altho also not sure what a neutral player is. started on negotiate (also on that branch) just not sure how to implement execute, it's pretty complex. not sure how to have the concept of "one turn" but we'll need some type of way to check if two players are negotiated with each other (prob have a list of players that a player is negotiated with in the player class) and then check it in bomb/advance validate. again tho, not sure about "one turn" @eyeshield2110

eyeshield2110 commented 2 years ago

implemented blockade (it's on laila-fixes branch), just need to add it to OrdersDriver? altho also not sure what a neutral player is. started on negotiate (also on that branch) just not sure how to implement execute, it's pretty complex. not sure how to have the concept of "one turn" but we'll need some type of way to check if two players are negotiated with each other (prob have a list of players that a player is negotiated with in the player class) and then check it in bomb/advance validate. again tho, not sure about "one turn" @eyeshield2110

The neutral player in A2 is just a regular player, but there's more details on the types of players in A3, so checking that might help. The GameEngine is responsible of running each player's turn. Btw during A2, the use of the term "turn" was confusing to us as well. I'm assuming this: In the game loop, during the Order Execution phase, a player X's turn is one loop where each player executed one order in round robin style. The effect of the Negotiate order takes place starting when player X played the card in his turn, until it's player X's turn again in the next loop. I'm not completely sure yet though.