私は戦艦に取り組んでおり、2D配列を使用して、そのようにグリッド配列内に番号で船(表示)を配置しています。
/// Places the ships in a sequence on the grid
/// </summary>
/// <param name="ship"></param>
public static void PlaceShips(Ship ship)
{
Random rnd1 = new Random();
Random rnd2 = new Random();
if (ship.Orientation == "h")
{
//int r = rnd1.Next(_grid.GetLength(0));
//int c = rnd2.Next(_grid.GetLength(1));
int r = 0;
int c = 2;
for (int i = 0; i < ship.Values.Length; i++)
{
_grid[r++, c] = ship.Values[i];
}
}
else if (ship.Orientation == "v")
{
//int r = rnd1.Next(_grid.GetLength(0));
//int c = rnd2.Next(_grid.GetLength(1));
int r = 3;
int c = 4;
for (int i = 0; i < ship.Values.Length; i++)
{
_grid[r, c++] = ship.Values[i];
}
}
ランダムな方法を使用して座標を設定したいのですが、配列の境界をチェックし、船を配列内に保持することに関しては、私の計算はオフです。誰か助けてもらえますか?とても有難い。船の長さで改造し、残りが船の長さよりも大きいかどうかを確認する必要があると思っていますが、コードに入れるのに苦労しています。