有关设置草稿/棋子游戏的建议

时间:2018-09-23 10:29:55

标签: c#

我是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;
}

1 个答案:

答案 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;
    }