From 555c265fe1f578ed229e9c291830a6d0ddf26dc2 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Mon, 7 Feb 2022 22:52:59 +0100 Subject: [PATCH 01/34] =?UTF-8?q?Grundger=C3=BCst=20+=20naiver=20SpielerIn?= =?UTF-8?q?put=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGames/Client/ViewModel/ITicTacToe.cs | 7 ++ .../MiniGames/Client/ViewModel/TicTacToe.cs | 19 ++++++ .../MiniGames/Shared/Models/TicTacToeModel.cs | 14 ++++ .../MiniGamesTests/TicTacToeTest.cs | 66 +++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 BlazorSolution/MiniGames/Client/ViewModel/ITicTacToe.cs create mode 100644 BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs create mode 100644 BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs create mode 100644 BlazorSolution/MiniGamesTests/TicTacToeTest.cs diff --git a/BlazorSolution/MiniGames/Client/ViewModel/ITicTacToe.cs b/BlazorSolution/MiniGames/Client/ViewModel/ITicTacToe.cs new file mode 100644 index 0000000..6d9794a --- /dev/null +++ b/BlazorSolution/MiniGames/Client/ViewModel/ITicTacToe.cs @@ -0,0 +1,7 @@ +namespace MiniGames.Client.ViewModel +{ + public interface ITicTacToe + { + bool SpielerInput(int spielerIndex, int posIndex); + } +} diff --git a/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs b/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs new file mode 100644 index 0000000..2de9f08 --- /dev/null +++ b/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs @@ -0,0 +1,19 @@ +using MiniGames.Shared.Models; + +namespace MiniGames.Client.ViewModel +{ + public class TicTacToe : ITicTacToe + { + TicTacToeModel Model; + + public TicTacToe(TicTacToeModel model) + { + this.Model = model; + } + + public bool SpielerInput(int spielerIndex, int posIndex) + { + return true; + } + } +} diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs new file mode 100644 index 0000000..90b4e27 --- /dev/null +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MiniGames.Shared.Models +{ + public class TicTacToeModel + { + public SpielerModel[] Spieler { get; set; } + public int[,] Karte { get; set; } + } +} diff --git a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs new file mode 100644 index 0000000..8d4a7e5 --- /dev/null +++ b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xunit; + +using MiniGames.Shared.Models; +using MiniGames.Client.ViewModel; + +namespace MiniGamesTests +{ + public class TicTacToeTest + { + int[,] StandardKarte() + { + return new int[,] + { + { -1, -1, -1, }, + { -1, -1, -1, }, + { -1, -1, -1, }, + }; + } + + SpielerModel[] StandardSpieler() + { + return new SpielerModel[] + { + new SpielerModel + { + SpielerName = "Spieler 1", + Punkte = 0 + }, + new SpielerModel + { + SpielerName = "Spieler 2", + Punkte = 1 + } + }; + } + + TicTacToeModel StandardModel() + { + return new TicTacToeModel + { + Spieler = StandardSpieler(), + Karte = StandardKarte(), + }; + } + + [Theory] + [InlineData(0, 4, true)] + private void SpielerInput_FreiesFeldBelegenTest(int spielerIndex, int posIndex, bool gesetzt) + { + // arrange + TicTacToe spiel = new(StandardModel()); + bool erwartetGesetzt = gesetzt; + + // act + bool erhaltenGesetzt = spiel.SpielerInput(spielerIndex, posIndex); + + // assert + Assert.Equal(erwartetGesetzt, erhaltenGesetzt); + } + } +} From bd36360e267db1657521dc4eb813c9d3c322d80d Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Thu, 10 Feb 2022 22:19:54 +0100 Subject: [PATCH 02/34] "Karte" in "Brett" umbenannt --- BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs | 6 ++++++ BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs | 2 +- BlazorSolution/MiniGamesTests/TicTacToeTest.cs | 6 ++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs b/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs index 2de9f08..5eda822 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 int[,] Brett + { + get { return Model.Brett; } + set { Model.Brett = value; } + } + public bool SpielerInput(int spielerIndex, int posIndex) { return true; diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs index 90b4e27..a8e8ad3 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs @@ -9,6 +9,6 @@ namespace MiniGames.Shared.Models public class TicTacToeModel { public SpielerModel[] Spieler { get; set; } - public int[,] Karte { get; set; } + public int[,] Brett { get; set; } } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs index 8d4a7e5..2a6300c 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs @@ -12,7 +12,7 @@ namespace MiniGamesTests { public class TicTacToeTest { - int[,] StandardKarte() + int[,] StandardBrett() { return new int[,] { @@ -44,7 +44,7 @@ namespace MiniGamesTests return new TicTacToeModel { Spieler = StandardSpieler(), - Karte = StandardKarte(), + Brett = StandardBrett(), }; } @@ -54,6 +54,7 @@ namespace MiniGamesTests { // arrange TicTacToe spiel = new(StandardModel()); + int[,] brett = spiel.Brett; bool erwartetGesetzt = gesetzt; // act @@ -61,6 +62,7 @@ namespace MiniGamesTests // assert Assert.Equal(erwartetGesetzt, erhaltenGesetzt); + } } } From ba557643d5125376a72e729e8ff57facebdf3b12 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Thu, 10 Feb 2022 22:38:10 +0100 Subject: [PATCH 03/34] Eigene Klasse TicTacToeBrett angelegt --- .../MiniGames/Client/ViewModel/TicTacToe.cs | 2 +- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 13 +++++++++++++ .../MiniGames/Shared/Models/TicTacToeModel.cs | 2 +- BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs | 13 +++++++++++++ BlazorSolution/MiniGamesTests/TicTacToeTest.cs | 11 +++-------- 5 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs create mode 100644 BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs diff --git a/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs b/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs index 5eda822..c844f89 100644 --- a/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs +++ b/BlazorSolution/MiniGames/Client/ViewModel/TicTacToe.cs @@ -11,7 +11,7 @@ namespace MiniGames.Client.ViewModel this.Model = model; } - public int[,] Brett + public TicTacToeBrett Brett { get { return Model.Brett; } set { Model.Brett = value; } diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs new file mode 100644 index 0000000..83534e7 --- /dev/null +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MiniGames.Shared.Models +{ + public class TicTacToeBrett + { + int[,] Felder; + } +} diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs index a8e8ad3..cc67cbf 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeModel.cs @@ -9,6 +9,6 @@ namespace MiniGames.Shared.Models public class TicTacToeModel { public SpielerModel[] Spieler { get; set; } - public int[,] Brett { get; set; } + public TicTacToeBrett Brett { get; set; } } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs new file mode 100644 index 0000000..2a64757 --- /dev/null +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MiniGamesTests +{ + public class TicTacToeBrettTest + { + + } +} diff --git a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs index 2a6300c..aee50ed 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs @@ -12,14 +12,9 @@ namespace MiniGamesTests { public class TicTacToeTest { - int[,] StandardBrett() + TicTacToeBrett StandardBrett() { - return new int[,] - { - { -1, -1, -1, }, - { -1, -1, -1, }, - { -1, -1, -1, }, - }; + return new TicTacToeBrett(); } SpielerModel[] StandardSpieler() @@ -54,7 +49,7 @@ namespace MiniGamesTests { // arrange TicTacToe spiel = new(StandardModel()); - int[,] brett = spiel.Brett; + TicTacToeBrett brett = spiel.Brett; bool erwartetGesetzt = gesetzt; // act From c592a10e0f235193d13740447019ae32a5cfd801 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Thu, 10 Feb 2022 22:50:37 +0100 Subject: [PATCH 04/34] =?UTF-8?q?ersten=20SpielerInput-Test=20zu=20TicTacT?= =?UTF-8?q?oeBrettTest=20=C3=BCbertragen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 15 +++++++++++++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 17 ++++++++++++++++- BlazorSolution/MiniGamesTests/TicTacToeTest.cs | 17 ----------------- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 83534e7..4d1e08b 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -9,5 +9,20 @@ namespace MiniGames.Shared.Models public class TicTacToeBrett { int[,] Felder; + + public TicTacToeBrett() + { + Felder = new[,] + { + { -1, -1, -1 }, + { -1, -1, -1 }, + { -1, -1, -1 }, + }; + } + + public bool set(int pos, int wert) + { + return true; + } } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 2a64757..1c3e55d 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -1,13 +1,28 @@ -using System; +using MiniGames.Shared.Models; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Xunit; namespace MiniGamesTests { public class TicTacToeBrettTest { + [Theory] + [InlineData(4, 0, true)] + public void Set_FreiesFeldBelegenTest(int pos, int wert, bool gesetzt) + { + // arrange + TicTacToeBrett brett = new(); + bool erwartetGesetzt = gesetzt; + // act + bool erhaltenGesetzt = brett.set(pos, wert); + + // assert + Assert.Equal(erwartetGesetzt, erhaltenGesetzt); + } } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs index aee50ed..71835ca 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs @@ -42,22 +42,5 @@ namespace MiniGamesTests Brett = StandardBrett(), }; } - - [Theory] - [InlineData(0, 4, true)] - private void SpielerInput_FreiesFeldBelegenTest(int spielerIndex, int posIndex, bool gesetzt) - { - // arrange - TicTacToe spiel = new(StandardModel()); - TicTacToeBrett brett = spiel.Brett; - bool erwartetGesetzt = gesetzt; - - // act - bool erhaltenGesetzt = spiel.SpielerInput(spielerIndex, posIndex); - - // assert - Assert.Equal(erwartetGesetzt, erhaltenGesetzt); - - } } } From 3aae2b53cebb7dba5a848920dd2adc1e1b651ad5 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Fri, 11 Feb 2022 00:50:08 +0100 Subject: [PATCH 05/34] =?UTF-8?q?TicTacToeBrett-Konstruktor=20mit=202D-Arr?= =?UTF-8?q?ay=20als=20Parameter=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 4d1e08b..3cb46c1 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -20,6 +20,11 @@ namespace MiniGames.Shared.Models }; } + public TicTacToeBrett(int[,] felder) + { + Felder = felder; + } + public bool set(int pos, int wert) { return true; From c43c98debcfdeb22f81184ca1c237edb31017ca2 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Fri, 11 Feb 2022 01:23:17 +0100 Subject: [PATCH 06/34] Naiver TicTacToeBrett.Gleich-Test --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 5 +++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 3cb46c1..00b36d0 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -25,6 +25,11 @@ namespace MiniGames.Shared.Models Felder = felder; } + public bool Gleich(TicTacToeBrett anderes) + { + return true; + } + public bool set(int pos, int wert) { return true; diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 1c3e55d..1dc9d91 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -24,5 +24,20 @@ namespace MiniGamesTests // assert Assert.Equal(erwartetGesetzt, erhaltenGesetzt); } + + [Fact] + public void Gleich_LeereBretterTest() + { + // arrange + TicTacToeBrett b1 = new(); + TicTacToeBrett b2 = new(); + bool erwartetGleich = true; + + // act + bool erhaltenGleich = b1.Gleich(b2); + + // assert + Assert.Equal(erwartetGleich, erhaltenGleich); + } } } From 3e56f2eaae9f93483da4616c9ae5078945ef3a1c Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Fri, 11 Feb 2022 19:25:13 +0100 Subject: [PATCH 07/34] TicTacToeBrett.Gleich erkennt Ungleichheit --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 11 +++++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 33 ++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 00b36d0..b9bce34 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -27,6 +27,17 @@ namespace MiniGames.Shared.Models public bool Gleich(TicTacToeBrett anderes) { + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { + if (Felder[i, j] != anderes.Felder[i, j]) + { + return false; + } + } + } + return true; } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 1dc9d91..32b7f69 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -10,6 +10,22 @@ namespace MiniGamesTests { public class TicTacToeBrettTest { + public TicTacToeBrett TestBrett( + int a = -1, int b = -1, int c = -1, + int d = -1, int e = -1, int f = -1, + int g = -1, int h = -1, int i = -1 + ) + { + return new( + new int[,] + { + { a, b, c, }, + { d, e, f, }, + { g, h, i, }, + } + ); + } + [Theory] [InlineData(4, 0, true)] public void Set_FreiesFeldBelegenTest(int pos, int wert, bool gesetzt) @@ -26,7 +42,7 @@ namespace MiniGamesTests } [Fact] - public void Gleich_LeereBretterTest() + public void Gleich_LeereBretterGleichTest() { // arrange TicTacToeBrett b1 = new(); @@ -39,5 +55,20 @@ namespace MiniGamesTests // assert Assert.Equal(erwartetGleich, erhaltenGleich); } + + [Fact] + public void Gleich_NichtLeereBretterUngleichTest() + { + // arrange + TicTacToeBrett b1 = TestBrett(1); + TicTacToeBrett b2 = TestBrett(2); + bool erwartetGleich = false; + + // act + bool erhaltenGleich = b1.Gleich(b2); + + // assert + Assert.Equal(erwartetGleich, erhaltenGleich); + } } } From 40ec6b8a6b975861339b5009fd8f5e40bbfa1077 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Fri, 11 Feb 2022 19:28:33 +0100 Subject: [PATCH 08/34] =?UTF-8?q?Mehr=20Tests=20f=C3=BCr=20TicTacToeBrett.?= =?UTF-8?q?Gleich=20erstellt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGamesTests/TicTacToeBrettTest.cs | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 32b7f69..3f9ade1 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -57,7 +57,22 @@ namespace MiniGamesTests } [Fact] - public void Gleich_NichtLeereBretterUngleichTest() + public void Gleich_NichtLeereBretterGleichTest() + { + // arrange + TicTacToeBrett b1 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9); + TicTacToeBrett b2 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9); + bool erwartetGleich = true; + + // act + bool erhaltenGleich = b1.Gleich(b2); + + // assert + Assert.Equal(erwartetGleich, erhaltenGleich); + } + + [Fact] + public void Gleich_ErsteUngleichTest() { // arrange TicTacToeBrett b1 = TestBrett(1); @@ -70,5 +85,20 @@ namespace MiniGamesTests // assert Assert.Equal(erwartetGleich, erhaltenGleich); } + + [Fact] + public void Gleich_LetzteUngleichTest() + { + // arrange + TicTacToeBrett b1 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9); + TicTacToeBrett b2 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 10); + bool erwartetGleich = false; + + // act + bool erhaltenGleich = b1.Gleich(b2); + + // assert + Assert.Equal(erwartetGleich, erhaltenGleich); + } } } From 14b66f20b13a17707a69a68d6b1597da8da25d26 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Fri, 11 Feb 2022 19:37:04 +0100 Subject: [PATCH 09/34] =?UTF-8?q?TicTacToeBrett.set=20setzt=20das=20richti?= =?UTF-8?q?ge=20Feld=20auf=20den=20=C3=BCbergebenen=20Wert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 2 ++ BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index b9bce34..dd208cb 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -43,6 +43,8 @@ namespace MiniGames.Shared.Models public bool set(int pos, int wert) { + Felder[pos / 3, pos % 3] = wert; + return true; } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 3f9ade1..eadf6c3 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -26,19 +26,22 @@ namespace MiniGamesTests ); } - [Theory] - [InlineData(4, 0, true)] - public void Set_FreiesFeldBelegenTest(int pos, int wert, bool gesetzt) + [Fact] + public void Set_FreiesFeldBelegenTest() { // arrange TicTacToeBrett brett = new(); - bool erwartetGesetzt = gesetzt; + TicTacToeBrett erwartetesBrett = TestBrett(-1, -1, -1, -1, 0); + int pos = 4; + int wert = 0; + bool erwartetGesetzt = true; // act bool erhaltenGesetzt = brett.set(pos, wert); // assert Assert.Equal(erwartetGesetzt, erhaltenGesetzt); + Assert.True(brett.Gleich(erwartetesBrett)); } [Fact] From 1a1604118ce250f8eca67bf8ad0cecbb0a0334be Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Fri, 11 Feb 2022 19:38:12 +0100 Subject: [PATCH 10/34] "TicTacToeBrett.set" in "TicTacToeBrett.Set" umbenannt --- BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs | 2 +- BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index dd208cb..329bb08 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -41,7 +41,7 @@ namespace MiniGames.Shared.Models return true; } - public bool set(int pos, int wert) + public bool Set(int pos, int wert) { Felder[pos / 3, pos % 3] = wert; diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index eadf6c3..53a56f8 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -37,7 +37,7 @@ namespace MiniGamesTests bool erwartetGesetzt = true; // act - bool erhaltenGesetzt = brett.set(pos, wert); + bool erhaltenGesetzt = brett.Set(pos, wert); // assert Assert.Equal(erwartetGesetzt, erhaltenGesetzt); From 2aaac393b75774495bfc6638999513c5587ac4bf Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Fri, 11 Feb 2022 23:10:39 +0100 Subject: [PATCH 11/34] =?UTF-8?q?TicTacToeBrett.Set=20auf=20ein=20belegtes?= =?UTF-8?q?=20Feld=20l=C3=A4sst=20das=20Feld=20unver=C3=A4ndert=20und=20gi?= =?UTF-8?q?bt=20false=20zur=C3=BCck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 8 +++++++- .../MiniGamesTests/TicTacToeBrettTest.cs | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 329bb08..460e7f2 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -43,7 +43,13 @@ namespace MiniGames.Shared.Models public bool Set(int pos, int wert) { - Felder[pos / 3, pos % 3] = wert; + int x = pos / 3; + int y = pos % 3; + + if (Felder[x, y] != -1) + return false; + + Felder[x, y] = wert; return true; } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 53a56f8..ac787a9 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -44,6 +44,24 @@ namespace MiniGamesTests Assert.True(brett.Gleich(erwartetesBrett)); } + [Fact] + public void Set_BelegtesFeldBelegenTest() + { + // arrange + TicTacToeBrett brett = TestBrett(1); + TicTacToeBrett erwartetesBrett = TestBrett(1); + int pos = 0; + int wert = 1; + bool erwartetGesetzt = false; + + // act + bool erhaltenGesetzt = brett.Set(pos, wert); + + // assert + Assert.Equal(erwartetGesetzt, erhaltenGesetzt); + Assert.True(brett.Gleich(erwartetesBrett)); + } + [Fact] public void Gleich_LeereBretterGleichTest() { From 6c9fc338d29124685d6381b1a8e8ced94248bd5f Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Fri, 11 Feb 2022 23:39:05 +0100 Subject: [PATCH 12/34] =?UTF-8?q?TicTacToeBrett.Set=20gibt=20bei=20ung?= =?UTF-8?q?=C3=BCltigem=20Index=20false=20zur=C3=BCck=20und=20ver=C3=A4nde?= =?UTF-8?q?rt=20das=20Brett=20nicht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 11 +++++++++-- .../MiniGamesTests/TicTacToeBrettTest.cs | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 460e7f2..e0dfb2b 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -45,9 +45,16 @@ namespace MiniGames.Shared.Models { int x = pos / 3; int y = pos % 3; - - if (Felder[x, y] != -1) + + try + { + if (Felder[x, y] != -1) + return false; + } + catch (IndexOutOfRangeException e) + { return false; + } Felder[x, y] = wert; diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index ac787a9..3c70b96 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -62,6 +62,25 @@ namespace MiniGamesTests Assert.True(brett.Gleich(erwartetesBrett)); } + [Theory] + [InlineData(-1)] + [InlineData(9)] + public void Set_OutOfBoundsTest(int pos) + { + // arrange + TicTacToeBrett brett = new(); + TicTacToeBrett erwartetesBrett = new(); + int wert = 0; + bool erwartetGesetzt = false; + + // act + bool erhaltenGesetzt = brett.Set(pos, wert); + + // assert + Assert.Equal(erwartetGesetzt, erhaltenGesetzt); + Assert.True(brett.Gleich(erwartetesBrett)); + } + [Fact] public void Gleich_LeereBretterGleichTest() { From aa58e556ce61d2a2248f8b466af0354ef516f63b Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Fri, 11 Feb 2022 23:48:37 +0100 Subject: [PATCH 13/34] =?UTF-8?q?=C3=9Cberfl=C3=BCssige=20using-Statements?= =?UTF-8?q?=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs | 5 ----- BlazorSolution/MiniGamesTests/TicTacToeTest.cs | 9 +-------- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 3c70b96..f767525 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -1,9 +1,4 @@ using MiniGames.Shared.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using Xunit; namespace MiniGamesTests diff --git a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs index 71835ca..9b7e21d 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeTest.cs @@ -1,13 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using MiniGames.Shared.Models; using Xunit; -using MiniGames.Shared.Models; -using MiniGames.Client.ViewModel; - namespace MiniGamesTests { public class TicTacToeTest From 177a5f54d3e7840aed4f17fb4042fa62cadee9ba Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sat, 12 Feb 2022 00:02:14 +0100 Subject: [PATCH 14/34] Naiver TicTacToeBrett.Voll-Test --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 5 +++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index e0dfb2b..811c25b 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -60,5 +60,10 @@ namespace MiniGames.Shared.Models return true; } + + public bool Voll() + { + return false; + } } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index f767525..c688c91 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -135,5 +135,19 @@ namespace MiniGamesTests // assert Assert.Equal(erwartetGleich, erhaltenGleich); } + + [Fact] + public void Voll_LeeresBrettTest() + { + // arrange + TicTacToeBrett brett = TestBrett(); + bool erwartetVoll = false; + + // act + bool erhaltenVoll = brett.Voll(); + + // assert + Assert.Equal(erwartetVoll, erhaltenVoll); + } } } From a1129e542d637ad2194e3509774e0ae7ea84edfb Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sat, 12 Feb 2022 00:04:56 +0100 Subject: [PATCH 15/34] TicTacToeBrett.Voll erkennt volles Brett --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 13 ++++++++++++- .../MiniGamesTests/TicTacToeBrettTest.cs | 14 ++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 811c25b..a340ddd 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -63,7 +63,18 @@ namespace MiniGames.Shared.Models public bool Voll() { - return false; + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { + if (Felder[i, j] == -1) + { + return false; + } + } + } + + return true; } } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index c688c91..ac5cf3a 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -149,5 +149,19 @@ namespace MiniGamesTests // assert Assert.Equal(erwartetVoll, erhaltenVoll); } + + [Fact] + public void Voll_VollesBrettTest() + { + // arrange + TicTacToeBrett brett = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9); + bool erwartetVoll = true; + + // act + bool erhaltenVoll = brett.Voll(); + + // assert + Assert.Equal(erwartetVoll, erhaltenVoll); + } } } From c9a41078bb2eb0d1548721b6910c0111265b31d8 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sat, 12 Feb 2022 00:06:12 +0100 Subject: [PATCH 16/34] =?UTF-8?q?Zus=C3=A4tzlicher=20Test=20f=C3=BCr=20Tic?= =?UTF-8?q?TacToeBrett.Voll?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGamesTests/TicTacToeBrettTest.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index ac5cf3a..9b93890 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -163,5 +163,19 @@ namespace MiniGamesTests // assert Assert.Equal(erwartetVoll, erhaltenVoll); } + + [Fact] + public void Voll_FastVollesBrettTest() + { + // arrange + TicTacToeBrett brett = TestBrett(1, 2, 3, 4, 5, 6, 7, 8); + bool erwartetVoll = false; + + // act + bool erhaltenVoll = brett.Voll(); + + // assert + Assert.Equal(erwartetVoll, erhaltenVoll); + } } } From f6680a70ee197aa0d87686c3d194b2e7022583c2 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sat, 12 Feb 2022 00:12:18 +0100 Subject: [PATCH 17/34] =?UTF-8?q?Konstante=20TicTacToeBrett.LEER=20als=20W?= =?UTF-8?q?ert=20f=C3=BCr=20leere=20Felder=20angelegt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 12 +++++++----- .../MiniGamesTests/TicTacToeBrettTest.cs | 14 ++++++++++---- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index a340ddd..1930005 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -8,15 +8,17 @@ namespace MiniGames.Shared.Models { public class TicTacToeBrett { + public const int LEER = -1; + int[,] Felder; public TicTacToeBrett() { Felder = new[,] { - { -1, -1, -1 }, - { -1, -1, -1 }, - { -1, -1, -1 }, + { LEER, LEER, LEER }, + { LEER, LEER, LEER }, + { LEER, LEER, LEER }, }; } @@ -48,7 +50,7 @@ namespace MiniGames.Shared.Models try { - if (Felder[x, y] != -1) + if (Felder[x, y] != LEER) return false; } catch (IndexOutOfRangeException e) @@ -67,7 +69,7 @@ namespace MiniGames.Shared.Models { for (int j = 0; j < 3; j++) { - if (Felder[i, j] == -1) + if (Felder[i, j] == LEER) { return false; } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 9b93890..27d8f31 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -6,9 +6,9 @@ namespace MiniGamesTests public class TicTacToeBrettTest { public TicTacToeBrett TestBrett( - int a = -1, int b = -1, int c = -1, - int d = -1, int e = -1, int f = -1, - int g = -1, int h = -1, int i = -1 + int a = TicTacToeBrett.LEER, int b = TicTacToeBrett.LEER, int c = TicTacToeBrett.LEER, + int d = TicTacToeBrett.LEER, int e = TicTacToeBrett.LEER, int f = TicTacToeBrett.LEER, + int g = TicTacToeBrett.LEER, int h = TicTacToeBrett.LEER, int i = TicTacToeBrett.LEER ) { return new( @@ -26,7 +26,13 @@ namespace MiniGamesTests { // arrange TicTacToeBrett brett = new(); - TicTacToeBrett erwartetesBrett = TestBrett(-1, -1, -1, -1, 0); + TicTacToeBrett erwartetesBrett = TestBrett( + TicTacToeBrett.LEER, + TicTacToeBrett.LEER, + TicTacToeBrett.LEER, + TicTacToeBrett.LEER, + 0 + ); int pos = 4; int wert = 0; bool erwartetGesetzt = true; From 85e8abfefec50d744de164df9d51122a552db24c Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sat, 12 Feb 2022 00:25:57 +0100 Subject: [PATCH 18/34] Naiver TicTacToeBrett.Gewinner-Test --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 5 +++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 1930005..6edae49 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -78,5 +78,10 @@ namespace MiniGames.Shared.Models return true; } + + public int Gewinner() + { + return LEER; + } } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 27d8f31..1985467 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -183,5 +183,19 @@ namespace MiniGamesTests // assert Assert.Equal(erwartetVoll, erhaltenVoll); } + + [Fact] + public void Gewinner_LeeresFeldTest() + { + // arrange + TicTacToeBrett brett = TestBrett(); + int erwarteterGewinner = TicTacToeBrett.LEER; + + // act + int erhaltenerGewinner = brett.Gewinner(); + + // assert + Assert.Equal(erwarteterGewinner, erhaltenerGewinner); + } } } From 6edb20d9e4c82b39a4142d89e21ea20244ca94df Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sat, 12 Feb 2022 01:00:47 +0100 Subject: [PATCH 19/34] TicTacToeBrett.Gewinner erkennt erste volle vertikale Reihe --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 5 +++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 6edae49..46142a5 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -81,6 +81,11 @@ namespace MiniGames.Shared.Models public int Gewinner() { + if (Felder[0, 0] == Felder[0, 1] && Felder[0, 1] == Felder[0, 2] && Felder[0, 0] != LEER) + { + return Felder[0, 0]; + } + return LEER; } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 1985467..fd16442 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -197,5 +197,19 @@ namespace MiniGamesTests // assert Assert.Equal(erwarteterGewinner, erhaltenerGewinner); } + + [Fact] + public void Gewinner_VertikaleReihe1Test() + { + // arrange + TicTacToeBrett brett = TestBrett(0, 0, 0); + int erwarteterGewinner = 0; + + // act + int erhaltenerGewinner = brett.Gewinner(); + + // assert + Assert.Equal(erwarteterGewinner, erhaltenerGewinner); + } } } From 018054276f57e1d7f0957689aa84b40f076c6ec5 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sat, 12 Feb 2022 01:05:49 +0100 Subject: [PATCH 20/34] Refactored TicTacToeBrett.Set --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 46142a5..48a6800 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -47,20 +47,21 @@ namespace MiniGames.Shared.Models { int x = pos / 3; int y = pos % 3; - + try { - if (Felder[x, y] != LEER) - return false; + if (Felder[x, y] == LEER) + { + Felder[x, y] = wert; + return true; + } } catch (IndexOutOfRangeException e) { - return false; + // absichtlich leer } - Felder[x, y] = wert; - - return true; + return false; } public bool Voll() From 19fce551c09841ff6dcefc27ac9808e978c8c896 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sat, 12 Feb 2022 14:56:53 +0100 Subject: [PATCH 21/34] TicTacToeBrett.Gewinner erkennt zweite volle vertikale Reihe --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 5 +++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 48a6800..006dfe1 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -87,6 +87,11 @@ namespace MiniGames.Shared.Models return Felder[0, 0]; } + if (Felder[1, 0] == Felder[1, 1] && Felder[1, 1] == Felder[1, 2] && Felder[1, 0] != LEER) + { + return Felder[1, 0]; + } + return LEER; } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index fd16442..cdf6d57 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -211,5 +211,22 @@ namespace MiniGamesTests // assert Assert.Equal(erwarteterGewinner, erhaltenerGewinner); } + + [Fact] + public void Gewinner_VertikaleReihe2Test() + { + // arrange + TicTacToeBrett brett = TestBrett( + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + 0, 0, 0 + ); + int erwarteterGewinner = 0; + + // act + int erhaltenerGewinner = brett.Gewinner(); + + // assert + Assert.Equal(erwarteterGewinner, erhaltenerGewinner); + } } } From cab4394752d487fdb9fa5471fe109775f5321831 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sat, 12 Feb 2022 14:59:30 +0100 Subject: [PATCH 22/34] Refactored TicTacToeBrett.Gewinner --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 006dfe1..fdf616b 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -82,14 +82,12 @@ namespace MiniGames.Shared.Models public int Gewinner() { - if (Felder[0, 0] == Felder[0, 1] && Felder[0, 1] == Felder[0, 2] && Felder[0, 0] != LEER) - { - return Felder[0, 0]; - } - - if (Felder[1, 0] == Felder[1, 1] && Felder[1, 1] == Felder[1, 2] && Felder[1, 0] != LEER) + for (int i = 0; i < 3; i++) { - return Felder[1, 0]; + if (Felder[i, 0] == Felder[i, 1] && Felder[i, 1] == Felder[i, 2] && Felder[i, 0] != LEER) + { + return Felder[i, 0]; + } } return LEER; From 6084f780e9f2bdda2318c14a67b72f5e6f4ad925 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sat, 12 Feb 2022 15:03:10 +0100 Subject: [PATCH 23/34] =?UTF-8?q?TicTacToeBrett.Gewinner-Test=20f=C3=BCr?= =?UTF-8?q?=20dritte=20vertikale=20Reihe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGamesTests/TicTacToeBrettTest.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index cdf6d57..91b7aa6 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -228,5 +228,23 @@ namespace MiniGamesTests // assert Assert.Equal(erwarteterGewinner, erhaltenerGewinner); } + + [Fact] + public void Gewinner_VertikaleReihe3Test() + { + // arrange + TicTacToeBrett brett = TestBrett( + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + 1, 1, 1 + ); + int erwarteterGewinner = 1; + + // act + int erhaltenerGewinner = brett.Gewinner(); + + // assert + Assert.Equal(erwarteterGewinner, erhaltenerGewinner); + } } } From c4193a01d75a48e3a3d72909896c33259a2971f4 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sun, 13 Feb 2022 15:56:21 +0100 Subject: [PATCH 24/34] TicTacToeBrett.Gewinner erkennt die erste volle horizontale Reihe --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 5 +++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index fdf616b..a5cfcb8 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -90,6 +90,11 @@ namespace MiniGames.Shared.Models } } + if (Felder[0, 0] == Felder[1, 0] && Felder[1, 0] == Felder[2, 0] && Felder[0, 0] != LEER) + { + return Felder[0, 0]; + } + return LEER; } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 91b7aa6..b7f8f12 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -246,5 +246,23 @@ namespace MiniGamesTests // assert Assert.Equal(erwarteterGewinner, erhaltenerGewinner); } + + [Fact] + public void Gewinner_HorizontaleReihe1Test() + { + // arrange + TicTacToeBrett brett = TestBrett( + 2, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + 2, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + 2 + ); + int erwarteterGewinner = 2; + + // act + int erhaltenerGewinner = brett.Gewinner(); + + // assert + Assert.Equal(erwarteterGewinner, erhaltenerGewinner); + } } } From 46ac8d83d3e620d8e02b948eeb9ae7e229c30239 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sun, 13 Feb 2022 20:52:02 +0100 Subject: [PATCH 25/34] TicTacToeBrett.Gewinner erkennt die zweite volle horizontale Reihe --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 5 +++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index a5cfcb8..646f1a4 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -95,6 +95,11 @@ namespace MiniGames.Shared.Models return Felder[0, 0]; } + if (Felder[0, 1] == Felder[1, 1] && Felder[1, 1] == Felder[2, 1] && Felder[0, 1] != LEER) + { + return Felder[0, 1]; + } + return LEER; } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index b7f8f12..1995612 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -264,5 +264,23 @@ namespace MiniGamesTests // assert Assert.Equal(erwarteterGewinner, erhaltenerGewinner); } + + [Fact] + public void Gewinner_HorizontaleReihe2Test() + { + // arrange + TicTacToeBrett brett = TestBrett( + TicTacToeBrett.LEER, 3, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, 3, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, 3, TicTacToeBrett.LEER + ); + int erwarteterGewinner = 3; + + // act + int erhaltenerGewinner = brett.Gewinner(); + + // assert + Assert.Equal(erwarteterGewinner, erhaltenerGewinner); + } } } From 8e15fb5e7b6fe1ef14c01ce01cf9d14531816d6a Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sun, 13 Feb 2022 20:59:31 +0100 Subject: [PATCH 26/34] Refactored TicTacToeBrett.Gewinner --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 646f1a4..59468c8 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -80,24 +80,24 @@ namespace MiniGames.Shared.Models return true; } + protected bool dreiGleichGefuellt(int a, int b, int c) + { + return a != LEER && a == b && b == c; + } + public int Gewinner() { for (int i = 0; i < 3; i++) { - if (Felder[i, 0] == Felder[i, 1] && Felder[i, 1] == Felder[i, 2] && Felder[i, 0] != LEER) + if (dreiGleichGefuellt(Felder[i, 0], Felder[i, 1], Felder[i, 2])) { return Felder[i, 0]; } - } - - if (Felder[0, 0] == Felder[1, 0] && Felder[1, 0] == Felder[2, 0] && Felder[0, 0] != LEER) - { - return Felder[0, 0]; - } - if (Felder[0, 1] == Felder[1, 1] && Felder[1, 1] == Felder[2, 1] && Felder[0, 1] != LEER) - { - return Felder[0, 1]; + if (dreiGleichGefuellt(Felder[0, i], Felder[1, i], Felder[2, i])) + { + return Felder[0, i]; + } } return LEER; From 4446ebd2b8bfbf32e00da25e623e0551e4dc2317 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sun, 13 Feb 2022 21:16:50 +0100 Subject: [PATCH 27/34] =?UTF-8?q?TicTacToeBrett.Gewinner-Test=20f=C3=BCr?= =?UTF-8?q?=20dritte=20horizontale=20Reihe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGamesTests/TicTacToeBrettTest.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 1995612..dcfa40c 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -282,5 +282,23 @@ namespace MiniGamesTests // assert Assert.Equal(erwarteterGewinner, erhaltenerGewinner); } + + [Fact] + public void Gewinner_HorizontaleReihe3Test() + { + // arrange + TicTacToeBrett brett = TestBrett( + TicTacToeBrett.LEER, TicTacToeBrett.LEER, 4, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, 4, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, 4 + ); + int erwarteterGewinner = 4; + + // act + int erhaltenerGewinner = brett.Gewinner(); + + // assert + Assert.Equal(erwarteterGewinner, erhaltenerGewinner); + } } } From a991d260a0d440ac7ffd4b02cc2ea98ff015c9e0 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sun, 13 Feb 2022 22:34:53 +0100 Subject: [PATCH 28/34] TicTacToeBrett.Gewinner erkennt diagonale Reihen von oben links nach unten rechts --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 5 +++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 59468c8..4fe20d0 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -100,6 +100,11 @@ namespace MiniGames.Shared.Models } } + if (dreiGleichGefuellt(Felder[0, 0], Felder[1, 1], Felder[2, 2])) + { + return Felder[0, 0]; + } + return LEER; } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index dcfa40c..9351135 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -300,5 +300,23 @@ namespace MiniGamesTests // assert Assert.Equal(erwarteterGewinner, erhaltenerGewinner); } + + [Fact] + public void Gewinner_DiagonaleReiheNWzuSO() + { + // arrange + TicTacToeBrett brett = TestBrett( + 5, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, 5, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, 5 + ); + int erwarteterGewinner = 5; + + // act + int erhaltenerGewinner = brett.Gewinner(); + + // assert + Assert.Equal(erwarteterGewinner, erhaltenerGewinner); + } } } From d94ce408bdb31ff2ba8502fff1fceb9fac8618a7 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sun, 13 Feb 2022 22:37:50 +0100 Subject: [PATCH 29/34] TicTacToeBrett.Gewinner erkennt diagonale Reihen --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 5 +++++ .../MiniGamesTests/TicTacToeBrettTest.cs | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 4fe20d0..13a9c46 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -105,6 +105,11 @@ namespace MiniGames.Shared.Models return Felder[0, 0]; } + if (dreiGleichGefuellt(Felder[2, 0], Felder[1, 1], Felder[0, 2])) + { + return Felder[2, 0]; + } + return LEER; } } diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 9351135..b2d3422 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -318,5 +318,24 @@ namespace MiniGamesTests // assert Assert.Equal(erwarteterGewinner, erhaltenerGewinner); } + + + [Fact] + public void Gewinner_DiagonaleReiheNOzuSW() + { + // arrange + TicTacToeBrett brett = TestBrett( + TicTacToeBrett.LEER, TicTacToeBrett.LEER, 6, + TicTacToeBrett.LEER, 6, TicTacToeBrett.LEER, + 6, TicTacToeBrett.LEER, TicTacToeBrett.LEER + ); + int erwarteterGewinner = 6; + + // act + int erhaltenerGewinner = brett.Gewinner(); + + // assert + Assert.Equal(erwarteterGewinner, erhaltenerGewinner); + } } } From e321adba031f25bf784511652ce66bd4bd4041a3 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Sun, 13 Feb 2022 22:41:28 +0100 Subject: [PATCH 30/34] Refactored TicTacToeBrett.Gewinner --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index 13a9c46..d924368 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -89,25 +89,16 @@ namespace MiniGames.Shared.Models { for (int i = 0; i < 3; i++) { - if (dreiGleichGefuellt(Felder[i, 0], Felder[i, 1], Felder[i, 2])) - { - return Felder[i, 0]; - } - - if (dreiGleichGefuellt(Felder[0, i], Felder[1, i], Felder[2, i])) - { - return Felder[0, i]; - } - } - - if (dreiGleichGefuellt(Felder[0, 0], Felder[1, 1], Felder[2, 2])) - { - return Felder[0, 0]; + if (dreiGleichGefuellt(Felder[i, 0], Felder[i, 1], Felder[i, 2])) return Felder[i, 0]; + if (dreiGleichGefuellt(Felder[0, i], Felder[1, i], Felder[2, i])) return Felder[0, i]; } - if (dreiGleichGefuellt(Felder[2, 0], Felder[1, 1], Felder[0, 2])) + if ( + dreiGleichGefuellt(Felder[0, 0], Felder[1, 1], Felder[2, 2]) || + dreiGleichGefuellt(Felder[2, 0], Felder[1, 1], Felder[0, 2]) + ) { - return Felder[2, 0]; + return Felder[1, 1]; } return LEER; From ccdccd817bc37d453ee428aa2d8b2057eb08c4cb Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Mon, 14 Feb 2022 02:23:44 +0100 Subject: [PATCH 31/34] TicTacToeBrett.Gewinner-Tests zusammengefasst --- .../MiniGamesTests/TicTacToeBrettTest.cs | 186 ++++++------------ 1 file changed, 56 insertions(+), 130 deletions(-) diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index b2d3422..7aa4aa7 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -198,138 +198,64 @@ namespace MiniGamesTests Assert.Equal(erwarteterGewinner, erhaltenerGewinner); } - [Fact] - public void Gewinner_VertikaleReihe1Test() - { - // arrange - TicTacToeBrett brett = TestBrett(0, 0, 0); - int erwarteterGewinner = 0; - - // act - int erhaltenerGewinner = brett.Gewinner(); - - // assert - Assert.Equal(erwarteterGewinner, erhaltenerGewinner); - } - - [Fact] - public void Gewinner_VertikaleReihe2Test() - { - // arrange - TicTacToeBrett brett = TestBrett( - TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, - 0, 0, 0 - ); - int erwarteterGewinner = 0; - - // act - int erhaltenerGewinner = brett.Gewinner(); - - // assert - Assert.Equal(erwarteterGewinner, erhaltenerGewinner); - } - - [Fact] - public void Gewinner_VertikaleReihe3Test() - { - // arrange - TicTacToeBrett brett = TestBrett( - TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, - TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, - 1, 1, 1 - ); - int erwarteterGewinner = 1; - - // act - int erhaltenerGewinner = brett.Gewinner(); - - // assert - Assert.Equal(erwarteterGewinner, erhaltenerGewinner); - } - - [Fact] - public void Gewinner_HorizontaleReihe1Test() - { - // arrange - TicTacToeBrett brett = TestBrett( - 2, TicTacToeBrett.LEER, TicTacToeBrett.LEER, - 2, TicTacToeBrett.LEER, TicTacToeBrett.LEER, - 2 - ); - int erwarteterGewinner = 2; - - // act - int erhaltenerGewinner = brett.Gewinner(); - - // assert - Assert.Equal(erwarteterGewinner, erhaltenerGewinner); - } - - [Fact] - public void Gewinner_HorizontaleReihe2Test() - { - // arrange - TicTacToeBrett brett = TestBrett( - TicTacToeBrett.LEER, 3, TicTacToeBrett.LEER, - TicTacToeBrett.LEER, 3, TicTacToeBrett.LEER, - TicTacToeBrett.LEER, 3, TicTacToeBrett.LEER - ); - int erwarteterGewinner = 3; - - // act - int erhaltenerGewinner = brett.Gewinner(); - - // assert - Assert.Equal(erwarteterGewinner, erhaltenerGewinner); - } - - [Fact] - public void Gewinner_HorizontaleReihe3Test() - { - // arrange - TicTacToeBrett brett = TestBrett( - TicTacToeBrett.LEER, TicTacToeBrett.LEER, 4, - TicTacToeBrett.LEER, TicTacToeBrett.LEER, 4, - TicTacToeBrett.LEER, TicTacToeBrett.LEER, 4 - ); - int erwarteterGewinner = 4; - - // act - int erhaltenerGewinner = brett.Gewinner(); - - // assert - Assert.Equal(erwarteterGewinner, erhaltenerGewinner); - } - - [Fact] - public void Gewinner_DiagonaleReiheNWzuSO() - { - // arrange - TicTacToeBrett brett = TestBrett( - 5, TicTacToeBrett.LEER, TicTacToeBrett.LEER, - TicTacToeBrett.LEER, 5, TicTacToeBrett.LEER, - TicTacToeBrett.LEER, TicTacToeBrett.LEER, 5 - ); - int erwarteterGewinner = 5; - - // act - int erhaltenerGewinner = brett.Gewinner(); - - // assert - Assert.Equal(erwarteterGewinner, erhaltenerGewinner); - } - - - [Fact] - public void Gewinner_DiagonaleReiheNOzuSW() + [Theory] + // Vertikale Reihe 1 + [InlineData(0, + 0, 0, 0, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER + )] + // Vertikale Reihe 2 + [InlineData(1, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + 1, 1, 1, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER + )] + // Vertikale Reihe 3 + [InlineData(2, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + 2, 2, 2 + )] + // Horizontale Reihe 1 + [InlineData(3, + 3, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + 3, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + 3, TicTacToeBrett.LEER, TicTacToeBrett.LEER + )] + // Horizontale Reihe 2 + [InlineData(4, + TicTacToeBrett.LEER, 4, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, 4, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, 4, TicTacToeBrett.LEER + )] + // Horizontale Reihe 3 + [InlineData(5, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, 5, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, 5, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, 5 + )] + // Diagonale Reihe links oben nach rechts unten + [InlineData(6, + 6, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, 6, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, 6 + )] + // Diagonale Reihe rechts oben nach links unten + [InlineData(7, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, 7, + TicTacToeBrett.LEER, 7, TicTacToeBrett.LEER, + 7, TicTacToeBrett.LEER, TicTacToeBrett.LEER + )] + public void Gewinner_VolleReihen(int gewinner, + int a = TicTacToeBrett.LEER, int b = TicTacToeBrett.LEER, int c = TicTacToeBrett.LEER, + int d = TicTacToeBrett.LEER, int e = TicTacToeBrett.LEER, int f = TicTacToeBrett.LEER, + int g = TicTacToeBrett.LEER, int h = TicTacToeBrett.LEER, int i = TicTacToeBrett.LEER + ) { // arrange - TicTacToeBrett brett = TestBrett( - TicTacToeBrett.LEER, TicTacToeBrett.LEER, 6, - TicTacToeBrett.LEER, 6, TicTacToeBrett.LEER, - 6, TicTacToeBrett.LEER, TicTacToeBrett.LEER - ); - int erwarteterGewinner = 6; + TicTacToeBrett brett = TestBrett(a, b, c, d, e, f, g, h, i); + int erwarteterGewinner = gewinner; // act int erhaltenerGewinner = brett.Gewinner(); From 6197ce9640f7c969063cb1ee18a3a707834a8e76 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Mon, 14 Feb 2022 02:55:52 +0100 Subject: [PATCH 32/34] =?UTF-8?q?TicTacToeBrett-Konstruktor=20erzeugt=20ei?= =?UTF-8?q?genes=20Array=20mit=20richtiger=20Gr=C3=B6=C3=9Fe=20und=20kopie?= =?UTF-8?q?rt=20Werte=20des=20Parameters?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGames/Shared/Models/TicTacToeBrett.cs | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs index d924368..8f2ab97 100644 --- a/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs +++ b/BlazorSolution/MiniGames/Shared/Models/TicTacToeBrett.cs @@ -22,9 +22,29 @@ namespace MiniGames.Shared.Models }; } - public TicTacToeBrett(int[,] felder) + public TicTacToeBrett(int[,] werte) { - Felder = felder; + Felder = new int[3, 3]; + + if (werte == null) + { + werte = new int[0, 0]; + } + + for (int i = 0; i < Felder.GetLength(0); i++) + { + for (int j = 0; j < Felder.GetLength(1); j++) + { + if (i < werte.GetLength(0) && j < werte.GetLength(1)) + { + Felder[i, j] = werte[i, j]; + } + else + { + Felder[i, j] = LEER; + } + } + } } public bool Gleich(TicTacToeBrett anderes) From 535b5db7507ed1b5edf3b3429fff2abba2e56fcd Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Mon, 14 Feb 2022 02:57:26 +0100 Subject: [PATCH 33/34] "TicTacToeBrettTest.Gewinner_VolleReihen" in "TicTacToeBrettTest.Gewinner_VolleReihenTest" umbenannt --- BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 7aa4aa7..30e24c1 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -247,7 +247,7 @@ namespace MiniGamesTests TicTacToeBrett.LEER, 7, TicTacToeBrett.LEER, 7, TicTacToeBrett.LEER, TicTacToeBrett.LEER )] - public void Gewinner_VolleReihen(int gewinner, + public void Gewinner_VolleReihenTest(int gewinner, int a = TicTacToeBrett.LEER, int b = TicTacToeBrett.LEER, int c = TicTacToeBrett.LEER, int d = TicTacToeBrett.LEER, int e = TicTacToeBrett.LEER, int f = TicTacToeBrett.LEER, int g = TicTacToeBrett.LEER, int h = TicTacToeBrett.LEER, int i = TicTacToeBrett.LEER From f71d96b739c1fe1dcfa3f47730df6a5206b431e0 Mon Sep 17 00:00:00 2001 From: Felix Detig Date: Mon, 14 Feb 2022 03:07:15 +0100 Subject: [PATCH 34/34] =?UTF-8?q?TicTacToeBrett.Gewinner-Test=20f=C3=BCr?= =?UTF-8?q?=20nicht=20volle=20Reihen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MiniGamesTests/TicTacToeBrettTest.cs | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs index 30e24c1..36ea54a 100644 --- a/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs +++ b/BlazorSolution/MiniGamesTests/TicTacToeBrettTest.cs @@ -263,5 +263,43 @@ namespace MiniGamesTests // assert Assert.Equal(erwarteterGewinner, erhaltenerGewinner); } + + [Theory] + [InlineData( + 0, TicTacToeBrett.LEER, 0, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + 0, TicTacToeBrett.LEER, 0 + )] + [InlineData( + 1, 1, TicTacToeBrett.LEER, + 1, 1, TicTacToeBrett.LEER, + TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER + )] + [InlineData( + 2, TicTacToeBrett.LEER, TicTacToeBrett.LEER, + 2, TicTacToeBrett.LEER, 2, + TicTacToeBrett.LEER, 2, 2 + )] + [InlineData( + 1, 1, 2, + 1, 3, 2, + 2, 3, 3 + )] + public void Gewinner_NichtVolleReihenTest( + int a = TicTacToeBrett.LEER, int b = TicTacToeBrett.LEER, int c = TicTacToeBrett.LEER, + int d = TicTacToeBrett.LEER, int e = TicTacToeBrett.LEER, int f = TicTacToeBrett.LEER, + int g = TicTacToeBrett.LEER, int h = TicTacToeBrett.LEER, int i = TicTacToeBrett.LEER + ) + { + // arrange + TicTacToeBrett brett = TestBrett(a, b, c, d, e, f, g, h, i); + int erwarteterGewinner = TicTacToeBrett.LEER; + + // act + int erhaltenerGewinner = brett.Gewinner(); + + // assert + Assert.Equal(erwarteterGewinner, erhaltenerGewinner); + } } }