diff --git a/TicTacToe/Players/AdvancedAiPlayer.cs b/TicTacToe/Players/AdvancedAiPlayer.cs index 97430da..fd4b673 100644 --- a/TicTacToe/Players/AdvancedAiPlayer.cs +++ b/TicTacToe/Players/AdvancedAiPlayer.cs @@ -26,11 +26,11 @@ namespace TicTacToe.Players for (int i = 0; i < 9; i++) { - if (b._fields[i].State == FieldState.Empty) + if (b.Fields[i].State == FieldState.Empty) { - b._fields[i].State = Symbol; + b.Fields[i].State = Symbol; int val = MiniMax(b, -1, _enemyFieldState); - b._fields[i].State = FieldState.Empty; + b.Fields[i].State = FieldState.Empty; if (Symbol == FieldState.PlayerX && val > bestVal) { bestMove = i; @@ -58,11 +58,11 @@ namespace TicTacToe.Players int maxEval = int.MinValue; for (int i = 0; i < 9; i++) { - if (b._fields[i].State == FieldState.Empty) + if (b.Fields[i].State == FieldState.Empty) { - b._fields[i].State = FieldState.PlayerX; + b.Fields[i].State = FieldState.PlayerX; int eval = MiniMax(b, depth - 1, FieldState.PlayerO); - b._fields[i].State = FieldState.Empty; + b.Fields[i].State = FieldState.Empty; maxEval = Math.Max(maxEval, eval); } } @@ -73,11 +73,11 @@ namespace TicTacToe.Players int minEval = int.MaxValue; for (int i = 0; i < 9; i++) { - if (b._fields[i].State == FieldState.Empty) + if (b.Fields[i].State == FieldState.Empty) { - b._fields[i].State = FieldState.PlayerO; + b.Fields[i].State = FieldState.PlayerO; int eval = MiniMax(b, depth - 1, FieldState.PlayerX); - b._fields[i].State = FieldState.Empty; + b.Fields[i].State = FieldState.Empty; minEval = Math.Min(minEval, eval); } } diff --git a/TicTacToe/TicTacToe.cs b/TicTacToe/TicTacToe.cs index 0d8efc3..2571f13 100644 --- a/TicTacToe/TicTacToe.cs +++ b/TicTacToe/TicTacToe.cs @@ -68,7 +68,7 @@ namespace TicTacToe { for (int i = 0; i < 2; i++) { - bool placed = true; + bool placed; do { placed = _board.TryPlace(Players[i].MakeMove(_board), Players[i], round); diff --git a/TicTacToe/TicTacToeBoard.cs b/TicTacToe/TicTacToeBoard.cs index 0b46cc4..563b68c 100644 --- a/TicTacToe/TicTacToeBoard.cs +++ b/TicTacToe/TicTacToeBoard.cs @@ -1,19 +1,18 @@ using System; using System.Collections.Generic; -using System.Linq; using TicTacToe.Players; namespace TicTacToe { public class TicTacToeBoard { - public Field[] _fields = new Field[9]; + public Field[] Fields = new Field[9]; public TicTacToeBoard() { - for (int i = 0; i < _fields.Length; i++) + for (int i = 0; i < Fields.Length; i++) { - _fields[i] = new Field(Convert.ToChar((i+1).ToString())); + Fields[i] = new Field(Convert.ToChar((i+1).ToString())); } } @@ -21,33 +20,33 @@ namespace TicTacToe { Console.Clear(); Console.WriteLine( - $"{_fields[0].Symbol} | " + - $"{_fields[1].Symbol} | " + - $"{_fields[2].Symbol}\n--------\n" + - $"{_fields[3].Symbol} | " + - $"{_fields[4].Symbol} | " + - $"{_fields[5].Symbol}\n--------\n" + - $"{_fields[6].Symbol} | " + - $"{_fields[7].Symbol} | " + - $"{_fields[8].Symbol}"); + $"{Fields[0].Symbol} | " + + $"{Fields[1].Symbol} | " + + $"{Fields[2].Symbol}\n--------\n" + + $"{Fields[3].Symbol} | " + + $"{Fields[4].Symbol} | " + + $"{Fields[5].Symbol}\n--------\n" + + $"{Fields[6].Symbol} | " + + $"{Fields[7].Symbol} | " + + $"{Fields[8].Symbol}"); } public bool TryPlace(int pos, Player player, int round) { if (pos < 0 || pos > 9) return false; - if (_fields[pos].State != FieldState.Empty) return false; + if (Fields[pos].State != FieldState.Empty) return false; switch (player.Symbol) { case FieldState.PlayerX: - _fields[pos].State = FieldState.PlayerX; - _fields[pos].Symbol = 'X'; - _fields[pos].Round = round; + Fields[pos].State = FieldState.PlayerX; + Fields[pos].Symbol = 'X'; + Fields[pos].Round = round; break; case FieldState.PlayerO: - _fields[pos].State = FieldState.PlayerO; - _fields[pos].Symbol = 'O'; - _fields[pos].Round = round; + Fields[pos].State = FieldState.PlayerO; + Fields[pos].Symbol = 'O'; + Fields[pos].Round = round; break; default: throw new Exception("Player Symbol was not recognised"); @@ -58,14 +57,14 @@ namespace TicTacToe public int[] GetBoardHistory() { - int[] history = new int[_fields.Length]; + int[] history = new int[Fields.Length]; for (int i = 0; i < history.Length; i++) { history[i] = -1; } int index = 0; - foreach (var field in _fields) + foreach (var field in Fields) { if (field.Round >= 0 && field.Round <= history.Length) { @@ -81,7 +80,7 @@ namespace TicTacToe { //return !_fields.Any(x => x.State == FieldState.Empty); bool isBoardFull = true; - foreach (var field in _fields) + foreach (var field in Fields) { if (field.State == FieldState.Empty) { @@ -97,12 +96,12 @@ namespace TicTacToe winner = FieldState.Empty; for (int i = 0; i < 3; i++) { - FieldState first = _fields[i * 3].State; + FieldState first = Fields[i * 3].State; winner = first; if (first == FieldState.Empty) continue; for (int j = 0; j < 3; j++) { - if (_fields[i * 3 + j].State == first) + if (Fields[i * 3 + j].State == first) { if (j == 2) { @@ -124,12 +123,12 @@ namespace TicTacToe winner = FieldState.Empty; for (int i = 0; i < 3; i++) { - FieldState first = _fields[i].State; + FieldState first = Fields[i].State; winner = first; if (first == FieldState.Empty) continue; for (int j = 0; j < 3; j++) { - if (_fields[j * 3 + i].State == first) + if (Fields[j * 3 + i].State == first) { if (j == 2) { @@ -148,10 +147,10 @@ namespace TicTacToe private bool Diagonal(out FieldState winner) { - winner = _fields[4].State; - return _fields[4].State != FieldState.Empty && - (_fields[0].State == _fields[4].State && _fields[4].State == _fields[8].State || - _fields[2].State == _fields[4].State && _fields[4].State == _fields[6].State); + winner = Fields[4].State; + return Fields[4].State != FieldState.Empty && + (Fields[0].State == Fields[4].State && Fields[4].State == Fields[8].State || + Fields[2].State == Fields[4].State && Fields[4].State == Fields[6].State); } public bool IsGameFinished(out FieldState winner) @@ -180,7 +179,7 @@ namespace TicTacToe { var output = new FieldState[9]; int index = 0; - foreach (var field in _fields) + foreach (var field in Fields) { output[index] = field.State; index++; @@ -202,7 +201,7 @@ namespace TicTacToe { for (int i = 0; i < 9; i++) { - _fields[i] = fields[i]; + Fields[i] = fields[i]; } } }