[英]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.