Exemplo n.º 1
0
void AppList::onResult(Json::Value jsonObj)
{
    recvFromServer(jsonObj);
}
Exemplo n.º 2
0
Result AppList::onRequest(Json::Value jsonObj)
{
    return recvFromServer(jsonObj);
}
Exemplo n.º 3
0
void AppList::onNotification(Json::Value jsonObj)
{
    if (jsonObj.isMember("method") && jsonObj["method"].asString() != "BasicCommunication.SDLLog") {
        recvFromServer(jsonObj);
    }
}
Exemplo n.º 4
0
int main(int argC, char **argV) {
    int keepLooping = 1;
    int useUDP = 0;
    int opt;
    char string[124];
    char login[50], senha[12];
    char feedback[MAX_FEEDBACK];
    char lt;

    string[123] = '\0';
    feedback[MAX_FEEDBACK-1] = '\0';

    if(argC >= 2)
        useUDP = atoi(argV[1]);

    printf("Bem vindo ao Jogo da Velha Online.\nConectando ao servidor.\n\n");

    if(useUDP)
        udpMain();
    else
        tcpMain();

    while(keepLooping) {
        printf("Digite o número de uma das opções abaixo:\n1.Cadastrar novo login.\n2.Entrar com login existente.\n");
        scanf("%d", &opt);
        switch(opt) {
            case 1:
                printf("Digite o login: "******"%s", login);
                printf("Digite a senha: ");
                scanf("%s", senha);
                sprintf(string, "%s %s %s", MSG_REG, login, senha);
                sendToServer(string);
                system("clear");
                printf("Cadastrado\n");
                break;
            case 2:
                printf("Digite o login: "******"%s", login);
                printf("Digite a senha: ");
                scanf("%s", senha);
                sprintf(string, "%s %s %s", MSG_LOGIN, login, senha);
                sendToServer(string);
                recvFromServer(feedback);
                if(strcmp(feedback, MSG_OK) == 0) {
                    keepLooping = 0;
                    system("clear");
                    break;
                }               
                system("clear");
                printf("Login inválido\n");
                break;
            default:
                system("clear");
                printf("Opção inválida\n");
                break;
        }
    }

    keepLooping = 1;
    while(keepLooping) {
        printf("Digite o número de uma das opções abaixo:\n1.Listar jogadores.\n2.Desafiar jogador.\n3.Logout\n");
        scanf("%d", &opt);
        switch(opt) {
            case 1:
                system("clear");
                printf("\n");
                sendToServer(MSG_LIST);
                do {
                    recvFromServer(feedback);
                    if(strcmp(feedback, MSG_ENDSTREAM) != 0)
                        printf("%s", feedback);
                } while(strcmp(feedback, MSG_ENDSTREAM) != 0);
                printf("\n");
                break;
            case 2:
                printf("Digite o login do oponente: ");
                scanf("%s", login);
                sprintf(string, "%s %s", MSG_START, login);
                sendToServer(string);
                keepLooping = 0;
                break;
            case 3:
                sendToServer(MSG_LOGOUT);
                exit(0);
            default:
                system("clear");
                printf("Opção inválida\n");
                break;
        }
    }

    keepLooping = 1;
    while(keepLooping) {
        recvFromServer(feedback);
        if(strcmp(feedback, MSG_YOURTURN) == 0) {
            printf("Sua vez.\n");
        } else if(strcmp(feedback, MSG_OPPONENTTURN) == 0){
            printf("Vez do oponente.\n");
        } else if(strcmp(feedback, MSG_WIN) == 0) {
            system("clear");
            printf("Você venceu!\n");
            break;
        } else {
            system("clear");
            printf("Você perdeu!\n");
            break;
        }

        printf("Digite o número de uma das opções abaixo:\n1.Desistir.\n2.Logout.\n");
        if(strcmp(feedback, MSG_YOURTURN) == 0)
            printf("3.Jogar\n");
        scanf("%d", &opt);

        switch(opt) {
            case 1:
            case 2:
                keepLooping = 0;
                break;
            case 3:
                if(strcmp(feedback, MSG_YOURTURN) == 0) {
                    printf("Digite X ou O:");
                    scanf("%c", &lt);
                    printf("Digite a posição desejada:\n0|1|2\n3|4|5\n6|7|8\n");
                    scanf("%d", &opt);
                    sprintf(string, "%s %c %d", MSG_PLACE, lt, opt);
                    sendToServer(string);
                }
                recvFromServer(feedback);
                recvFromServer(feedback);
                for(int i = 0; i < 3; i++) {
                    for(int j = 0; j < 3; j++) {
                        if(feedback[i*3 + j] != '\0')
                            printf("%c", feedback[i*3 + j]);
                        else
                            printf(" ");
                    }
                    printf("\n");
                }
                break;
            default:
                system("clear");
                printf("Opção inválida\n");
                break;
        }
    }
    sendToServer(MSG_LOGOUT);

    exit(0);
}