#include <qdebug.h>
#include <QMessageBox>
#include <QDateTime>
-TestThread::TestThread(QObject *parent):QThread(parent){
+
+TestThread::TestThread(QObject *parent):QThread(parent)
+{
colore=0;
- attendiInputUtente=false;
index=0;
_score=0;
-
qsrand(QDateTime::currentDateTime().toTime_t());
}
-TestThread::~TestThread(){
+
+TestThread::~TestThread()
+{
}
void TestThread::run(){
- while(true){
-
- qsrand(QDateTime::currentDateTime().toTime_t());
- sequenza.append(qrand()%9);
- int i=0;
- index=0;
-
- emit disableInterface();
- while(i<sequenza.size())
- {
- emit generate(sequenza.at(i));
- qDebug()<<sequenza.at(i);
- msleep(500 - (_score*5));
- emit generate(sequenza.at(i));
- msleep(500 - (_score*5));
- i++;
- }
- i=0;
- attendiInputUtente=true;
- emit enableInterface();
+ sleep(1);
+ forever{
+ mutex.lock();
+ qsrand(QDateTime::currentDateTime().toTime_t());
+ sequenza.append(qrand()%9);
+ int i=0;
+ index=0;
+ emit disableInterface();
+ while(i<sequenza.size())
+ {
+ emit generate(sequenza.at(i));
+ msleep(500 - (_score*2));
+ emit generate(sequenza.at(i));
+ msleep(500 - (_score*2));
+ i++;
+ }
- while(attendiInputUtente){
- msleep(1);
+ i=0;
+ emit enableInterface();
+ attendiInputUtente.wait(&mutex);
+ mutex.unlock();
}
- }
-
-
}
-void TestThread::updateCaption(int inputUser){
-
- if(attendiInputUtente){
-
+void TestThread::addUserInput(int inputUser){
if(sequenza.at(index)==inputUser)
{
index++;
_score++;
emit score(_score);
- if(index==sequenza.size()){
- attendiInputUtente=false;
- index=0;
+
+ if(index==sequenza.size()){
+ msleep(300);
+ attendiInputUtente.wakeAll();
}
}
else{
emit exit(_score);
- _score=0;
- sequenza.clear();
- index=0;
- attendiInputUtente=true;
}
- }
+
}
void TestThread::genera()
{
-
- attendiInputUtente=false;
-
+ sequenza.clear();
+ index=0;
+ _score=0;
+ emit score(_score);
+ attendiInputUtente.wakeAll();
}