Готовое_КР_Быки_и_коровы
.pdf
Листинг А.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
