Member 14053453 Ответов: 1

Угадывание секретного слова C# новичок


Я пытался писать этот код снова и снова, конечно, будучи новичком, это не помогает моему делу. Инструкции таковы
Кнопка угадать должна позволить второму пользователю ввести 3 догадки
а. отобразите каждое предположение в списке
Б. если предположение неверно, отобразите сообщение Keep trying и продолжайте цикл до 3 попыток
c. если догадка верна, отобразите поздравительное сообщение и остановите цикл

Код, который я написал, который продолжает терпеть неудачу, находится ниже. Помощь очень ценится!

использование системы;
использование системы.Коллекции.Общий;
использование системы.ComponentModel;
использование System.Data;
использование системы.Рисование;
использование System.Linq;
использование System.Text;
использование системы.Нарезание резьбы.Задачи;
использование системы.Окна.Формы;

угадывание пространства имен
{
общественности частичного класс form1 : форма
{
// Объявление и создание объекта InputForm
InputForm inputForm = новая форма ввода();

// Объявить секретное слово на уровне класса, чтобы его можно было использовать совместно
// все обработчики событий щелчка - не декларировать его
строковый секрет = "";

открытый form1()
{
метод InitializeComponent();
}

частная secretButton_Click недействительным(объект отправителя, EventArgs в электронной)
{
// ЭТОТ КОД ПОКАЗЫВАЕТ, КАК ИСПОЛЬЗОВАТЬ ФОРМУ ВВОДА
// string secret уже был объявлен выше

// Ввод секретного слова
secret = inputForm.GetData("введите секретное слово");

}

частная guessButton_Click недействительным(объект отправителя, EventArgs в электронной)
{
string guess; //угадайте слово
int count = 0; //количество догадок
// НАПИШИТЕ ОСТАЛЬНУЮ ЧАСТЬ КОДА ДЛЯ КНОПКИ УГАДАТЬ
//Угадай секретное слово
guess = inputForm.GetData("Угадай секретное слово.");

//Добавить догадку в список
угадайка.Предметы.Добавить(угадать);

если (Угадай != секрет)
{
Ящик для сообщений.Шоу("продолжай пытаться");

while (count <= 3)
{
//Добавить один к счетчику циклов
count = count + 1;
}
}
еще
{
Ящик для сообщений.Шоу("Поздравляю");
}

}

частная clearButton_Click недействительным(объект отправителя, EventArgs в электронной)
{
//Очистить список
угадайка.Предметы.Четкий();
}

частная exitButton_Click недействительным(объект отправителя, EventArgs в электронной)
{
//Закрыть программу
этот.Закрывать();
}

}
}

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

Я пробовал писать код примерно 7 различными способами, и это тот, который выходит ближе всего.

1 Ответов

Рейтинг:
1

OriginalGriff

Простой: count является ли локальная переменная вашей guessButton_Click метод, поэтому каждый раз, когда метод вызывается, он создается, инициализируется до 0 и уничтожается при выходе. Если вы хотите, чтобы он сохранялся при вызовах методов, он должен быть переменной уровня класса (т. е. объявленной вне метода a с префиксом private.

Что должно произойти, так это пользователь нажимает кнопку, и вы проверяете совпадение. Если все совпадет, он победит. если это не так, увеличьте count и проверьте это. Если их будет три, он проиграет. Иначе он получит еще один шанс.
Не зацикливайтесь внутри обработчика событий управления; это не работает в программах Windows, так как пользователь контролирует, и вы реагируете на то, что он делает. Это очень отличается от того, что вы делали с консольными приложениями, где ваш код говорит пользователю, что делать и когда!