2015-03-07 2 views
1

Я создаю эту программу для своего класса CIT и хочу, чтобы она была замкнутой и создала новый номер, когда число будет правильно угадать. Я прочитал раздел в своем учебнике, который охватывает это, но я немного смущен относительно того, как добавить это и где именно.Looping back to start

Вот код, у меня сейчас:

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 Guess_My_Number 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     int number; 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      // Generate the number. 
      Random generator = new Random(); 
      number = generator.Next(0, 100); 
      MessageBox.Show("Can you guess the number I am thinking of  
      between 1 and 100?"); 
     } 

     private void guessButton_Click(object sender, EventArgs e) 
     { 
      // Get the guess from the textbox. 
      int guess = Convert.ToInt32(guessTextbox.Text); 

      // Check if the number is right. 
      if (guess > number) 
      { 
       MessageBox.Show("Too high, try again."); 
      } 
      if (guess < number) 
      { 
       MessageBox.Show("Too low, try again."); 
      } 
      if (guess == number) 
      { 
      MessageBox.Show("Congratulations, you guessed my number!"); 
      } 
     } 

     private void exitButton_Click(object sender, EventArgs e) 
     { 
      // Clost the program. 
      this.Close(); 
     } 
    } 
} 
+1

В маленькой стороне записки, нижняя граница 'Random.Next()' является ** ** включительно, а верхняя граница * * эксклюзивный **. Если вы хотите, чтобы ваше случайное число составляло от 1 до 100, вам придется изменить свой код на 'generator.Next (1, 101)'. –

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

ответ

5
namespace Guess_My_Number 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     int number; 
     Random generator = new Random(); 

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

     private void GenerateNewNumber() 
     { 
      number = generator.Next(0, 100); 
      MessageBox.Show("Can you guess the number I am thinking of  
      between 1 and 100?"); 
     } 

     private void guessButton_Click(object sender, EventArgs e) 
     { 
      // Get the guess from the textbox. 
      int guess = Convert.ToInt32(guessTextbox.Text); 

      // Check if the number is right. 
      if (guess > number) 
      { 
       MessageBox.Show("Too high, try again."); 
      } 
      if (guess < number) 
      { 
       MessageBox.Show("Too low, try again."); 
      } 
      if (guess == number) 
      { 
       MessageBox.Show("Congratulations, you guessed my number!"); 
       GenerateNewNumber(); 
      } 
     } 

     private void exitButton_Click(object sender, EventArgs e) 
     { 
      this.Close(); 
     } 
    } 
} 
+0

Вы также можете изменить последний MessageBox так, чтобы он спрашивал пользователя, хотите ли вы снова начать. Используйте эту [страницу] (https://msdn.microsoft.com/en-us/library/system.windows.forms.messagebox%28v=vs.110%29.aspx) в качестве ссылки на ввод диалога ввода. –

+0

Если вы используете диалог вместо этого, это помогает пользователю узнать, что был создан новый номер. –

+1

Вместо использования Convert.ToInt32() используйте [int.TryParse] (https://msdn.microsoft.com/en-us/library/system.int32.tryparse%28v=vs.110%29.aspx). – KiwiPiet