Fixed some minor issues
Signed-off-by: Pablu23 <43807157+Pablu23@users.noreply.github.com>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user