2015-09-18 7 views
0

Я делаю проект для игры с гаданием. Пока все идет хорошо, но я все еще боюсь с помощью метода, чтобы сохранить счет после начала новой игры. Например, когда пользователь выигрывает или проигрывает, счет записывает результаты. Пользователь может нажать кнопку, чтобы увидеть счет во время игры. Программа спросит, хочет ли пользователь продолжить или нет. Если это так, программа перезапустится, но не сбросит счет. Счет будет оставаться до тех пор, пока пользователь не закроет программу. Это то, чего я хочу, но я все еще придерживаюсь того, чтобы заставить его работать. Если бы кто-нибудь мог помочь с этим, было бы весьма полезно.Как сохранить счет после запуска новой игры

public class Main: Form 
    int attempt; 
    int randomNumber; 
    int count; 
    private static int wins; 
    private static int loses; 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     attempt = 0; 
     wins = 0; 
     loses = 0; 
     count = 10; 
     randomNumber = generateRandomNumber(); 
     StartNewGameButton.Visible = false; 

    } 

    private void Guess_Click(object sender, EventArgs e) 
    {   
     int guess = 0; 
     guess = Convert.ToInt32(textBox1.Text); 

     attempt++; 
     label4.Text = "Guess Attempt: " + attempt; 

      if (guess == randomNumber) 
      { 
       wins++; 
       label4.Text = "Your guess is correct! Game Won"; 
       label2.Visible = false; 
       label3.Visible = false; 
       GuessButton.Visible = false; 
       if (MessageBox.Show("Do you want to play again?", "Start a new game", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) 
       { 
        Application.Restart(); 
       } 
       else 
       { 
        Application.Exit(); 
       } 
      } 
      else 
       if (guess < randomNumber) 
       { 
        label2.Text = "Too low!"; 

       } 
       else if (guess > randomNumber) 
       { 
        label2.Text = "Too high!"; 

       } 

      if (attempt == count) 
       { 
        loses++; 
        label4.Text = "Sorry, You missed it! Game Lost"; 
        label2.Text = "The answer is " + randomNumber; 
        label3.Visible = false; 
        GuessButton.Visible = false; 
        StartNewGameButton.Visible = true; 
       } 
     } 


    private int generateRandomNumber() 
    { 
     Random number = new Random(); 
     int randomNumber = number.Next(1, 100); 

     return randomNumber; 
    } 

    private void StartNewGameButton_Click(object sender, EventArgs e) 
    { 
     Application.Restart(); 
    } 

    private void CheckScoreButton_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("Win: " + wins + "\nLose: " + loses); 
    } 

} 

ответ

0

Не уверен, что я понимаю. Разве это не то, что вы хотите?

private void CheckScoreButton_Click(object sender, EventArgs e) 
{ 
    if (MessageBox.Show("Win: " + wins + "\nLose: " + loses + "\n\nDo you want to Continue?", "Continue?", 
MessageBoxButtons.YesNo) == DialogResult.No) 
    { 
     Form.Close(); 
    } 
    else 
    { 
     // Reset as necessary 
    } 
} 
0

не уверен, что я получил это право, но я думаю, что проблема вы столкнулись при вызове метода application.restart прерывания INT побеждает становится 0 раз есть больше чем один, чтобы решить эту проблему: Сначала сохраните int wins и int теряются в файле, используя поток файлов или используя очень маленькую базу данных sql compact, и таким образом вы можете сохранить счет easliy и просмотреть его в любое время, даже если после перезагрузки пользовательского компьютера

очень-очень-очень просто Кстати, вам не нужно перезапускать все приложение, чтобы начать новую игру. Вы можете использовать переход к ключевому слову, которое будет повторно выполнять ваш код из любой строки, которую вы хотите

и кстати сделал и действительно создать целый метод для генерации случайных вы могли бы просто сказать:

Random number = new Random(); 
    int randomNumber = number.Next(1, 100); 

в начале обработчика событий догадка клик

+0

Можете ли вы дать пример кода для хранения данных? – deafprogrammer24

+0

у любого разработчика должен быть фон о базах данных и узнать, как его создать, вы создаете это приложение, чтобы получить опыт и узнать больше, так что это хороший шанс хранить знания о базах данных, на мой взгляд ,, я не могу объяснить все о базах данных только в одном комментарии, но думайте об этом как о сборнике данных, который организован и может быть легко отредактирован или просмотрен, поэтому вы можете создать базу данных и вставить в нее оценки ... попробуйте этот инструмент, это сделает ваш намного проще https://visualstudiogallery.msdn.microsoft.com/0e313dfd-be80-4afb-b5e9-6e74d369f7a1 –