我正在做一些C#作业,这些是指令:
创建一个名为FunWithArrays的新项目。
添加一个名为Game的类,并确保它是公共的。游戏应该有一个 尺寸为5 x 5的公共二维字节数组,称为BingoCard。 BingoCard应该在Game类的构造函数中初始化。 还应该在 游戏类。与上述相同的构造函数应收到一个 字符串来初始化玩家的名字。
在main方法中返回创建一个尺寸为一维的游戏数组 3.使用名称“ Beth”,“ Chris”和“ Don”添加三个新游戏。在主方法中添加一个Random对象。
将Game数组和Random对象传递给称为 “ InitilizeArray。”使用foreach循环遍历游戏。 在foreachloop内部,使用嵌套的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();
}
}
}
我应该如何添加三个新游戏并对其进行初始化?
答案 0 :(得分:1)
根据您的指示:
游戏应该具有大小为5 x 5的 public 二维字节数组,称为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。