我已經與電腦對手創建了拼字遊戲。如果在單詞生成過程中如果在字母表中的每個字母都需要換出,則在計算機機架中找到空白磁貼。我有我目前的解決方案來解決這個問題,但想知道是否有更好的更有效的方式來完成這項任務。用字母表中的所有字母替換字符的出現
if (str.Contains("*"))
{
char c = 'A';
String made = "";
while(c < 'Z')
{
made = str.ReplaceFirst("*", c.ToString());
if (!made.Contains("*"))
{
wordsMade.Add(made);
if (theGame.theTrie.Search(made) == Trie.SearchResults.Found)
{
validWords.Add(made);
}
}
else
{
char ch = 'A';
String made2 = "";
while (ch < 'Z')
{
made2 = made.ReplaceFirst("*", c.ToString());
wordsMade.Add(made2);
if (theGame.theTrie.Search(made2) == Trie.SearchResults.Found)
{
validWords.Add(made2);
}
ch++;
}
}
c++;
}
您需要提供更多關於「單詞生成」過程的信息。例如,從您的代碼中,您似乎正在修復空白圖塊的位置(在生成的單詞內)。這是你打算做的事嗎?編碼計算機拼字遊戲的對手可能會非常具有挑戰性,取決於你想要它有多好。這方面做了很多工作。你可以閱讀這篇題爲「在拼字遊戲中的對手建模」的文章,獲得一個很好的總結:http://reason.cs.uiuc.edu/eyal/papers/scrabble-ijcai07.pdf。 – Vilas
這是一個典型的[CodeReview](http://codereview.stackexchange.com/faq#questions)問題。 –