From 3a74be47a7e2834dcb9fbea1c8f7f31d90ead389 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Wed, 16 Feb 2022 01:10:44 +0100 Subject: [PATCH] Refactored TicTacToe.SpielerInput --- .../MiniGames/Client/ViewModel/TicTacToe.cs | 29 +++++++++++++++---- .../MiniGames/Shared/Models/TicTacToeModel.cs | 10 +++++++ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs b/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs index 52dbd99..f69cfa5 100644 --- a/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs +++ b/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs @@ -40,9 +40,20 @@ namespace MiniGames.Client.ViewModel } } + public SpielerModel GewinnerSpieler + { + get { return Model.GewinnerSpieler; } + set { Model.GewinnerSpieler = value; } + } + + public bool Fertig() + { + return Model.Fertig(); + } + public void SpielerInput(int posIndex) { - if (GewinnerIndex >= 0) return; + if (Fertig()) return; if (Brett.Set(posIndex, AktiverSpielerIndex)) { @@ -50,16 +61,22 @@ namespace MiniGames.Client.ViewModel } GewinnerIndex = Brett.Gewinner(); - - if (GewinnerIndex >= 0) - { - Spieler[GewinnerIndex].Punkte++; - } + PunkteBerechnung(); } public void SpielerWechsel() { AktiverSpielerIndex = 1 - AktiverSpielerIndex; } + + public void PunkteBerechnung() + { + SpielerModel gewinner = GewinnerSpieler; + + if (gewinner != null) + { + gewinner.Punkte++; + } + } } } diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs index 895e815..4e21acf 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs @@ -12,5 +12,15 @@ namespace MiniGames.Shared.Models public int AktiverSpielerIndex { get; set; } = 0; public int GewinnerIndex { get; set; } = -1; public TicTacToeBrett Brett { get; set; } + public SpielerModel GewinnerSpieler + { + get { return (GewinnerIndex >= 0) ? Spieler[GewinnerIndex] : null; } + set { GewinnerIndex = Array.IndexOf(Spieler, value); } + } + + public bool Fertig() + { + return GewinnerIndex >= 0 || Brett.Voll(); + } } }