diff options
Diffstat (limited to 'node/dicerollernode.cpp')
| -rw-r--r-- | node/dicerollernode.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/node/dicerollernode.cpp b/node/dicerollernode.cpp new file mode 100644 index 0000000..c21b53c --- /dev/null +++ b/node/dicerollernode.cpp @@ -0,0 +1,30 @@ +#include "dicerollernode.h" + +#include <QDateTime> +#include <QDebug> + +DiceRollerNode::DiceRollerNode(quint64 faces) + : m_faces(faces) +{ + uint seed = quintptr(this) + QDateTime::currentDateTime().toMSecsSinceEpoch(); + qsrand(seed); +} +void DiceRollerNode::run(ExecutionNode* previous) +{ + if(NULL!=previous) + { + m_diceCount = previous->getResult()->getSum(); + for(quint64 i=0; i < m_diceCount ; ++i) + { + m_result.insertResult(rollDice()); + } + if(NULL!=m_nextNode) + { + m_nextNode->run(this); + } + } +} +quint64 DiceRollerNode::rollDice() +{ + return (qrand()%m_faces)+1; +} |