【发布时间】:2019-10-24 05:39:11
【问题描述】:
如果有人能告诉我我做错了什么,我将不胜感激!
基本上我有一个单词谜题。玩家可以从字母列表中选择然后提交它们以查看它是否与板上的单词匹配。这是在我们得到这段代码之前发生的事情:
- 玩家点击带有字母的按钮(字符类型)
- char 被发送到此脚本并添加到列表中
- 随着玩家提交的字母越多,字符列表越大
- 我正在检查字母是否等于另一个列表中的单词
如果字符列表与“wordsToFind”列表中的字符串匹配,那么我想从所述列表中删除字母并将单词放入另一个名为“foundWords”的列表中......重复此过程直到玩家找到所有的话和节拍的水平。一切似乎都很好,直到我开始删除提交的信件......从检查员那里看起来一切都很好,我看到字母被添加,我看到它与单词匹配,然后删除字母,所以是这个单词。以前没有见过这种类型的错误,如果这很简单,很抱歉。这是有问题的代码:
private const int maxLetters = 6;
public List<char> submittedLetters = new List<char>(maxLetters);
public List<string> wordsToFind = new List<string>();
public List<string> wordsFound = new List<string>();
/// <summary>
/// Update is called once per frame
/// </summary>
private void Update() {
ProcessLetters();
}
/// <summary>
/// Handles all letters being submitted and processes them
/// </summary>
private void ProcessLetters() {
if(submittedLetters.Count == 0) { return; }
string tempWord = null;
foreach (char letter in submittedLetters) {
if (wordsFound.Count >= 1) {
submittedLetters.Remove(letter);
}
tempWord += letter.ToString();
foreach (string word in wordsToFind) {
if (tempWord == word.ToUpper()) {
wordsFound.Add(tempWord);
wordsToFind.Remove(tempWord);
}
}
}
}
【问题讨论】: