我是C#和OOP的新手,正在尝试各种游戏。我的问题是我的游戏有一个Board类,并带有一个构造器,该构造器使用2D数组的“ tiles”构成一个board。我的Tile类具有一个构造函数,该构造函数具有x坐标,y坐标和bool来检查其是否被占用。这样的想法是,玩家只有在未处于占用状态时,才可以将其移动到瓷砖上。
我的问题是让我的董事会保留实际的瓷砖。我首先创建板(作为一个空的2D瓷砖阵列)。然后,我循环执行两个“ for”循环以创建图块(为它们提供x和y坐标以及已占用的状态)。我想将这些磁贴添加到板上的正确位置,但是我无法访问它。有提示吗?
这不是家庭作业,而是一个个人项目,可以帮助我改善自己。任何建议将不胜感激。
根据要求,下面是代码的相关部分:
public class Board
{
public Tile[,] board;
public const int DIMENSION = 8;
public Board()
{
board = new Tile [DIMENSION, DIMENSION];
}
}
在GameController类中,我有:
public void GameLoop()
{
Board board = new Board();
Board tiledBoard = AssignTilesToCoords(board);
}
public Board AssignTilesToCoords(Board board)
{
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
Tile tile = new Tile(i, j, false);
//I'm assuming here I need to assign, otherwise board isn't actually modified at all
}
}
return board;
}
答案 0 :(得分:1)
您非常亲近。将Tile [,]板重命名为tile(这更有意义)。然后 :
public Board AssignTilesToCoords(Board board)
{
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
Tile tile = new Tile(i, j, false);
board.tiles[i, j] = tile;
}
}
return board;
}