Делаю игру на память при помощи WPF .net framework . Суть игры состоит в следующем: стартовое окно предлагает выбрать сложность (лёгкая, средняя, сложная), нажав на кнопку "Начать игру" окно переключается на игровое, где уже расположено то количество карт соответствующее выбранному уровню сложности. Вверху располагается прогресс-бар показывающий сколько времени осталось. Собственно смысл игры находить 2 пары одинаковых карт (скорее всего вы играли в подобное, либо знаете её правила).
Игру ещё предстоит написать, но в виду того что времени не так много как и опыта - я нуждаюсь в помощи.
У меня есть несколько вопросов, но это не значит что иные советы навредят. Вопросы:
- Как связать созданные классы (при помощи "Создать элемент" в проекте)? Я хочу обращаться к классам из других классов, а так же в каждом иметь возможность обращаться к окну (xaml).
- Не раз сталкивался с интерфейсом INotifyPropertyChanged и хотелось бы узнать как можно его тут применить. В комплекте к нему вроде как идёт специально обозванный класс ObservableCollection. Как я понимаю интерфейс нужен для извещения об изменении свойств, а класс для их применения?
- Как лучше создавать элемент карту (содержит в себе картинку)? Я пробовал создавать через словарь ресурсов, но многое мне до сих пор не понятно. Собственно делал стиль для чек-бокса (потому как мы будем выбирать первую и вторую карты, не больше), добавил border, а на него image. И тут возник вопрос: как добавить свойство source к чек-боксу, что бы можно было в коде спокойно менять ему картинки. Вторая проблема, это триггер, который должен красить border другой цвет когда мнимый чек-бокс отмечен (и к примеру менять размер).
- Как будет лучше располагать эти карты (с помощью grid или может datagrid?). Карты будут располагаться согласно "сетке", а перед этим создаваться с... присвоенным идентификатором? Что бы понять какие карты с картинками совпадают.
Следующие вопросы задаю в случае если успею сделать вышеперечисленное, тогда можно будет добавить пару функций
- Пользовательский уровень сложности предполагает что можно настроить кол-во пар карт (минимум 8, максимум 15-20), время за которое нужно управится. Вопрос, как к этому лучше подходить?
- Выбор карт. Возможность выбора своих картинок для карт (они скорее всего будут копироваться в папку к остальными и нумероваться согласно тому каким по счёту были добавлены), а так же собственно выбор предпочитаемых карт для использования (то есть только выбранные карты будут использоваться в игре) количество выбранных карт должно соответствовать количеству пар карт в выбранном уровне сложности.
На этом пожалуй всё. Я буду благодарен вашей помощи и советам.
grid или может datagrid, таблица и сетка). Попробуйте, а уж потом задавайте.textBox1.Text = "Привет мир", забыть вообще проx:Nameв XAML разметке, забыть про<Button Click = "..", понять что такое слои (M, V, VM). Просто начните делать, поймите базовые понятия, как все устроено, а дальше уже фантазируйте, делая свою игру такой, какой Вы хотите ее видеть. Вот пример простого MVVM, а вот более интересный вариант. – EvgeniyZ Jun 23 '21 at 10:48