我正在学习C#,我正在从头开始构建一个刽子手游戏作为我的第一个项目之一。
除了用正确猜到的字母替换隐藏字的破折号的部分外,一切都有效。
例如:在您猜测G,E和A之后,-----成为G-EA。
我有一个for循环,从逻辑上看它似乎可以完成这项工作,除了我不能将==运算符用于字符串或字符。
for (int i = 0; i <= answer.Length; i++) //answer is a string "theword"
{
if (answer[i] == passMe) //passMe is "A" for example
{
hiddenWord = hiddenWord.Remove(i, 1);
hiddenWord = hiddenWord.Insert(i, passMe);
}
}
我试图找到一个好的解决方案。大多数人建议使用我尚未学习的正则表达式或其他命令,因此不完全了解如何实现。
我已经尝试将两者转换为char格式,希望能解决它,但到目前为止还没有运气。提前感谢您的帮助。
答案 0 :(得分:2)
如果passMe
只是一个字符串,那么
if (answer[i] == passMe[0])
通过这种方式,您可以将第i个位置的角色与用户输入的第一个位置的角色进行比较
您的代码中也存在严重错误。 你的循环一个接一个,将其改为
for (int i = 0; i < answer.Length; i++)
NET中的数组从索引零开始,并且可能的最大索引值总是小于数组的长度。
答案 1 :(得分:0)
answer [i]指的是一个字符,passMe是一个单字符串。 (不是一个角色)
试试这个
for (int i = 0; i <= answer.Length; i++) //answer is a string "theword"
{
if (answer[i] == passMe[0]) //passMe is "A" for example
{
hiddenWord = hiddenWord.Remove(i, 1);
hiddenWord = hiddenWord.Insert(i, passMe);
}
}
您需要将角色与角色进行比较。