Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Готовое_КР_Быки_и_коровы

.pdf
Скачиваний:
0
Добавлен:
07.06.2025
Размер:
644.29 Кб
Скачать

Листинг А.3 – GameEngine.h

#ifndef GAMEENGINE_H #define GAMEENGINE_H

#include <QObject> #include <QVector> #include <QStringList> #include <QRegExp>

class GameEngine : public QObject

{

Q_OBJECT

Q_PROPERTY(QString currentGuess READ currentGuess WRITE setCurrentGuess NOTIFY guessChanged)

Q_PROPERTY(QStringList history READ history NOTIFY historyChanged) Q_PROPERTY(QStringList usedDigits READ usedDigits NOTIFY guessChanged) Q_PROPERTY(bool saveHistory READ saveHistory WRITE setSaveHistory NOTIFY

saveHistoryChanged)

public:

explicit GameEngine(QObject *parent = nullptr);

Q_INVOKABLE void newGame();

Q_INVOKABLE void checkGuess();

Q_INVOKABLE void addDigit(const QString &digit);

Q_INVOKABLE void removeDigit();

Q_INVOKABLE void clearHistory();

Q_INVOKABLE void setCurrentGuess(const QString &guess);

QString currentGuess() const; QStringList history() const; QStringList usedDigits() const; bool saveHistory() const;

void setSaveHistory(bool value);

signals:

 

void

guessChanged();

void

historyChanged();

void

error(const QString &message);

void

victory();

void

saveHistoryChanged();

private:

QVector<int> m_secret;

QString m_currentGuess;

QStringList m_history;

bool m_saveHistory = false;

QVector<int> generateSecret(); bool validate() const;

void processGuess();

};

#endif

33