Udostępnij za pośrednictwem


Krok 3: Dodawanie minutnik

Ponieważ jest to tymczasowy quizu, spowoduje dodanie minutnik.Program musi śledzić liczbę sekund, po lewej, w miarę postępów gry.

Aby dodać minutnik

  1. Dodaj int (liczba całkowita) o nazwie timeLeft, podobnie jak wcześniej można było.Kod powinien wyglądać następująco.

    Public Class Form1
    
        ' Create a Random object to generate random numbers.
        Private randomizer As New Random
    
        ' These Integers will store the numbers
        ' for the addition problem.
        Private addend1 As Integer
        Private addend2 As Integer
    
        ' This Integer will keep track of the time left.
        Private timeLeft As Integer
    
    public partial class Form1 : Form
    {
        // Create a Random object to generate random numbers.
        Random randomizer = new Random();
    
        // These ints will store the numbers
        // for the addition problem.
        int addend1;
        int addend2;
    
        // This int will keep track of the time left.
        int timeLeft;
    
  2. Teraz musisz coś, co faktycznie liczenia, takich jak czasomierz.Przejdź do Windows Forms Designer i przeciągnij czasomierz formant z przybornika (z składników kategorii) do formularza.Pojawi się w obszarze szarości w dolnej części projektanta Windows Forms.

  3. Kliknij przycisk timer1 ikonę właśnie dodane i ustawić Interwał właściwość, aby 1000.Powoduje to, że zdarzenie podziałki na ogień co sekundę.Następnie kliknij dwukrotnie ikonę, aby dodać moduł obsługi zdarzeń osi.IDE przełącza się do edytora kodu i przeskakuje do nowej metody obsługi zdarzenia.Dodaj następujące instrukcje.

    Private Sub Timer1_Tick() Handles Timer1.Tick
    
        If timeLeft > 0 Then
            ' Display the new time left
            ' by updating the Time Left label.
            timeLeft -= 1
            timeLabel.Text = timeLeft & " seconds"
        Else
            ' If the user ran out of time, stop the timer, show
            ' a MessageBox, and fill in the answers.
            Timer1.Stop()
            timeLabel.Text = "Time's up!"
            MessageBox.Show("You didn't finish in time.", "Sorry")
            sum.Value = addend1 + addend2
            startButton.Enabled = True
        End If
    
    End Sub
    
    private void timer1_Tick(object sender, EventArgs e)
    {
        if (timeLeft > 0)
        {
            // Display the new time left
            // by updating the Time Left label.
            timeLeft = timeLeft - 1;
            timeLabel.Text = timeLeft + " seconds";
        }
        else
        {
            // If the user ran out of time, stop the timer, show
            // a MessageBox, and fill in the answers.
            timer1.Stop();
            timeLabel.Text = "Time's up!";
            MessageBox.Show("You didn't finish in time.", "Sorry");
            sum.Value = addend1 + addend2;
            startButton.Enabled = true;
        }
    }
    

    Na podstawie elementy dodane przez użytkownika, każdy drugi timer sprawdza, czy czas wyczerpał się poprzez sprawdzenie czy timeLeft int (liczba całkowita) jest większa niż 0.Jeśli jest, istnieje pozostały czas.Najpierw timer odejmuje 1 z timeLeft, a następnie aktualizuje timeLabel kontroli tekst właściwość, aby wyświetlić użytkownika, ile sekund są pozostawiane.

    Jeśli nie pozostały czas timer zatrzymuje i zmiany timeLabel kontrolować tekst, co pokazuje czasu! Pojawia się komunikat informujący użytkownika, że quizu jest za pośrednictwem.Odpowiedź jest odsłonięty — w tym przypadku, dodając addend1 i addend2.StartButton kontroli Enabled właściwość jest ustawiona na true, aby ponownie udostępnić przycisk.W ten sposób użytkownik może ponownie uruchomić quizu.

    Zostanie dodany przed chwilą if else instrukcja, która – jak można stwierdzić, programy do podejmowania decyzji.if else Instrukcji wygląda następująco.

    If (something your program will check) Then
        ' statements that will get executed
        ' if the thing that the program checked is true 
    Else
        ' statements that will get executed
        ' if the thing that the program checked is NOT true
    End If
    
    if (something your program will check)
    {
        // statements that will get executed
        // if the thing that the program checked is true 
    }
    else
    {
        // statements that will get executed
        // if the thing that the program checked is NOT true
    }
    

    Bliżej Spójrz na dodane w bloku else, aby wyświetlić odpowiedź na problem dodanie instrukcji.

    sum.Value = addend1 + addend2
    
    sum.Value = addend1 + addend2;
    

    Prawdopodobnie wiesz, addend1 + addend2 dodaje dwie liczby.Pierwsza część (sum.Value) używa wartość właściwość NumericUpDown formantu, aby wyświetlić poprawną odpowiedź.Wartość jest również używana później, kiedy chcesz sprawdzić odpowiedzi do quizu.

    A NumericUpDown kontroli ułatwia użytkownikom wprowadzanie numerów, która jest dlaczego korzystania z formantu w odpowiedzi na problemów matematycznych.Ponieważ wszystkie odpowiedzi są liczby od 0 do 100, aby pozostawić domyślną Minimum i Maksymalna właściwości ustawiona na 0 i 100.To powoduje, że formant tylko użytkownikowi wprowadzić liczbę z zakresu od 0 do 100.Ponieważ odpowiedzi może być tylko liczby całkowite, pozostaw DecimalPlaces właściwość jest ustawiona na 0, co oznacza, że użytkownik nie może wprowadzić miejsca po przecinku.(Jeśli chciał umożliwić użytkownikowi wprowadzanie 3,141, ale nie 3.1415, można ustawić DecimalPlaces właściwość do 3.)

  4. Dodać trzy wiersze do końca StartTheQuiz() metody, więc kod wygląda jak poniżej.

    ''' <summary>
    ''' Start the quiz by filling in all of the problems
    ''' and starting the timer.
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub StartTheQuiz()
    
        ' Fill in the addition problem.
        addend1 = randomizer.Next(51)
        addend2 = randomizer.Next(51)
        plusLeftLabel.Text = addend1.ToString()
        plusRightLabel.Text = addend2.ToString()
        sum.Value = 0
    
        ' Start the timer.
        timeLeft = 30
        timeLabel.Text = "30 seconds"
        Timer1.Start()
    
    End Sub
    
    /// <summary>
    /// Start the quiz by filling in all of the problems
    /// and starting the timer.
    /// </summary>
    public void StartTheQuiz()
    {
        // Fill in the addition problem.
        addend1 = randomizer.Next(51);
        addend2 = randomizer.Next(51);
        plusLeftLabel.Text = addend1.ToString();
        plusRightLabel.Text = addend2.ToString();
        sum.Value = 0;
    
        // Start the timer.
        timeLeft = 30;
        timeLabel.Text = "30 seconds"; 
        timer1.Start();
    }
    

    Teraz, kiedy uruchamia quiz obejmuje, ustawia timeLeft int (liczba całkowita), 30 i zmiany timeLabel kontroli tekst właściwość do 30 sekund.Następnie wywołuje czasomierz formantu Start() metodą uruchamiania odliczania.(Nie jeszcze sprawdza odpowiedź — który jest dalej.)

  5. Zapisz i uruchom program.Po kliknięciu przycisku uruchomić przycisku, czasomierz powinno rozpocząć zliczania w dół.Kiedy skończy się kończy się quiz czas i pojawia się odpowiedź.Na poniższej ilustracji przedstawiono quizu w toku.

    Quiz matematycznych w toku

    Kwiz matematyczny w toku

Aby kontynuować, lub przejrzeć