aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node/dicerollernode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/dicerollernode.cpp')
-rw-r--r--node/dicerollernode.cpp30
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;
+}