changed clue behavior

This commit is contained in:
Anselme 2016-03-10 13:30:03 +01:00
parent 2af290c60e
commit 0d7e6dc301
2 changed files with 18 additions and 6 deletions

View File

@ -2,6 +2,8 @@
#include "message.h" #include "message.h"
#include "riddles.h" #include "riddles.h"
#include <time.h> #include <time.h>
#include <QHash>
#include <ctime>
FourasModule::FourasModule() : current(-1) FourasModule::FourasModule() : current(-1)
{ {
@ -16,6 +18,7 @@ bool FourasModule::messageHandler(Message msg)
if(msg.args.compare("!fouras") == 0 && riddles->getNbRiddles() != 0) if(msg.args.compare("!fouras") == 0 && riddles->getNbRiddles() != 0)
{ {
nbClues = 0;
current = rand() % riddles->getNbRiddles(); current = rand() % riddles->getNbRiddles();
QStringList riddle = riddles->getRiddle(current); QStringList riddle = riddles->getRiddle(current);
answer = ""; answer = "";
@ -50,14 +53,22 @@ bool FourasModule::messageHandler(Message msg)
if(current != -1) if(current != -1)
{ {
QString str = riddles->getAnswer(current); QString str = riddles->getAnswer(current);
QString answerStr = "Indice : "; std::srand(qHash(str));
bool first = true; QString finalString = "_";
for(QChar c : str) for(int i=0; i<str.size() - 1; ++i)
finalString.append(" _");
for(int i=0; i<nbClues; ++i)
{ {
answerStr.append(first ? QString(c) : QString(" _")); int id = std::rand()%str.size();
first = false; if(finalString[id*2] == QChar('_'))
finalString[id*2] = str[id];
else
++nbClues;
if(nbClues > str.size())
break;
} }
answer = say(answerStr); ++nbClues;
answer = say(QString("Indice : ").append(str));
return true; return true;
} }
} }

View File

@ -9,6 +9,7 @@ class FourasModule : public Module
{ {
int current; int current;
Riddles* riddles; Riddles* riddles;
int nbClues;
public: public:
FourasModule(); FourasModule();