c# - 如何在 C# 中检查和更改数组中的值?
问题描述
我正在做一个非常简单的井字游戏项目,我在其中检查用户输入是否在数组中(查找从 1 到 9 的整数),如果不是,我想更改该用户输入的索引。下面是代码,不知道我做错了什么。CallSquare() 返回一个 int。
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,它只会更改后续输入的第一个索引)。请帮忙?
编辑:我想做的是记录已播放的数字。我认为这样的阵列是要走的路,但如果你有更好的解决方案,我正在听。
解决方案
我认为,你最好使用 a 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++;
}
推荐阅读
- expo-web - 如何在世博会的网络浏览器中使用 sessionStorage
- c++ - 我从 std::set 得到 const_iterator 而不是迭代器
- ios - 如何在 iOS 中播放音频样本
- python - MQTT 客户端仅在重新启动代理后连接
- dxf - 如何获取 DXF 文件中每个实体的图纸空间?
- javascript - 下一个.js。docker 镜像所需的文件
- java - DROOLS- 6.5 版与 java 8 的兼容性?
- javascript - switch case 直接到 end case
- javascript - 合并对象以获得数组中的平均值
- css - 如何在 JavaFX 中删除 TableView 标头中的边框