привет, я новичок в программировании и в настоящий момент разрабатываю клон игровых линейных кораблей. Мне нужно реализовать флот из 5 кораблей. это то, что я сделал до сих пор:C# Battleships Class/Structure
класса Cell имеет статус ячейки таблицы:
public class Cell
{
// class for holding cell status information
public enum cellState
{
WATER,
SCAN,
SHIPUNIT,
SHOT,
HIT
}
public Cell()
{
currentCell = cellState.WATER;
}
public Cell(cellState CellState)
{
currentCell = CellState;
}
public cellState currentCell { get; set; }
}
класс GRIDUNIT держит ячейки таблицы информация:
public class GridUnit
{
public GridUnit()
{
Column = 0;
Row = 0;
}
public GridUnit(int column, int row)
{
Column = column;
Row = row;
}
public int Column { get; set; }
public int Row { get; set; }
}
наконец класс Shipunit содержит как выше классов и выступает в качестве обертки для информации о состоянии отдельной ячейки:
public class ShipUnit
{
public GridUnit gridUnit = new GridUnit();
public Cell cell = new Cell(Cell.cellState.SHIPUNIT);
}
at в тот момент, я имею в виду реализации информации флота в Jagged массиве, как это:
ShipUnit[][] Fleet = new ShipUnit[][]
{
new ShipUnit[] {ShipUnit,ShipUnit,ShipUnit,ShipUnit,ShipUnit},
new ShipUnit[] {ShipUnit,ShipUnit,ShipUnit,ShipUnit},
new ShipUnit[] {ShipUnit,ShipUnit,ShipUnit}
new ShipUnit[] {ShipUnit,ShipUnit,ShipUnit}
new ShipUnit[] {ShipUnit,ShipUnit}
};
я понимаю, что последний бит кода не работает. это только для представления идеи.
, но проблема в том, что мне нужно поле, в котором указывается, какой тип корабля будет отображаться в каждой строке массива jagged, и я не думаю, что это удобно для указания этой информации в каждой информации о ячейке.
, поэтому мне хотелось бы получить некоторые идеи по реализации этой проблемы от вас.
спасибо.
Привет, у вас все еще есть код? Я делаю эту игру для школы, и мне нужна помощь в размещении лодок на случайном случайном компьютере. – GroundZero
не жалко, мой код - игрок против игрока и не связан с компьютерным противником. – iTEgg
Жаль, что я застрял. Мне нужно создать поле, в соответствии с выбранным уровнем (3 уровня, у каждого из них больше полей и больше лодок), и пользователю нужно стрелять по полям, чтобы попытаться найти все случайно размещенные лодки. Лодки не могут касаться друг друга и не могут лежать рядом друг с другом – GroundZero