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();
}
Beispiel #2
0
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()));
}