我正在制作一个Hangman项目,要求我将字符“ - ”更改为“a到z”。由于我正在学习如何使用C#进行编码,因此我不知道如何进行编码。 我显然需要使用位置,因为这个单词是重复的字母(例如:C oo kies)
这是我开发的代码,它使我的事情崩溃,而且显然是不完整的。
private void chkA_Checked(object sender, RoutedEventArgs e)
{
if (motRechercher.Contains("a"))
{
int indexDemotRechercher = motRechercher.IndexOf("a");
int k = indexDemotRechercher;
var StringBuilderOP = new StringBuilder(motRechercher);
StringBuilderOP.Remove(indexDemotRechercher, indexDemotRechercher);
StringBuilderOP.Insert(k, "A");
}}
motRechercher是一个STRING,我可以随处使用,我从27个单词列表中随机选择。如果这很麻烦,那就是一个复选框,我写文本的地方是一个文本框(称为txtMot)。 随意使用其他变量,我会根据自己的理解重新适应。我想要一些解释/例子来帮助我学习。
以下是随机发生器的代码,如果您真的觉得这可以帮助您理解[它的工作原理]:
private void btnDemarrer_Click(object sender, RoutedEventArgs e)
{
Random rdn = new Random();
int nbreAleatoire = rdn.Next(0, 27);
motRechercher = lesMots[nbreAleatoire];
if (motRechercher.Length > 0)
{
String str = new String('-', motRechercher.Length);
txtMot.Text = str;
}
}
问题:如何制作检测重复的内容并将“ - ”更改为“a-z”?
提出问题,如果您认为不清楚,我会尝试回答。
答案 0 :(得分:2)
这是一个快速示例...我有两个字符串...一个用于用户看不到的隐藏字,另一个用于显示的字符串,使用“ - ”或甚至“_”作为占位符实际的人物。
我有一个简单的函数“IsThereA”,它需要一个字母来猜测单词中的字母。然后我打电话给所有的信件,包括一些随机的信件。该函数返回boolean,因此您可以在每次失败时绘制hangman。
在“IsThereA”方法中,我一次看到一个字符用于猜测字母。如果找到,我使用子字符串而不是“ - ”替换它。因此,一旦更新,您可以使用“WordUserCanSee”属性,但需要。
此版本不区分大小写,但您可以根据需要进行调整。
public class Hangman
{
string HangmanWord = "cookies";
string WordUserCanSee = "-------";
public Hangman()
{
IsThereA("o");
IsThereA("f");
IsThereA("k");
IsThereA("w");
IsThereA("i");
IsThereA("c");
IsThereA("s");
IsThereA("e");
}
public bool IsThereA(string guessLetter)
{
bool anyMatch = false;
for (int i = 0; i < HangmanWord.Length; i++)
{
if (HangmanWord.Substring(i, 1).Equals(guessLetter))
{
anyMatch = true;
WordUserCanSee = WordUserCanSee.Substring(0, i) + guessLetter + WordUserCanSee.Substring(i + 1);
}
}
return anyMatch;
}
}
答案 1 :(得分:1)
motRechercher = motRechercher.Replace("-", "a-z");