diff --git a/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs b/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs index 514d129..52dbd99 100644 --- a/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs +++ b/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs @@ -11,6 +11,12 @@ namespace MiniGames.Client.ViewModel this.Model = model; } + public SpielerModel[] Spieler + { + get { return Model.Spieler; } + set { Model.Spieler = value; } + } + public TicTacToeBrett Brett { get { return Model.Brett; } @@ -36,12 +42,19 @@ namespace MiniGames.Client.ViewModel public void SpielerInput(int posIndex) { + if (GewinnerIndex >= 0) return; + if (Brett.Set(posIndex, AktiverSpielerIndex)) { SpielerWechsel(); } GewinnerIndex = Brett.Gewinner(); + + if (GewinnerIndex >= 0) + { + Spieler[GewinnerIndex].Punkte++; + } } public void SpielerWechsel() diff --git a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs index 9a43703..c9223b0 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs @@ -105,10 +105,16 @@ namespace MiniGamesTests [Theory] [InlineData(0, 0, 3, 1, 4, 2)] [InlineData(0, 3, 0, 4, 1, 5, 2)] + [InlineData(1, 0, 6, 3, 4, 6, 1, 2)] public void SpielerInput_GewinnerTest(int gewinnerIndex, params int[] inputs) { // arrange TicTacToe spiel = StandardSpiel(); + spiel.AktiverSpielerIndex = 0; + spiel.Spieler[0].Punkte = 0; + spiel.Spieler[1].Punkte = 1; + int erwartetePunkteSpieler1 = (gewinnerIndex == 0) ? 1 : 0; + int erwartetePunkteSpieler2 = (gewinnerIndex == 1) ? 2 : 1; int erwarteterGewinnerIndex = gewinnerIndex; // act @@ -119,6 +125,8 @@ namespace MiniGamesTests // assert Assert.Equal(spiel.GewinnerIndex, erwarteterGewinnerIndex); + Assert.Equal(spiel.Spieler[0].Punkte, erwartetePunkteSpieler1); + Assert.Equal(spiel.Spieler[1].Punkte, erwartetePunkteSpieler2); } [Fact] @@ -127,6 +135,10 @@ namespace MiniGamesTests // arrange TicTacToe spiel = StandardSpiel(); spiel.AktiverSpielerIndex = 0; + spiel.Spieler[0].Punkte = 0; + spiel.Spieler[1].Punkte = 0; + int erwartetePunkteSpieler1 = 0; + int erwartetePunkteSpieler2 = 0; int erwarteterGewinnerIndex = -1; // act @@ -139,6 +151,8 @@ namespace MiniGamesTests // assert Assert.Equal(spiel.GewinnerIndex, erwarteterGewinnerIndex); + Assert.Equal(spiel.Spieler[0].Punkte, erwartetePunkteSpieler1); + Assert.Equal(spiel.Spieler[1].Punkte, erwartetePunkteSpieler2); } } }