diff options
| author | 2019-03-23 17:54:26 +0100 | |
|---|---|---|
| committer | 2019-03-23 17:58:32 +0100 | |
| commit | e0e58bffefefbb5440463bc598af942c0daca91f (patch) | |
| tree | b3a8de13c6d6b37d7cf4ca2d2ed292d8f104128c /node | |
| parent | 1d962712fdba24078b6ce35a2d616cd3155cfc31 (diff) | |
| download | OneRoll-e0e58bffefefbb5440463bc598af942c0daca91f.tar.gz OneRoll-e0e58bffefefbb5440463bc598af942c0daca91f.zip | |
Add occurencecount node.
Diffstat (limited to 'node')
| -rw-r--r-- | node/occurencecountnode.cpp | 35 | ||||
| -rw-r--r-- | node/occurencecountnode.h | 39 |
2 files changed, 62 insertions, 12 deletions
diff --git a/node/occurencecountnode.cpp b/node/occurencecountnode.cpp index 8826188..4fdbc51 100644 --- a/node/occurencecountnode.cpp +++ b/node/occurencecountnode.cpp @@ -1,3 +1,22 @@ +/*************************************************************************** + * Copyright (C) 2018 by Renaud Guezennec * + * http://www.rolisteam.org/contact * + * * + * rolisteam is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #include "occurencecountnode.h" #include "result/diceresult.h" #include "result/stringresult.h" @@ -26,6 +45,7 @@ void OccurenceCountNode::run(ExecutionNode* previous) for(auto dice : diceList) { auto val= dice->getValue(); + vec << val; auto it= mapOccurence.find(val); if(it == mapOccurence.end()) @@ -39,8 +59,19 @@ void OccurenceCountNode::run(ExecutionNode* previous) QStringList list; for(auto key : mapOccurence) { - if(key.first >= m_height && key.second >= m_width) - list << QStringLiteral("%1x%2").arg(key.first).arg(key.second); + if(nullptr != m_validator) + { + Die die; + die.insertRollValue(key.first); + if(!m_validator->hasValid(&die, true)) + continue; + } + + if(key.second < m_width) + continue; + + if(key.first >= m_height) + list << QStringLiteral("%1x%2").arg(key.second).arg(key.first); } QStringList resultList; diff --git a/node/occurencecountnode.h b/node/occurencecountnode.h index ed7f8b4..125f340 100644 --- a/node/occurencecountnode.h +++ b/node/occurencecountnode.h @@ -1,3 +1,22 @@ +/*************************************************************************** + * Copyright (C) 2018 by Renaud Guezennec * + * http://www.rolisteam.org/contact * + * * + * rolisteam is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #ifndef OCCURENCECOUNTNODE_H #define OCCURENCECOUNTNODE_H @@ -10,26 +29,26 @@ class OccurenceCountNode : public ExecutionNode public: OccurenceCountNode(); - void run(ExecutionNode* previous = nullptr); - virtual QString toString(bool withLabel)const; + void run(ExecutionNode* previous= nullptr); + virtual QString toString(bool withLabel) const; ExecutionNode* getCopy() const; qint64 getPriority() const; qint64 getWidth() const; - void setWidth(const qint64 &width); + void setWidth(const qint64& width); qint64 getHeight() const; - void setHeight(const qint64 &height); + void setHeight(const qint64& height); - Validator *getValidator() const; - void setValidator(Validator *validator); + Validator* getValidator() const; + void setValidator(Validator* validator); private: - qint64 m_width=0; - qint64 m_height=0; - Validator* m_validator; - StringResult* m_stringResult; + qint64 m_width= 1; + qint64 m_height= 0; + Validator* m_validator= nullptr; + StringResult* m_stringResult= nullptr; }; #endif // OCCURENCECOUNTNODE_H |