Member 13912379 Ответов: 1

Visual studio random number guessing game C#. Пожалуйста, помогите!


Пожалуйста, помогите!

Я должен создать простую игру угадывания случайных чисел в visual studio. Он принимает входные данные из текстового поля и сравнивает их со случайным числом от 1 до 10, подсчитывает количество догадок и затем выдает соответствующие выходные данные в виде метки. Когда я тестирую код, который у меня есть, я не получаю никакого вывода, Как будто цикл работает непрерывно или что-то в этом роде.

Я знаю, что это простая вещь для вас, ребята, но я очень новичок в кодировании и должен быть худшим из возможных инструкторов, так что любая помощь будет очень признательна! Спасибо.

Что я уже пробовал:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class NumberGame : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnCalculate_Click(object sender, EventArgs e)
    {
        
        Random rand = new Random();
        int winNumber = rand.Next(1, 11);
        int guess;
        int numOfGuess = 0;
        bool winner = false;



        while (winner == false)
        {

            guess = Convert.ToInt32(txtGuess.Text);
            

            if (guess > winNumber)
            {
                numOfGuess++;
                lblResult.Text = "Guess is too high, try again. ";
                lblGuess.Text = "The number of guesses is " + numOfGuess;
            }
            else if (guess < winNumber)
            {
                numOfGuess++;
                lblResult.Text = "Guess is too low, try again. ";
                lblGuess.Text = "The number of guesses is " + numOfGuess;
            }
            else if (guess == winNumber)
            {
                numOfGuess++;
                lblResult.Text = "You win! Good job. ";
                lblGuess.Text = "The number of guesses is " + numOfGuess;
                winner = true;
            }

        }
      

    }
}

1 Ответов

Рейтинг:
2

OriginalGriff

Вы не можете сделать это так: с помощью while цикл внутри вашего обработчика событий щелчка пользователь не может изменить значение в текстовом поле, поэтому он никогда ничего не будет делать, кроме как обрабатывать первый ввод снова и снова.

Я не могу вам этого объяснить - это всего лишь небольшое текстовое поле, - поэтому вам нужно перечитывать свои заметки о том, как кодировать для Windows вместо консольного приложения, потому что это очень, очень разные способы работы.

Но в принципе, удалите петлю полностью, и она, по крайней мере, будет работать немного лучше!


Member 13912379

Ха-ха, хорошо, я вижу. В примечаниях к курсу просто показано несколько разных циклов. Они не показывают, где именно его запускать, и до этого момента все было сделано в обработчике событий click. Как будто я говорил не самое лучшее наставление. Есть какие-нибудь советы о том, где найти, как сделать петлю, которая действительно будет работать для этого? Такое чувство, что я прочитал все форумы в интернете.

OriginalGriff

В этом весь смысл: вы не пишете циклы, и особенно вы не пишете циклы, которые зависят от пользовательского ввода. Windows управляется событиями, а не процедурно, и если вы не понимаете, что это значит, то вам нужно вернуться и перечитывать свои заметки о курсе, так как с этого момента ничто не будет иметь никакого смысла!