diff --git a/source/Trek-12/Models/Events/GameEndedEventArgs.cs b/source/Trek-12/Models/Events/GameEndedEventArgs.cs new file mode 100644 index 0000000..5c53a2e --- /dev/null +++ b/source/Trek-12/Models/Events/GameEndedEventArgs.cs @@ -0,0 +1,12 @@ +using Models.Game; +namespace Models.Events; + +public class GameEndedEventArgs : EventArgs +{ + public Player CurrentPlayer { get; } + + public GameEndedEventArgs(Player winner) + { + CurrentPlayer = winner; + } +} \ No newline at end of file diff --git a/source/Trek-12/Models/Events/GameStartedEventArgs.cs b/source/Trek-12/Models/Events/GameStartedEventArgs.cs index 4006df9..a35389d 100644 --- a/source/Trek-12/Models/Events/GameStartedEventArgs.cs +++ b/source/Trek-12/Models/Events/GameStartedEventArgs.cs @@ -9,14 +9,4 @@ public class GameStartedEventArgs : EventArgs { CurrentPlayer = selectedPlayer; } -} - -public class GameEndedEventArgs : EventArgs -{ - public Player CurrentPlayer { get; } - - public GameEndedEventArgs(Player winner) - { - CurrentPlayer = winner; - } } \ No newline at end of file diff --git a/source/Trek-12/Models/Game/Game.cs b/source/Trek-12/Models/Game/Game.cs index da7a179..591c362 100644 --- a/source/Trek-12/Models/Game/Game.cs +++ b/source/Trek-12/Models/Game/Game.cs @@ -45,6 +45,17 @@ namespace Models.Game Dice2.Roll(); } + /// + /// Performs an operation on the values of two dice based on the provided operation. + /// + /// The operation to perform. This can be LOWER, HIGHER, SUBTRACTION, ADDITION, or MULTIPLICATION. + /// + /// The result of the operation. If the operation is LOWER or HIGHER, it returns the lower or higher value of the two dice respectively. + /// If the operation is SUBTRACTION, it returns the difference between the higher and lower value of the two dice. + /// If the operation is ADDITION, it returns the sum of the values of the two dice. + /// If the operation is MULTIPLICATION, it returns the product of the values of the two dice. + /// If the operation is not one of the operations, it throws an ArgumentOutOfRangeException. + /// public int ResultOperation(Operation o) { switch (o) @@ -65,7 +76,7 @@ namespace Models.Game return Dice2.Value * Dice1.Value; default: - return 0; + throw new ArgumentOutOfRangeException(); } } @@ -111,13 +122,16 @@ namespace Models.Game } } + /// + /// Initializes the game. + /// public void InitializeGame() { _isRunning = true; GameStarted?.Invoke(this, new GameStartedEventArgs(CurrentPlayer)); - GameLoop(); } + private async void GameLoop() {