Example #1
0
void UnJugador::octavoCuadro(){
        if(turno=='O'){
            if(cambiarTurno(2,1)){
                cuadro8.loadFromFile("img_0.png");
                sp8.setTexture(cuadro8);
                sp8.setPosition(sf::Vector2f(485.f,650.f));
            }
        }
        else{
            if(cambiarTurno(2,1)){
                cuadro8.loadFromFile("img_x.png");
                sp8.setTexture(cuadro8);
                sp8.setPosition(sf::Vector2f(485.f,650.f));
            }
        }
}
Example #2
0
void UnJugador::novenoCuadro(){
        if(turno=='O'){
            if(cambiarTurno(2,2)){
                cuadro9.loadFromFile("img_0.png");
                sp9.setTexture(cuadro9);
                sp9.setPosition(sf::Vector2f(825.f,650.f));
            }
        }
        else{
            if(cambiarTurno(2,2)){
                cuadro9.loadFromFile("img_x.png");
                sp9.setTexture(cuadro9);
                sp9.setPosition(sf::Vector2f(825.f,650.f));
            }
        }
}
Example #3
0
void UnJugador::sextoCuadro(){
        if(turno=='O'){
            if(cambiarTurno(1,2)){
                cuadro6.loadFromFile("img_0.png");
                sp6.setTexture(cuadro6);
                sp6.setPosition(sf::Vector2f(850.f,360.f));
            }
        }
        else{
            if(cambiarTurno(1,2)){
                cuadro6.loadFromFile("img_x.png");
                sp6.setTexture(cuadro6);
                sp6.setPosition(sf::Vector2f(850.f,360.f));
            }
        }
}
Example #4
0
void UnJugador::septimoCuadro(){
        if(turno=='O'){
            if(cambiarTurno(2,0)){
                cuadro7.loadFromFile("img_0.png");
                sp7.setTexture(cuadro7);
                sp7.setPosition(sf::Vector2f(110.f,650.f));
            }
        }
        else{
            if(cambiarTurno(2,0)){
                cuadro7.loadFromFile("img_x.png");
                sp7.setTexture(cuadro7);
                sp7.setPosition(sf::Vector2f(110.f,650.f));
            }
        }
}
Example #5
0
void UnJugador::cuartoCuadro(){
        if(turno=='O'){
            if(cambiarTurno(1,0)){
                cuadro4.loadFromFile("img_0.png");
                sp4.setTexture(cuadro4);
                sp4.setPosition(sf::Vector2f(125.f,360.f));
            }
        }
        else{
            if(cambiarTurno(1,0)){
                cuadro4.loadFromFile("img_x.png");
                sp4.setTexture(cuadro4);
                sp4.setPosition(sf::Vector2f(125.f,360.f));
            }
        }
}
Example #6
0
void UnJugador::quintoCuadro(){
        if(turno=='O'){
            if(cambiarTurno(1,1)){
                cuadro5.loadFromFile("img_0.png");
                sp5.setTexture(cuadro5);
                sp5.setPosition(sf::Vector2f(485.f,360.f));
            }
        }
        else{
            if(cambiarTurno(1,1)){
                cuadro5.loadFromFile("img_x.png");
                sp5.setTexture(cuadro5);
                sp5.setPosition(sf::Vector2f(485.f,360.f));
            }
        }
}
Example #7
0
void UnJugador::tercerCuadro(){
        if(turno=='O'){
            if(cambiarTurno(0,2)){
                cuadro3.loadFromFile("img_0.png");
                sp3.setTexture(cuadro3);
                sp3.setPosition(sf::Vector2f(825.f,95.f));
            }
        }
        else{
            if(cambiarTurno(0,2)){
                cuadro3.loadFromFile("img_x.png");
                sp3.setTexture(cuadro3);
                sp3.setPosition(sf::Vector2f(825.f,95.f));
            }
        }
}
Example #8
0
void UnJugador::segundoCuadro(){
        if(turno=='O'){
            if(cambiarTurno(0,1)){
                cuadro2.loadFromFile("img_0.png");
                sp2.setTexture(cuadro2);
                sp2.setPosition(sf::Vector2f(485.f,95.f));
            }
        }
         else{
            if(cambiarTurno(0,1)){
                cuadro2.loadFromFile("img_x.png");
                sp2.setTexture(cuadro2);
                sp2.setPosition(sf::Vector2f(485.f,95.f));
            }
        }
}
Example #9
0
void UnJugador::primerCuadro(){
        if(turno=='O'){
            if(cambiarTurno(0,0)){
                cuadro1.loadFromFile("img_0.png");
                sp1.setTexture(cuadro1);
                sp1.setPosition(sf::Vector2f(125.f,95.f));
            }
        }
        else{
            if(cambiarTurno(0,0)){
                cuadro1.loadFromFile("img_x.png");
                sp1.setTexture(cuadro1);
                sp1.setPosition(sf::Vector2f(125.f,95.f));
            }
        }
}
Example #10
0
int jugar(tPartida partida){

	tMovimiento mov;
	char nombre[MAX_NOM];
	tFlag quiereGuardar=0, quiereCambiar, quiereUndo, hayGanador=0, calcularEstado=1;
	enum tJugada jugada = START;
	int captura;

	imprimirTablero(partida);
		
	while (!hayGanador && jugada != QUIT) {
		if (calcularEstado) {
			hayGanador = estadoJuego(partida);
			calcularEstado = 0;
		}

		if (!hayGanador) {

			if ( hayCadena(partida) && ( jugadorActual(partida) == BLANCO || modoJuego(partida) == PVP)) 
				/* si hay cadena y no es la computadora */
				mov = pedirCadena(partida);

			else if (jugadorActual(partida) == BLANCO || modoJuego(partida) == PVP){ 	
				/* si no es la computadora */
				printf("\nTurno del jugador %s\n", jugadorActual(partida) ? "negro" : "blanco");
				jugada = pedirJugada(&mov, nombre);
				}
			else{
				/*Mueve la computadora */
				printf("\nMueve la computadora:");
				if(calcularMovCompu(&mov, partida) != 0){
					imprimirError(ERR_MEM_COMPU);
					exit(1);
				}
			}
			if (jugada == MOV) {
			
				captura = mover(partida, &mov);
			
				if (captura == AMBIGUO) {
					/*Hay que pedirle que especifique*/
					mov.tipoMov = pedirCaptura();
					captura = mover (partida, &mov);
				}
				if (captura >= 0) { /* si el movimiento fue válido */
					imprimirMov (&mov);
					imprimirTablero(partida);
					if (!hayCadena(partida)) { /* cambiamos de turno */
						cambiarTurno (partida);
						calcularEstado=1;
					}
				}
				else
					imprimirError(captura);
			}
			else if (jugada == UNDO) {
					quiereUndo = undo(partida);
					if( quiereUndo == OK ){
						imprimirTablero(partida);
						calcularEstado = 1; /*Tiene que volver a chequear el tablero */
					}
					else
						imprimirError(quiereUndo);
			}

			else if (jugada == QUIT) {
				printf("Desea guardar su juego antes de salir?\n");
				quiereGuardar = leerSN();
				if (quiereGuardar)
					pedirNombre(nombre);
			}

			if (jugada == SAVE || quiereGuardar) {
				do {
					printf("Desea guardar su juego con el nombre '%s'?\n", nombre);
					quiereCambiar = !leerSN();
					if (quiereCambiar)
						pedirNombre(nombre);
				} while (quiereCambiar);
				if (guardarPartida(partida, nombre) != ERROR)
					printf("Se ha guardado su juego con el nombre '%s'\n", nombre);
				else
					imprimirError(ERR_SAVE);
			}
		}
	}

	return hayGanador; /* si se salió por QUIT, hayGanador vale 0 */
}
Example #11
0
int jugar2(tTablero tablero, int modo, int jugador){

	enum tDireccion dir=NULA;
	tMovimiento mov;
	char nombre[MAX_NOM];
	tFlag jugada=START, quiereGuardar=0, hayCadena=0, quiereCambiar, hayGanador=0, calcularGanador=1, primerUndo=1;
	int captura;
	int a,b; /*TEMP*/
	int estado = SEGUIR;
	tFlag hayPaika;
	tCasilla ** tableroAuxiliar;

	if(modo==PVE){
		tableroAuxiliar = generarMatrizTablero(tablero.filas, tablero.cols);	
		copiarTablero(&tablero, tableroAuxiliar);
		}

	imprimirTablero(&tablero);
		

	while (!hayGanador && jugada != QUIT) {
		if (calcularGanador) {
			hayGanador = estadoPostJugada(&tablero, jugador, &hayPaika);
			calcularGanador = 0;
		}

		if (!hayGanador) {

			if (hayCadena && (jugador == BLANCO || modo == PVP)) /* si hay cadena y no es la computadora */
				pedirCadena(&mov);
			else if (jugador == BLANCO || modo == PVP) 	/* si no es la computadora */
				jugada = pedirJugada(&mov, nombre);
			else{
				/*Mueve la computadora */
				if(calcularMovCompu(&mov, &tablero, hayPaika, hayCadena, dir) != 0){
					imprimirError(ERR_MEM_COMPU);
					exit(1);
				}
			}
			if (jugada == MOV) {
			
				captura = mover(jugador, modo, &tablero, tableroAuxiliar, &mov, &dir, hayPaika, &hayCadena);
			
				if (captura == AMBOS) {
					/*Hay que pedirle que especifique*/
					mov.tipoMov = pedirCaptura();
					captura = mover (jugador, modo, &tablero, tableroAuxiliar, &mov, &dir, hayPaika, &hayCadena);
				}
				if (captura >= 0) { /* si el movimiento fue válido */
					imprimirTablero(&tablero);
					if (!hayCadena) { /* cambiamos de turno */
						cambiarTurno (&jugador, &tablero, &dir);
						primerUndo=1;
						calcularGanador=1;
						printf("Cambio!\nLe toca al jugador %s\n", jugador ? "negro" : "blanco");
					}
				}
				else
					imprimirError(captura);
			}
			else if (jugada == UNDO) {
				if (modo == PVE) {
					if(primerUndo){
						intercambiarTableros(&tablero, &tableroAuxiliar);
						imprimirTablero(&tablero);
						primerUndo=0;
						calcularGanador = 1; /*Tiene que volver a chequear el tablero */
					}
					else
						imprimirError(ERR_UNDO_DOBLE);
				}
				else
					imprimirError(ERR_UNDO);
				
				/* aca va lo del error del undo */
			}

			else if (jugada == QUIT) {
				printf("Desea guardar su juego antes de salir?\n");
				quiereGuardar = leerSN();
				if (quiereGuardar)
					pedirNombre(nombre);
			}

			if (jugada == SAVE || quiereGuardar) {
				do {
					printf("Desea guardar su juego con el nombre '%s'?\n", nombre);
					quiereCambiar = !leerSN();
					if (quiereCambiar)
						pedirNombre(nombre);
				} while (quiereCambiar);
				if (guardarPartida(&tablero, modo, jugador, nombre) != ERROR)
					printf("Se ha guardado su juego con el nombre '%s'\n", nombre);
				else
					printf("Error: no se ha podido guardar su juego.\n");
			}
		}
	}

	return hayGanador; /* si se salió por QUIT, hayGanador vale 0 */
}