2.2 KiB
Это игра Камень-ножницы-бумага. Правила игры знакомы с детства, если нет, то вот краткое описание:
"Камень сильнее Ножниц, Ножницы сильнее Бумаги, а Бумага сильнее Камня. Суть игры в том, чтобы выбрать сущность сильнее оппонента."
Программа разделена на игровую логику, написанную на C++, где класс GameLogic, наследованный от QObject, передаёт в логику отображения три параметра: mainLabel, playerValue, aiValue через Q_PROPERTY.
mainLabel содержит текст, который оповещает о победе, поражении и ничьей. playerValue - тоже текст с выбором Камень, Ножницы или Бумага от лица Игрока. aiValue аналогично с playerValue, только от лица Противника(ИИ).
ИИ выбирает простым генератором псевдослучайных чисел от 0 до 2, с шансом 33.3%.
Логика отображения написана на QML. Были созданы два элимента Button и Monitor, которые располагаются в главном окне.
Мониторы имеют две текстуры, Игрока и Противника, которые выбираются в зависимости от параметра type.
Кнопки передают в игровую логику запуск метода startGame с атрибутом от 0 до 2, в зависимости от выбора Игрока: Камень = 0, Ножницы = 1, Бумага = 2.
Элемент Icon содежит в себе иконки для кнопок и мониторов, в зависимости от параметра text иконка отображает текстуру Камня, Ножниц или Бумаги.
Файл resources.qrc содержит в себе графику и шрифт.