Определить состояние выигрыша игры в AS3 - PullRequest
0 голосов
/ 22 мая 2011

Я пытаюсь придумать чистую функцию, которая будет выполнять проверку 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;
        }

    }

1 Ответ

0 голосов
/ 22 мая 2012

Я фактически закончил тем, что делал что-то довольно простое ... Преобразовал массив сетки в строку, затем искал 4 подряд ... Только хитрая часть получала правильный массив для диагональных возможностей, но я понял, что это тоже сработало ,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...