C# 刽子手游戏试图倒数用户尝试
下面是我的代码,每次用户输入错误的字母时,我都试图将其从6倒计时到0,但对我来说,它只会显示为1C# 刽子手游戏试图倒数用户尝试,c#,C#,下面是我的代码,每次用户输入错误的字母时,我都试图将其从6倒计时到0,但对我来说,它只会显示为1 private void UserAttempt(string letter) { if(Active_Word.Wrong_Guess < 6 && lbGuessWord.Text.Contains("*")) { int Mask = 1 << (letter[0] - 'A' + 1);
private void UserAttempt(string letter)
{
if(Active_Word.Wrong_Guess < 6 && lbGuessWord.Text.Contains("*"))
{
int Mask = 1 << (letter[0] - 'A' + 1);
if((Active_Word.Number_of_Letters & Mask)==0)
{
Active_Word.Number_of_Letters |= Mask;
if (!Active_Word.Guess_Word.Contains(letter))
{
listBIncorrectTrys.Items.Add(letter);
Active_Word.Wrong_Guess++;
int[] counter = new int[6];
counter[0] = 1;
counter[1] = 2;
counter[2] = 3;
counter[3] = 4;
counter[4] = 5;
counter[5] = 6;
for(int i = counter.Length - 1; i >= 0; i --)
{
string count = counter[i].ToString();
lbGuessesLeft.Text = (count);
}
}
lbGuessWord.Text = GetMaskedWord();
Attempts_Made++;
private void用户尝试(字符串字母)
{
if(Active\u Word.error\u Guess<6&&lbGuessWord.Text.Contains(“*”)
{
int Mask=1=0;i--)
{
字符串计数=计数器[i]。ToString();
lbguessleft.Text=(计数);
}
}
lbGuessWord.Text=GetMaskedWord();
尝试(u Made++);
您的计数器。长度
永远不会改变,因此每次运行此循环时,它将始终在i=0
和计数器[0]=1
处终止。因此,lbguessleft.Text
将始终为1
for(int i = counter.Length - 1; i >= 0; i --)
{
string count = counter[i].ToString();
lbGuessesLeft.Text = (count);
}
相反,可以这样做:猜左=6-尝试
我对C#的口才不是很好,但我会这样做:
...
if (!Active_Word.Guess_Word.Contains(letter))
{
listBIncorrectTrys.Items.Add(letter);
Active_Word.Wrong_Guess++;
// Something similar to this
// But try not to hard code constants like '6'
lbGuessesLeft.Text = 6 - Active_Word.Wrong_Guess;
}
lbGuessWord.Text = GetMaskedWord();
Attempts_Made++;
...
我是将循环和阵列取出,还是将其与之一起放入?根本不需要循环:)我尽了最大努力清理它