對於我的代碼,它是一個猜數字遊戲。他們在失敗之前得到10次猜測,並告訴他們是否太低,太高等等。在我的輸出中,當我告訴他們他們是太高還是太低時,我還想顯示他們有多少猜測剩下。但目前它告訴他們他們每次都有9次猜測,我不知道爲什麼。使用遞減運算符
該程序的其餘部分工作。所以在經過10次猜測之後,它會告訴他們他們輸了,只是每一次猜測,直到它說他們有9次猜測。
namespace NumberGuessingGame
{
public class GuessingGame
{
int myGuess = 0;
int guessesLeft = 10;
int gamesPlayed = 0;
int gamesWon = 0;
int gamesLost = 0;
Random rand;
int number = 0;
public GuessingGame()
{
rand = new Random();
number = rand.Next(1, 100);
}
public void ResetGame()
{
number = rand.Next(1, 100);
guessesLeft = 10;
}
public int CheckGuess(int newGuess)
{
myGuess = newGuess;
if (guessesLeft < 1)
{
gamesLost++;
gamesPlayed++;
ResetGame();
return 2;
}
else if (myGuess > number)
{
guessesLeft--;
return 1;
}
else if (myGuess < number)
{
guessesLeft--;
return -1;
}
else
{
gamesPlayed++;
gamesWon++;
ResetGame();
return 0;
}
}
}
}
代碼形式類
namespace NumberGuessingGame
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
GuessingGame myGuess = new GuessingGame();
private void btnCheck_Click(object sender, EventArgs e)
{
int inputGuess = Convert.ToInt32(txtGuess.Text);
int result = myGuess.CheckGuess(inputGuess);
int guessesLeft = 10;
if(result == 2)
{
MessageBox.Show("You ran out of guesses and lost!");
}
else if(result == 1)
{
guessesLeft--;
MessageBox.Show("Your guess was too high, try again!" + "\n You have " + guessesLeft + " guesses left");
}
else if(result == -1)
{
guessesLeft--;
MessageBox.Show("Your guess was too low, try again!" + "\n You have " + guessesLeft + " guesses left");
}
else if(result == 0)
{
MessageBox.Show("You won!");
}
}
}
}
你使用調試器嗎?按F11並查看逐行發生的情況。相信我。調試將解決您的問題的必要性,也可以幫助您稍後設計更好的算法,並且您將不會陷入問題。 –