I'm currently trying to improve my coding skills, so I'm trying to code a Tic Tac Toe game. At one point a "win check" is needed.
I'm using this code to check:
public void CheckWin(States state)
{
if(fieldA1.GetState == state && fieldA2.GetState == state && fieldA3.GetState == state)
ReportWin(currentPlayer);
else if(fieldB1.GetState == state && fieldB2.GetState == state && fieldB3.GetState == state)
ReportWin(currentPlayer);
else if (fieldC1.GetState == state && fieldC2.GetState == state && fieldC3.GetState == state)
ReportWin(currentPlayer);
else if (fieldA1.GetState == state && fieldB1.GetState == state && fieldC1.GetState == state)
ReportWin(currentPlayer);
else if (fieldA2.GetState == state && fieldB2.GetState == state && fieldC2.GetState == state)
ReportWin(currentPlayer);
else if (fieldA2.GetState == state && fieldB2.GetState == state && fieldC2.GetState == state)
ReportWin(currentPlayer);
else if (fieldA3.GetState == state && fieldB3.GetState == state && fieldC3.GetState == state)
ReportWin(currentPlayer);
else if (fieldA1.GetState == state && fieldB2.GetState == state && fieldC3.GetState == state)
ReportWin(currentPlayer);
else if (fieldA3.GetState == state && fieldB2.GetState == state && fieldC1.GetState == state)
ReportWin(currentPlayer);
else
PlayerSwitch();
}
This code looks very unclean to me. Is there a better way to handle these if
instructions?