From 7f535260bbc2210bf8d605bac88546e9f18b2b05 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Sun, 28 Jul 2019 01:35:59 +0200 Subject: New API for isValidRangeSize --- operationcondition.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'operationcondition.h') diff --git a/operationcondition.h b/operationcondition.h index 86562e6..8b5a411 100644 --- a/operationcondition.h +++ b/operationcondition.h @@ -43,7 +43,7 @@ public: void setValueNode(ExecutionNode* node); QString toString(); - virtual bool isValidRangeSize(std::pair range) const; + virtual Dice::CONDITION_STATE isValidRangeSize(const std::pair& range) const override; BooleanCondition* getBoolean() const; void setBoolean(BooleanCondition* boolean); -- cgit v1.2.3-70-g09d2 From 62ff4aad384c248b62f88a3e38d2e51043c5bb20 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Sun, 28 Jul 2019 01:46:48 +0200 Subject: initialize pointer on nullptr --- node/executionnode.h | 2 +- node/paintnode.h | 1 + operationcondition.h | 2 +- result/result.h | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) (limited to 'operationcondition.h') diff --git a/node/executionnode.h b/node/executionnode.h index 62bc5a5..6321c83 100644 --- a/node/executionnode.h +++ b/node/executionnode.h @@ -86,7 +86,7 @@ protected: /** * @brief m_result */ - Result* m_result; + Result* m_result= nullptr; /** * @brief m_nextNode */ diff --git a/node/paintnode.h b/node/paintnode.h index 2675285..2283f83 100644 --- a/node/paintnode.h +++ b/node/paintnode.h @@ -55,6 +55,7 @@ public: protected: QList m_colors; + DiceResult* m_diceResult= nullptr; }; #endif diff --git a/operationcondition.h b/operationcondition.h index 8b5a411..b324f6b 100644 --- a/operationcondition.h +++ b/operationcondition.h @@ -54,7 +54,7 @@ private: qint64 valueToScalar() const; private: - ConditionOperator m_operator; + ConditionOperator m_operator= Modulo; BooleanCondition* m_boolean= nullptr; // qint64 m_value; ExecutionNode* m_value= nullptr; diff --git a/result/result.h b/result/result.h index a34c74f..76f3a8c 100644 --- a/result/result.h +++ b/result/result.h @@ -90,7 +90,7 @@ protected: QString m_id; private: - Result* m_previous; /// @brief + Result* m_previous= nullptr; /// @brief }; #endif // RESULT_H -- cgit v1.2.3-70-g09d2 From 58893c479bfdf2ea7631bff12710a436c3bcfa51 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Sun, 28 Jul 2019 02:38:00 +0200 Subject: set of possibility --- operationcondition.cpp | 20 +++++++++++++++++++- operationcondition.h | 1 + 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'operationcondition.h') diff --git a/operationcondition.cpp b/operationcondition.cpp index 97c7bce..9ef8e1e 100644 --- a/operationcondition.cpp +++ b/operationcondition.cpp @@ -68,7 +68,7 @@ qint64 OperationCondition::hasValid(Die* b, bool recursive, bool unhighlight) co if(valueScalar == 0) valueScalar= 1; die.insertRollValue(value % valueScalar); - sum+= m_boolean->hasValid(&die, recursive, false); + sum+= m_boolean->hasValid(&die, recursive, false) ? 1 : 0; } break; } @@ -125,6 +125,7 @@ Dice::CONDITION_STATE OperationCondition::isValidRangeSize(const std::pairgetResult(); return result->getResult(Dice::RESULT_TYPE::SCALAR).toInt(); } + +const std::set& OperationCondition::getPossibleValues(const std::pair& range) +{ + if(nullptr == m_boolean) + return m_values; + + for(qint64 i= std::min(range.first, range.second); i <= std::max(range.first, range.second); ++i) + { + auto valueScalar= valueToScalar(); + auto val= i % valueScalar; + Die die; + die.insertRollValue(val); + if(m_boolean->hasValid(&die, false, false)) + m_values.insert(i); + } + return m_values; +} diff --git a/operationcondition.h b/operationcondition.h index b324f6b..423148d 100644 --- a/operationcondition.h +++ b/operationcondition.h @@ -49,6 +49,7 @@ public: void setBoolean(BooleanCondition* boolean); virtual Validator* getCopy() const; + const std::set& getPossibleValues(const std::pair& range) override; private: qint64 valueToScalar() const; -- cgit v1.2.3-70-g09d2 From fdacc438532892b7c76bb33d9f8774724c56f90c Mon Sep 17 00:00:00 2001 From: Renaud G Date: Sun, 28 Jul 2019 02:38:27 +0200 Subject: add override --- operationcondition.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'operationcondition.h') diff --git a/operationcondition.h b/operationcondition.h index 423148d..002a669 100644 --- a/operationcondition.h +++ b/operationcondition.h @@ -34,21 +34,22 @@ public: Modulo }; OperationCondition(); - virtual ~OperationCondition(); + virtual ~OperationCondition() override; - virtual qint64 hasValid(Die* b, bool recursive, bool unhighlight= false) const; + virtual qint64 hasValid(Die* b, bool recursive, bool unhighlight= false) const override; void setOperator(ConditionOperator m); // void setValue(qint64); void setValueNode(ExecutionNode* node); - QString toString(); + QString toString() override; virtual Dice::CONDITION_STATE isValidRangeSize(const std::pair& range) const override; BooleanCondition* getBoolean() const; void setBoolean(BooleanCondition* boolean); - virtual Validator* getCopy() const; + virtual Validator* getCopy() const override; + const std::set& getPossibleValues(const std::pair& range) override; private: -- cgit v1.2.3-70-g09d2