C#猜测游戏 - Windows窗体应用程序 - 如何配置' PlayAgainButton'并保持总分

时间:2012-05-06 19:15:18

标签: c# windows-forms-designer

我是c#的新手,我的小应用程序需要一些帮助。

我希望有一个按钮,在你完成后再次启动游戏,但程序需要保持总分。 (你收到猜测的分数)

提前致谢,

菲利普

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

namespace GuessingGame
{
 public partial class TheUltimateGuessingGame : Form
 {

    public TheUltimateGuessingGame()
    {
        InitializeComponent();
    }

    int number;
    int numberoftries;
    int points;
    int total = 0;
    private void Form1_Load(object sender, EventArgs e)
    {

        Random generator = new Random();
        number = generator.Next(0, 101);

        MessageBox.Show("Try to guess a number between 1 and 100");
    }

    private void PlayAgainButton_Click(object sender, EventArgs e)
    {
        InitializeComponent();
    }

    private void button_guess_Click(object sender, EventArgs e)
    {
        int guess = Convert.ToInt32(textBox_guess.Text);

        if (guess > number)
        {
            textbox_showdifference.Text = ("Guess was too high, try again!");
        }

        if (guess < number)
        {
            textbox_showdifference.Text = ("Guess was too low, try again!");
        }

        if (guess == number)
        {
            textbox_showdifference.Text = ("Awesome, guess was right!");

            MessageBox.Show("It took you " + Convert.ToString(numberoftries) + " tries 
            to guess the right number");

            if (numberoftries <= 3)
            {
                points = 10;
            }

            if (numberoftries >= 4 && numberoftries <= 6)
            {
                points = 5;
            }

            if (numberoftries >= 7)
            {
                points = 2;
            }

            total = total + points;

            ScoreBoard1.Text = ("Here are your points --> " + points + "\nHere are your total points --> " + total);
        }
        ++numberoftries;


    }

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

}

}

1 个答案:

答案 0 :(得分:1)

为什么不呢?

private void PlayAgainButton_Click(object sender, EventArgs e)
{
    Random generator = new Random();
    number = generator.Next(0, 101);
    numberoftries = 0;
    MessageBox.Show("Try to guess a number between 1 and 100");
}

InitializeComponent是解析XAML以构建表单的方法。它不是要重置对象的状态。