Я пытаюсь придумать чистую функцию, которая будет выполнять проверку 2D-массива, чтобы проверить, произошел ли выигрыш в игре ConnectFour.Я пытаюсь проработать логику, но мой мозг сейчас швейцарский сыр.Вот что я имею для проверки горизонтальной победы.Мне кажется, что должен быть способ упорядочить этот блок, чтобы он работал во всех возможных направлениях.
private function checkForHorizontalWin(column:uint, row:uint, grid:Array):Boolean
{
var player:uint = grid[column][row];
var counter:uint = 1;
for(var i:uint = Math.min(0, uint(column-1)); i>=0; i--)
{
if(!grid[i][row] || grid[i][row] != player)
{
break;
}
counter++;
}
for(var j:uint = column+1; j<_columns; j++)
{
if(!grid[j][row] || grid[j][row] != player)
{
break;
}
counter++;
}
if(counter >=4)
{
return true;
}
else
{
return false;
}
}