مشاركة عبر


خطوة 3: أضف جهاز ضبط العد التنازلي.

لأن هذا هو الوقت المناسب للمسابقة ، وسوف تقوم بإضافة العد التنازلي. يحتاج برنامج الاحتياجات الخاصة بك لتعقب عدد من ثانية من انتهاء اللعبة كما تقدم.

أضف جهاز ضبط العد التنازلي.

  1. إضافة Int (عدد صحيح) يسمى timeLeft ، تمامًا مثل لم مسبقًا. يجب أن تشبه التعليمة البرمجية المثال التالي.

    Public Class Form1
    
        ' Create a Random object to generate random numbers.
        Dim randomizer As New Random
    
        ' These Integers will store the numbers
        ' for the addition problem.
        Dim addend1 As Integer
        Dim addend2 As Integer
    
        ' This Integer will keep track of the time left.
        Dim 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. الآن عليك ان شيئا في الواقع يتم العد ، مثل جهاز توقيت. الانتقال إلى مصمم نماذج Windows يسحب التحكم مؤقت من مربع الأدوات (من الفئة مكونات) إلى النموذج. سوف يظهر في المساحة الرمادية في الجزء أسفل من مصمم Windows Forms.

  3. انقر فوق الرمز timer1 يمكنك فقط تمت الإضافة وتعيين الخاصية الفاصل الزمني إلى 1000 . يؤدي حدث التجزئة إلى إطلاق كل ثانية. ثم انقر نقرا مزودجا على الرمز لإضافة تجزئة معالج الأحداث. IDE بالتبديل إلى محرر تعليمات برمجية ثم ينتقل إلى أسلوب معالج حدث جديد. قم بإضافة العبارات التالية.

    Private Sub Timer1_Tick() Handles Timer1.Tick
    
        If (timeLeft > 0) Then
            ' 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
        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;
        }
    }
    

    استناداً إلى ما الذي تمت الإضافة, كل ثانية المؤقت يتحقق ما إذا كان وقت نفد عن طريق التحقق من ما إذا كان Int timeLeft (عدد صحيح) أكبر من 0. إذا كان الأمر كذلك، هناك وقت كافي أولاً يطرح المؤقت 1 من timeLeft ومن ثم فإنه يقوم بتحديث timeLabel عنصر تحكم الخاصية Text لإظهار المستخدم ترك عدد الثواني.

    في حالة عدم وجود الوقت الكافي, سوف يتوقف المؤقت عن تغيير النص لعنصر التحكم timeLabel بحيث يعرض لأعلى الخاص الوقت! تظهر مربع رسالة تقول للمستخدم أن هذه المسابقة قد انتهت. عرض الإجابة — في هذه الحالة، قم بإضافة addend1 و addend2. startButton عنصر تحكم تعيين الخاصية ممكّن على القيمة صواب لجعل الزر متوفراً مرة أخرى. وبهذه الطريقة، يمكن للمستخدم يبدأ الاختبار مرة أخرى.

    قمت للتو بإضافته if elseالعبارة كيف معرفة البرامج إلى تأكد قرارات. تظهر العبارة كما يلي.

    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
    }
    

    أحصل على نظرة دقيقة على الكشف الذي قمت بإضافته في حظر آخر إلى إظهار الإجابة إلى المشكلة التي تمت إضافتها

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

    كما من المحتمل أن تعلم، addend1 + addend2بإضافة القيمتين معاً. الجزء الأول ( sum.Value) يستخدم القيمة خاصية NumericUpDown عنصر تحكم عرض الإجابات الصحيحة. الخاصية القيمة أيضاً استخدامها لاحقاً، عندما تريد فحص الإجابات الاختبار.

    التحكم NumericUpDown يسهّل على المستخدمين Enter الزر أرقام سبب استخدام عنصر تحكم للإجابات المشاكل الرياضية. لأن الكل الإجابات هي الأرقام من 0 إلى 100 تركت الحد الأدنى الافتراضي و خصائص الحد الأقصى تعيين إلى 0 و 100. يؤدي هذا إلى عنصر تحكم فقط يسمح لمستخدم Enter الزر رقم من 0 إلى 100. لأنه يمكن الإجابات الأعداد الصحيحة فقط, تركت المنازل_العشرية الخاصية set 0 يعني أنه لا يمكن للمستخدم Enter الزر المنازل العشرية. (إذا أردت السماح للمستخدم بإدخال 3.141 ولكن 3.1415 لا يمكنك تعيين الخاصية DecimalPlaces إلى 3.)

  4. إضافة ثلاثة أسطر إلى إنهاء **StartTheQuiz()**أسلوب بحيث تبدو التعليمة البرمجية مثل التالية.

    ''' <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();
    }
    

    الآن عند بدء الاختبار الخاصة بك عليه يعين Int timeLeft (عدد صحيح) إلى 30 ، وسيتغير في timeLabel التحكم الخاصية نص إلى 30 ثانية. ثم يقوم باستدعاء مؤقت لعنصر تحكم **Start()**الأسلوب يبدأ العد التنازلي. (لا بتدقيق الإجابة بعد — التي تأتي التالية.)

  5. حفظ البرنامج وتشغيلها. عند النقر فوق الزر ابدأ يجب بدء جهاز ضبط الوقت عد إلى الأسفل. عندما يتم تشغيل الوقت مهلة انتهاء الاختبار كما تظهر الإجابة. تعرض الصورة التالية في الاختبار قيد التقدم.

    اختبار الرياضيات قيد التقدم

    اختبار الرياضيات قيد التقدم

للمتابعة أو للمراجعة