簡體   English   中英

如何初始化和使用數組

[英]How to initialize and use an array

我正在做一些 c# 作業,這些是說明:

創建一個名為 FunWithArrays 的新項目。

添加一個名為 Game 的類並確保它是公開的。 游戲應該有一個大小為 5 x 5 的公共二維字節數組,稱為 BingoCard。 BingoCard 應該在 Game 類的構造函數中初始化。 在 Game 類中還應該有一個名為 PlayerName 的公共字符串屬性。 上面提到的相同構造函數應該接收一個字符串來初始化玩家的名字。

回到 main 方法,創建一個大小為 3 的單維 Game 數組。使用名稱“Beth”、“Chris”和“Don”添加三個新游戲。 在 main 方法中添加一個 Random 對象。

將 Game 數組和 Random 對象傳遞給名為“InitilizeArray”的靜態方法。 使用 foreach 循環遍歷游戲。 在 foreach 循環中,使用嵌套的 for 循環為數組中的 25 個元素中的每一個分配一個隨機字節值。 (提示:使用類似 (byte)rand.next() 的方法讓 Random 對象返回一個字節。確保隨機字節范圍是 1 到 75。

然后,從 main 方法中,將游戲數組傳遞給名為“DisplayArray”的靜態方法。 然后像以前一樣使用 foreach 和 for 循環打印出每個玩家和那個玩家的賓果卡。 卡片應顯示在控制台中的 5 x 5 表格中。

到目前為止,我被困在第 3 段。

在第一段中,我創建了一個看起來正確的類:

public class Game
{
    public Game() { }

    public Game (string pN)
    {
        PlayerName = pN;
        byte[,] BingoCard = new byte[5, 5];
    }

    public string PlayerName { get; set; }
}

對於第二段,在我的主要方法中:

static void Main(string[] args)
{
    const int GameSize = 3;

    Random rand = new Random();
    Game[] gameArray = new Game[GameSize];

    Game game1 = new Game("Chris");
    Game game2 = new Game("Beth");
    Game game3 = new Game("Don");

    InitializeArray(gameArray[], rand);
}

我不確定我是否正確地“創造了三款新游戲”,但我認為是的。

現在我在第三段遇到了問題,我是否應該將每個新游戲(game1、game2、game3)傳遞給 gameArray,然后使用 foreach 循環遍歷每個游戲,例如:

foreach (var game in g)
{
    for (int row = 0; row < 5; row++)
    {
        for (int col = 0; col < 5; col++)
        {
            game[row, col] = (byte)r.Next();
        }
    }
}

我應該如何添加三個新游戲並初始化它們?

根據您的指示:

游戲應該有一個大小為 5 x 5 的公共二維字節數組,稱為 BingoCard。

但是在您的類中,您已經在構造函數中聲明了字節數組。 這意味着在創建類並調用構造函數時,會創建一個字節數組。 然后,在構造函數結束的下一行中,字節數組不再可用。

您應該做的是將其創建為公共屬性,就像您對PlayerName所做的一樣:

public class Game
{
    // Public properties
    public byte[,] BingoCard = new byte[5, 5];
    public string PlayerName { get; set; }

    // Constructors
    public Game() { }

    public Game(string pN)
    {
        PlayerName = pN;            
    }
}

現在您的程序將可以訪問它。


...創建一個大小為 3 的單維游戲數組。使用名稱“Beth”、“Chris”和“Don”添加三個新游戲

雖然您已經創建了 3 個游戲,但您還沒有將它們添加到數組中。 您可以使用索引來做到這一點:

Game[] gameArray = new Game[GameSize];

gameArray[0] = new Game("Chris");
gameArray[1] = new Game("Beth");
gameArray[2] = new Game("Don");

現在您可以遍歷游戲數組並可以引用game.BingoCard將項目添加到每個Game對象的多維數組中:

foreach (var game in gameArray)
{
    for (int row = 0; row < 5; row++)
    {
        for (int col = 0; col < 5; col++)
        {
            game.BingoCard[row, col] = (byte)r.Next();
        }
    }
}

但是你還有一些工作要做......

確保隨機字節范圍是 1 到 75。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM