Требуется помощь при программировании средства выбора / проверки местоположения линкора

Я пытаюсь разработать одностороннюю игру «Морской бой», и у меня почти все настроено. Мне нужно только включить массив, который в настоящее время содержит объекты 5, Ships. Класс, который я создал для каждого корабля, называется Ships.java. Раньше у меня были проблемы с инициализацией массива, но это было решено.

Проблема возникает, когда я пытаюсь вытянуть длину корабля (2, 3, 4 или 5) из индекса в массиве. Я не уверен, как концептуально подходить к размещению кораблей.

Мне кажется, я перепробовал все комбинации do-while, циклов for и операторов if. Даже выключатель пробовал.

Цель состоит в том, чтобы компьютер выбирал позиции для пяти кораблей и устанавливал каждую ячейку в сетке (ROWSxCOLS) равной NC_SHIP (не щелкнул, плюс корабль). Проблема заключается в том, чтобы заставить его проверять положение ячеек, смежных со случайным местом на сетке. Также необходимо проверить, подходит ли рассматриваемый корабль (извлечение из кораблей [i] .getShipLength ()).

Вот код, который у меня есть:

int shipsPlaced = 0;

    for (int i = 0; i < ships.length; i++)
    {
        boolean shipPlaced = false;

        do
        {
            int randomRow = (int)(Math.random()*ROWS);
            int randomCol = (int)(Math.random()*COLS);
            int p = 0;

            if (randomRow - ships[p].getShipLength() >= 0 && gameBoard[(randomRow - p)][randomCol] == NC_EMPTY)
            {
                for (int x = 0; x < ships[x].getShipLength(); x++)
                {
                    gameBoard[(randomRow - x)][randomCol] = NC_SHIP;
                    shipsPlaced = shipsPlaced + 1;
                    if (x == ships[x].getShipLength())
                    {
                        shipPlaced = true;
                        p = p + 1;
                    }
                }
            }
        }while (shipPlaced == false);

    }

Все было инициализировано и установлено, если оно не отображается Вот. Проблема заключается в математике / логике, используемой для размещения кораблей в «случайных» местах.

6
задан Tim Cooper 11 April 2011 в 13:45
поделиться