#c#
#c#
Вопрос:
Я хочу создать игру что-то вроде «Кто хочет стать миллионером?», где вы отвечаете на вопросы, нажимая одну из трех кнопок. Я в некотором роде новичок в c #, поэтому я не знаю, какой подход был бы лучшим для этого. Я думал о создании цикла, а затем о создании объектов (вопрос — объект). Но как бы я соединил кнопки формы с этими новыми объектами? Или, может быть, есть лучший способ добиться этого? Спасибо всем за предложения!
Ответ №1:
Прежде всего: если вам не нужно, чтобы ваше приложение работало на других платформах, кроме Windows, вам следует заглянуть в Windows Presentation Foundation, это преемник Winforms.
Что касается того, как это реализовать, простым решением было бы иметь свойство CurrentQuestion, содержащее экземпляр класса вопросов с ответами внутри.
class Question
{
public string QuestionText {get;}
public Answer AnswerA { get; }
public Answer AnswerB { get; }
public Answer AnswerC { get; }
public Answer AnswerD { get; }
public Answer ChosenAnswer { get;set;}
}
class Answer
{
public string AnswerText { get; }
}
Каждое текстовое свойство buttons привязывается к ответу в CurrentQuestion, и когда вы нажимаете кнопку, выбирается ответ и может быть обработан следующий вопрос.
Комментарии:
1. Спасибо, и да, я использую WPF.
Ответ №2:
Я предполагаю, что вы будете делать это в Windows Forms или WPF (Windows Presentation Foundation) — приложении, работающем на ПК с Windows, а не веб-приложении.
Что бы я хотел сделать, так это подготовить полную модель (или объект), которая содержала бы вопрос и правильный ответ, который я бы использовал для загрузки представления — набор элементов управления (текстовые поля, метки, кнопки и т.д.), Которые представляли бы информацию.
Поскольку и Windows Forms, и WPF поддерживают понятие событий, я бы подключил обработчики событий нажатия трех кнопок и выполнял действие при нажатии любой из этих кнопок. И поскольку я загрузил представление с правильным ответом, мне не пришлось бы ничего загружать в событие click, что означает, что я мог бы сразу определить, будет ли ответ правильным.
Комментарии:
1. Что ж, мне, вероятно, придется многому научиться, потому что я не смог по-настоящему понять, что вы имели в виду.. Я думаю, что попробую сделать это по-своему, просто чтобы заставить это работать, а затем попробую что-то другое 🙂
2. Попробуйте найти несколько руководств (возможно, видео) по WPF и найдите время, чтобы просмотреть их. Я думаю, это сэкономит вам много времени.