示例#1
0
main() {
    reset();
    enable_interrupt();
    while() {
        elegir_luz();
        encender_luz();
    }
    
/***** rutina de interrupcion *****/
       
        if (scan_inter ()  != 1) {
            if (shift_reg == FLAG) {
                switch (p_buffer) {
                    case (0) : comienzo = 1;
                               break;
                    case (1) : if (comienzo==1) {
                                    p_buffer = 0;
                                    device = gchar();
                                    if ( device == IDENTIFICATIVO) {
                                        acknowledge();
                                        p_out = 0;
                                        wserial( gout () );
                                        more = 1;
                                    }
                               }
                               break;
                     default : if ( device == IDENTIFICATIVO ) {
                                    if (verificar() == NAK)  no_acknowledge ();
                                    else {
                                        ack_nak = interpretar ();
                                        if ( ack_nak == ACK ) acknowledge ();
                                        else no_acknowledge ();
                                    }
                                    p_out = 0;
                                    wserial( gout () );
                                    more = 1;
                               }
                               break;
                }
                p_buffer = 0;
            }
            else pchar(shift_reg);
        }
        else {
            if (more == 0) goto RTI;
            wserial( gout () );
            if (shift_reg == 'f') {
                p_out = 1;
                more = 0;
            }
        }
        RTI ();
}
示例#2
0
/**Função interpretador*/
void interpretador()
{
	int resultado = 0;
	string input = "";
	int ciclo = 1;

	for (printf("$motor3D > "); ciclo && getline(cin, input); printf("$motor3D > ")){
		if (input.compare("") != 0){
			resultado = interpretar(input);
			if (resultado == 0)
				ciclo = 0;
		}
	}
}
示例#3
0
int YUKON_CLI::run(){
	
	int estado = 1;
	string comando;
	string mensagem = "Jogo começou";
	
	do {	//logica principal
	

		cout << mensagem << endl;
		imprimeCartas();
		cout << endl << ">> ";
		cin >> comando;
		system("clear");
		switch( interpretar(comando) ){
			case 0:
				estado=1;
				mensagem = "Movendo...";
				break;
			case 1:
				estado=2;
				mensagem = "Erro de interpretação.";
				break;
			case 3:
				estado=0;
				cout << "Fechando jogo..." << endl;
				break;
			case 4:
				estado=1;
				mensagem = "Gerando novo jogo.";
				break;
		}
		if (verificaFimJogo()){
			cout << "Você ganhou !!!\tFim do jogo.\tEnter para fechar." << endl;
			cin.ignore();
			while(cin.get()!='\n'){
				cout << endl;
			}
			estado=0;
		}
	} while (estado != 0);
	
	return 0;
}
示例#4
0
/**Funcão interpretar*/
int interpretar(string linha){
	istringstream ss(linha);
	string token;
	int cont = 0;
	vector<string> playerInfoVector;

	while (std::getline(ss, token, ' ')) {
			token = removeSpaces(token);
			if (token.compare("") != 0){
				playerInfoVector.push_back(token);
				cont++;
			}
	}

	// Comando gerar
	if (playerInfoVector.at(0).compare("gerador") == 0 && cont != 0){
		return gerador(playerInfoVector);
	}
	else if(playerInfoVector.at(0).compare("desenhar") == 0 && cont != 0){
		return gerar_cena(playerInfoVector);
	}
	else if(playerInfoVector.at(0).compare("solar") == 0 && cont != 0){
		vector<string> planetas = makeSolarSystem();
		for(int i = 0; i < planetas.size(); i++) interpretar(planetas.at(i));
		playerInfoVector.push_back("solar.xml");
		return gerar_cena(playerInfoVector);
	}
	else if (playerInfoVector.at(0).compare("help") == 0 && cont != 0){
		cout << MESSAGE_HELP;
	}
	else if (playerInfoVector.at(0).compare("exit") == 0 && cont != 0){
		return 0;
	}
	else {
		// Como o comando invocado não é nenhum dos anteriores, devolve o erro correspondente
		cout << ERROR_COMMAND_NO_EXISTS;
		return -1;
	}
}
示例#5
0
int YUKON_CLI::run(){
	
	int estado = 1;
	string comando;
	string mensagem = "Jogo começou";
	//string &msg = mensagem;
	system("clear");
	do {
		cout << mensagem << endl << endl;
		imprimeCartas();
		cout << endl << ">> ";
		cin >> comando;
		system("clear");
		mensagem = "";
		switch( interpretar(comando, mensagem) ){
			case 0:
				estado=1;
				//mensagem = "Movendo...";
				break;
			case 1:
				estado=2;
				mensagem = "Erro de interpretação.";
				break;
			case 3:
				estado=0;
				cout << "Fechando jogo..." << endl;
				break;
			case 4:
				estado=3;
				mensagem = "Reiniciar jogo";
				novoJogo();
				break;
		}
	} while (estado != 0);
	
	return 0;
}