Это игра Камень-ножницы-бумага. Правила игры знакомы с детства, если нет, то вот краткое описание: "Камень сильнее Ножниц, Ножницы сильнее Бумаги, а Бумага сильнее Камня. Суть игры в том, чтобы выбрать сущность сильнее оппонента." Программа разделена на игровую логику, написанную на 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 содержит в себе графику и шрифт.