C# 自动生成tic-tac-toe
这是有效的C# 自动生成tic-tac-toe,c#,C#,这是有效的 int index = 0; for (int i = 0; i != ROWS; i++) { for (int n = 0; n != COLS; n++) { if (gameArray[i, n] == 1) { labels[index].Text = "X";
int index = 0;
for (int i = 0; i != ROWS; i++)
{
for (int n = 0; n != COLS; n++)
{
if (gameArray[i, n] == 1)
{
labels[index].Text = "X";
}
else if (gameArray[i, n] == 0)
{
labels[index].Text = "O";
}
index += 1;
}
}
我正在用c#做一个自动的井字游戏。我只能让标签显示所有X或所有O,它从不在所有9个标签中混合其中一个或另一个。下面是我如何得到x或o值的
// initialize our game array
for (int i = 0; i != ROWS; i++)
{
for (int j = 0; j != COLS; j++)
{
gameArray[i, j] = rand.Next(0, 2);
}
}
// Add the x's and o's to our labels
foreach (int item in gameArray)
{
foreach (Label myLabel in labels)
{
if (item == 1)
myLabel.Text = "X";
if (item == 0)
myLabel.Text = "O";
}
}
检查每个项目,然后根据该项目为每个标签设置X或O 所以它要么是全X要么全O取决于最后一项是什么 您需要一种将标签与项目关联的方法。如果您知道两个数组的长度都是9
for(int c=0; c<COLS c++)
{
for(r=0; r<ROWS; r++)
{
if(gameArray[r,c] == 1)
{
labels[r*COLS+c].Text = "X";
}
else if(gameArray[r,c] == 0)
{
labels[r*COLS+c].Text = "O";
}
}
}
for(int c=0;c您将检查每个项目,然后针对每个标签,您将基于该项目设置X或O
所以它要么是全X要么全O取决于最后一项是什么
您需要一种将标签与项目关联的方法。如果您知道两个数组的长度都是9
for(int c=0; c<COLS c++)
{
for(r=0; r<ROWS; r++)
{
if(gameArray[r,c] == 1)
{
labels[r*COLS+c].Text = "X";
}
else if(gameArray[r,c] == 0)
{
labels[r*COLS+c].Text = "O";
}
}
}
用于(int c=0;c生成速度太快,它仅对随机数使用同一种子。每次尝试生成数字时,都生成一个新的rand种子实例。生成速度太快,它仅对随机数使用同一种子。每次尝试生成数字时,都生成一个新的rand种子实例r、 鉴于标签也是一个二维数组,这应该是可行的:
for (int i = 0; i != ROWS; i++)
{
for (int j = 0; j != COLS; j++)
{
var item = rand.Next(0, 2);
gameArray[i, j] = item;
var myLabel = labels[i,j];
if (item == 1)
myLabel.Text = "X";
if(item == 0)
myLabel.Text = "O";
}
}
如果标签为一维替换:
var myLabel = labels[i,j];
与:
考虑到标签也是二维数组,这应该是可行的:
for (int i = 0; i != ROWS; i++)
{
for (int j = 0; j != COLS; j++)
{
var item = rand.Next(0, 2);
gameArray[i, j] = item;
var myLabel = labels[i,j];
if (item == 1)
myLabel.Text = "X";
if(item == 0)
myLabel.Text = "O";
}
}
如果标签为一维替换:
var myLabel = labels[i,j];
与:
这是家庭作业吗?他们教过你如何使用调试器了吗?不要在标题中添加已解决的
-只需在复选框中标记帮助你的答案!这是家庭作业吗?他们教过你如何使用调试器了吗?不要在标题中添加已解决的
-只需在复选框中标记帮助你的答案!此外,你还可以在同一个循环中初始化数组并设置相应标签的值。gameArray是一个多维数组。不知道标签的视觉效果如何,可能需要调整迭代维度的方式以匹配标签。他的开场白是正确的,并且是问题的根源,不管他的示例是什么e、 除此之外,如果gameArray是二维的,为什么不将标签设为二维,以使关联更具逻辑性?此外,您还可以在同一循环中初始化数组并设置相应标签的值。gameArray是一个多维数组。不知道标签在视觉上是如何完成的,可能需要调整您的设置方式无论他的例子如何,他的开场白都是正确的,也是问题的根源。此外,如果gameArray是二维的,为什么不将标签设为二维以使关联更具逻辑性?