void BackgroundEngine::roleRandom() { for(int i=0;i<playerSum;i++){ playerList[i]=setRole(roles[i],this,queue[i].digitValue(),queue[i+playerSum].digitValue()); coder.roleNotice(queue[i].digitValue(),roles[i]); } seatPostarrange(); gameStart(); }
MyRoom::MyRoom(Server *server):QObject() { backEngine = new BackgroundEngine(); testUI = new TestUIex(NULL); this->serverModule = server; engineThr = new MyThread; backEngine->moveToThread(engineThr); engineThr->start(); //connect(backEngine,SIGNAL(askForActSIG(QList<CardEntity*>,int)),testUI,SLOT(actSLOT(QList<CardEntity*>,int))); //connect(backEngine,SIGNAL(askForReply(QList<CardEntity*>,QString,int)),testUI,SLOT(replySLOT(QList<CardEntity*>,QString,int))); //connect(backEngine,SIGNAL(askForHeal(int,int)),testUI,SLOT(healSLOT(int,int))); connect(backEngine,SIGNAL(toInforDisplay(QString)),testUI,SLOT(toDisplay(QString))); connect(serverModule,SIGNAL(seatArrangeSIG()),backEngine,SLOT(seatArrange())); connect(serverModule,SIGNAL(seatPrearrangeSIG(int,int,QString)),backEngine,SLOT(seatPrearrange(int,int,QString))); connect(this->serverModule,SIGNAL(toDisplay(QString)),this->testUI,SLOT(toDisplay(QString))); connect(backEngine,SIGNAL(sendMessageSIG(int,QString)),this->serverModule,SLOT(sendMessage(int,QString))); connect(&coder,SIGNAL(sendMessage(int,QString)),this->serverModule,SLOT(sendMessage(int,QString))); switch(serverModule->getRoleStrategy()) { case 0: connect(this->serverModule,SIGNAL(roleStrategySIG()),backEngine,SLOT(roleRandom())); break; case 1: connect(this->serverModule,SIGNAL(roleStrategySIG()),backEngine,SLOT(role3Pick1())); connect(serverModule,SIGNAL(role3Pick1ReplySIG(int,int)),backEngine,SLOT(role3Pick1Reply(int,int))); connect(serverModule,SIGNAL(gameStartSIG()),this->backEngine,SLOT(gameStart())); connect(this->serverModule,SIGNAL(roleNoticeSIG()),backEngine,SLOT(seatPostarrange())); break; case 2: connect(this->serverModule,SIGNAL(roleStrategySIG()),backEngine, SLOT(BP())); } // emit this->serverModule->toDisplayPublic("server IP:" + this->serverModule->serverAddress().toString()); emit this->serverModule->toDisplayPublic("server port:" + QString::number(this->serverModule->serverPort())); }