jamesjlinden
4/11/2016 - 2:15 AM

Moves_any_dimension.cs

public class Moves : MonoBehaviour
{
    List<int> rows = new List<int>(boardSize);
    List<int> cols = new List<int>(boardSize);
    int diag0;
    int diag1; 

    public void IncrementMove(Vector2 move)
    {
        ++cols[move.x];
        ++rows[move.y];

        // Diagonals
        if (move.x == move.y)
            ++diag0;

        // x = 2, y = 0
        // x = 1, y = 1
        // x = 0, y = 2
        if (move.y == (boardSize - 1) - move.x)
            ++diag1;
    }

    public bool CheckForThree()
    {
        foreach (int currRowCount in rows)
        {
            if (currRowCount == boardSize)
                return true;
        }

        foreach (int currColCount in cols)
        {
            if (currColCount == boardSize)
                return true;
        }

        return diag0 >= boardSize || diag1 >= boardSize;
    }
}