Example #1
0
int comprobarMatriz(int matriz[9][9])
{
 int i,j;

 for(i=0; i<9; i++)
 {
   if(comprobarLinea(matriz,i))
   {
       return 1;
   }
   if(comprobarColumna(matriz,i))
   {
       return 1;
   }

   for(j=0; j < 9; j++)
   {
       if(comprobarCuadro(matriz,i,j))
       {
           return 1;
       }
   }
 }
  return 0;
}
Example #2
0
int estrategiaPc ( char ** tablero, int cantFilas , int cantColumnas ,int N, int jugador, int * vector)
{
	int fila, * vectoraux,aux,random,cantColaux=cantColumnas-1;
	int i;

	/*ESTRATEGIA 1*/
	for (i=0; i < cantColumnas; i++)
	{
		if (estaenelTablero(tablero,cantFilas,cantColumnas,i, vector[i]-1 ,0,0) == 1)
		{
			fila=ponerFicha(tablero,i,2,vector); /* Se coloca Ficha PC */
			if ( comprobarLinea (tablero,cantFilas,cantColumnas,i,fila,N,2) )
				return 1;
			else
				sacarFicha(tablero,i,vector); /*Si no hay linea se quita la ficha y se intenta en la sig. columna*/
		}
	}
	/*ESTRATEGIA 2*/
	/*Se coloca ficha del jugador. Si hay linea, la misma se retira y se coloca la de la PC
	caso contrario tambien se quita la del jugador y se repite el proceso en la sig. columna*/
	for ( i=0 ; i < cantColumnas; i++)
	{

		if ( estaenelTablero(tablero,cantFilas,cantColumnas,i, vector[i] ,0,0) == 1)
		{

			fila=ponerFicha(tablero,i,1,vector);
			if ( comprobarLinea (tablero,cantFilas,cantColumnas,i,fila,N,1) == 1 )
			{
				sacarFicha(tablero,i,vector);
				ponerFicha(tablero,i,2,vector);
				return 0;
			}
			else
			sacarFicha(tablero,i,vector);
		}

	}
	/*ESTRATEGIA 3*/

	/*Vector que almacena los numeros de columnas disponibles
	* y se achica en cada ciclo para no repetir numeros aleatorios*/
	vectoraux=crearvector(cantFilas,cantColumnas); 
	for (i=0; i < cantColumnas; i++)
		vectoraux[i]=i;
	do
	{
		random = randInt(0,cantColaux);
		if ( vector[random] == 0) 
		/* Si la columna posee un solo espacio, se coloca ficha ya 
		* que es imposible generar jugada ganadora del jugador*/
		{
			ponerFicha(tablero, random , 2 , vector);
			return 0;
		}
		if ( estaenelTablero(tablero,cantFilas,cantColumnas, vectoraux[random] , vector[vectoraux[random]] ,0,0) == 1 
		&&  estaenelTablero( tablero , cantFilas , cantColumnas , vectoraux[random] , vector[vectoraux[random]]-1 , 0 , 0 ) == 1  
		&& vector[random]!=0)
		{
			ponerFicha(tablero, vectoraux[random] , 2 , vector);/*Pone pc*/
			fila=ponerFicha(tablero, vectoraux[random] , 1 , vector);/*Pone jugador*/
			if (
comprobarLinea (tablero,cantFilas,cantColumnas,vectoraux[random],fila,N,1) == 0) /*Si no hizo linea jugador*/
			{
				sacarFicha(tablero,vectoraux[random],vector); /*Saco jugador*/
				return 0;
			}
			else
			{
				sacarFicha(tablero,vectoraux[random],vector);
				sacarFicha(tablero,vectoraux[random],vector);
			}

		}

		aux=vectoraux[cantColaux];
		vectoraux[cantColaux]=vectoraux[random];
		vectoraux[random]=aux;
		cantColaux--;


	}
	while ( cantColaux>0 );

	if (cantColaux==0)
	{
	ponerFicha(tablero, vectoraux[random] , 2 , vector);
	}

return 0;

}