2017-02-07 63 views
-1

我在C#中创建一个猜测游戏,并且我无法让用户猜测的数字在游戏时显示开始是10,它会显示只有当用户已经尝试了1个猜测,它显示10总共程序会给用户11个猜测,你能帮助我吗?猜猜在C#中的游戏,我不能让用户猜测的数字在游戏开始时显示

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace GuessingGame 
{ 
    public partial class Form1 : Form 
{ 
    int _randnum; 
    int _userguess; 

    void GetRandomNumber() 
    { 
     int min = 1; 
     int max = 101; 
     Random randomiser; 
     randomiser = new Random(); 

     _randnum = randomiser.Next(min, max); 


    } 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void label1_Click(object sender, EventArgs e) 
    { 

    } 

    private void buttonGuess_Click(object sender, EventArgs e) 
    { 
     string user = textBox1.Text; 
     string guessnum = Convert.ToString(_userguess); 
     int guess = 0; 


     if (int.TryParse(user, out guess)) 
     { 
      if (_userguess == 0) 
      { 
       buttonGuess.Enabled = false; 
       label3.Text = "Game Over"; 
      } 

      else if (guess == _randnum) 
      { 
       label3.Text = "Good guess"; 
       buttonGuess.Enabled = false; 

      } 
      else if (guess < _randnum) 
      { 
       label3.Text = "Too low guess"; 
       _userguess--; 

      } 
      else if (guess > _randnum) 
      { 
       label3.Text = "Too High guess"; 
       _userguess--; 
      } 
      else if (guess < 0 || guess > 100) 
      { 
       label3.Text = "Your guess is out of the range"; 
       _userguess--; 
      } 
     } 
     else 
     { 
      label3.Text = "Yous should introduce a number"; 
      _userguess--; 
     } 
     label2.Text = guessnum; 
    } 

    private void buttonExit_Click(object sender, EventArgs e) 
    { 
     Application.Exit(); 
    } 

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 

    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     GetRandomNumber(); 
     _userguess = 10; 
    } 

    private void buttonNew_Game_Click(object sender, EventArgs e) 
    { 
     GetRandomNumber(); 
     buttonGuess.Enabled = true; 
     _userguess = 10; 
    } 
} 

}

+1

请尝试询问更具体的问题,而不是“你能帮我吗?”请参阅[为什么'有人可以帮助我?'不是一个“实际”的问题?](http://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-actual-question) – BradleyDotNET

+0

我觉得他的意图很漂亮清楚,尽管这是一个沙拉字。他解释了他想要的并给出他的代码,你还需要什么? – Blam

+0

注意,你的随机数总是一样的。你需要移动GetRandomNumber() – bwoogie

回答

0

你可以做的是有一个NewGame函数做游戏设置和摆脱在LABEL2的文字,并将猜测计数器11

private void NewGame() 
{ 
    GetRandomNumber(); 
    buttonGuess.Enabled = true; 
    label2.Text = string.Empty; 
    _userguess = 11; 
} 

然后你可以在Form Load和New Game Button Click功能中使用它:

private void Form1_Load(object sender, EventArgs e) 
{ 
    NewGame(); 
} 

private void buttonNew_Game_Click(object sender, EventArgs e) 
{ 
    NewGame(); 
} 
+0

非常感谢您的帮助 –

0

你正在设置猜测num字符串在错误的点。你希望它在if语句后面显示数字,所以你应该在if语句后面设置变量。如果在if语句之前设置字符串,它将获得_userguess的初始值,即10。

要在游戏开始时显示10,您还必须在启动新游戏时设置label2的文本。

如果你想让guessnum在你每次调用它时输出正确的字符串。你应该让它成为一种财产或方法。

private string guessnum{ get{ return _userguess.ToString(); } } 
+0

非常感谢您的帮助。 –