如何在 C# 中检查和更改数组中的值?
How to check and change the values in an array in C#?
我正在做一个非常简单的井字游戏项目,我在其中检查用户输入是否在数组中(查找 1 到 9 之间的整数),如果不在,我想将索引更改为该用户输入。下面是代码,不知道我做错了什么。 CallSquare() returns 一个整数。
int [] numbersPlayed = {0,0,0,0,0,0,0,0,0};
int callResult;
int totalPlayed = 0;
while (totalPlayed != 10)
{
callResult = CallSquare();
foreach (int i in numbersPlayed)
{
if (numbersPlayed.Contains(callResult))
{
Console.WriteLine("\n\nError, number already in array");
break;
}
else
{
numbersPlayed.SetValue(callResult, i);
}
}
totalPlayed++;
}
基本上,即使我输入了 1 到 9 之间的整数,它在输入后所做的就是给我上面的错误消息,然后,只更改了我在第一个输入中输入的索引号中的值 (例如,如果我在第一个输入中输入 1,它只会更改后续输入中的第一个索引)。请帮忙?
编辑:我想做的是记录已播放的号码。我认为这样的数组是可行的方法,但如果您有更好的解决方案,我正在倾听。
我认为,你最好使用 List
:
List<int> numbersPlayed = new List<int>();
int callResult;
int totalPlayed = 0;
while (totalPlayed < 10)
{
callResult = CallSquare();
if( numbersPlayed.Contains(callResult) )
{
Console.WriteLine("\n\nError, number already in array");
}
else
{
numbersPlayed.Add(callResult);
}
totalPlayed++;
}
我正在做一个非常简单的井字游戏项目,我在其中检查用户输入是否在数组中(查找 1 到 9 之间的整数),如果不在,我想将索引更改为该用户输入。下面是代码,不知道我做错了什么。 CallSquare() returns 一个整数。
int [] numbersPlayed = {0,0,0,0,0,0,0,0,0};
int callResult;
int totalPlayed = 0;
while (totalPlayed != 10)
{
callResult = CallSquare();
foreach (int i in numbersPlayed)
{
if (numbersPlayed.Contains(callResult))
{
Console.WriteLine("\n\nError, number already in array");
break;
}
else
{
numbersPlayed.SetValue(callResult, i);
}
}
totalPlayed++;
}
基本上,即使我输入了 1 到 9 之间的整数,它在输入后所做的就是给我上面的错误消息,然后,只更改了我在第一个输入中输入的索引号中的值 (例如,如果我在第一个输入中输入 1,它只会更改后续输入中的第一个索引)。请帮忙?
编辑:我想做的是记录已播放的号码。我认为这样的数组是可行的方法,但如果您有更好的解决方案,我正在倾听。
我认为,你最好使用 List
:
List<int> numbersPlayed = new List<int>();
int callResult;
int totalPlayed = 0;
while (totalPlayed < 10)
{
callResult = CallSquare();
if( numbersPlayed.Contains(callResult) )
{
Console.WriteLine("\n\nError, number already in array");
}
else
{
numbersPlayed.Add(callResult);
}
totalPlayed++;
}