Приложение / игра на C #, наилучший подход

#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 и найдите время, чтобы просмотреть их. Я думаю, это сэкономит вам много времени.