Example #1
0
int main(int argc, char *argv[])
{
  int fin,colocadas;  // fin indica el final de la partida 
  char tablero[FIL][COL];
  char turno;  // indica quien es el jugador que tiene el turno 'x' o 'o'
  char otra= 's'; // indica si los jugadores quieren volver a jugar 's' o no 'n'
  

  
  while(otra=='s')
  {
     fin=0; // mientras fin==0 la partida no acaba
     colocadas=0;  // muestra el número de fichas colocadas
     turno='X';   // empezamos con el turno del jugador x
     // inicializar el tablero y dibujarlo
     
     inicializar_tablero(tablero);
     dibujar_tablero(tablero);
     
     while((colocadas<6)&&(!fin)){
       // ir pidiendo fichas y dibujando el tablero para ver como se van colocando. Al mismo tiempo
       // se debe de ir comprobando que ninguno de los dos jugadores ha ganado y cambiando el turno del jugador
            
       pedir_pieza(tablero, turno);
       dibujar_tablero(tablero);
       fin= ganar(tablero, turno);
       if(fin==0)
       {cambiar_turno(&turno);}
       colocadas++;    
     }
     
     while(!fin)
     {
       // mientras no acabe la partida moviendo las fichas, dibujando el tablero, comprobando si ha ganado algún
       // jugador y cambiando el turno
       
       mover_ficha(tablero, turno);
       dibujar_tablero(tablero);
       fin= ganar(tablero, turno);
       if(fin==0)
       {cambiar_turno(&turno);}

     }
     // una vez se acabe la partida, decir quien ha sido el ganador y dar la opción de volver a jugar
     
     printf ("\n");
     printf ("-EL GANADOR DE LA PARTIDA ES EL JUGADOR: %c", turno);
     printf ("\n");
     printf ("-DESEA JUGAR OTRA PARTIDA? (s/n):");
     scanf  ("%c", &otra);   
  }
  
  
  system("PAUSE");	
  return 0;
}
int main(){
	
//DECLARACION DE VARIABLES
int opcion, fitxa;
int obst_col, obst_fil;
char sino;

	//funcio 4.
	tablero_net();
	do{
	//funcion 1.
	dibujar_tablero();	
		printf("\n \n");
		//MENU DE COSES QUE ES PODEN FER
		printf("\n\n");
		printf("TABLERO DE ESCACS\n");
		printf("-------------------------------------\n");
     	printf("1. Mostrar els moviments d'una fitxa\n");
     	printf("2. Posar impediments\n");
     	printf("3. Esborrar tauler\n");
     	printf("4. Eixir\n");
     	printf("-------------------------------------\n");
     	printf("\n\n - ");
 		printf("Tria el numero d'una opcio: "); scanf("%i", &opcion); 
        fflush(stdin); 	
		
	    //EXECUTEM L'OPCIO ESCOLLIDA
        switch (opcion){
         		//Demanar fitxa
				 case 1: 
				
				 //do{	
				 	printf("\n");
					printf("FITXES DE ESCACS\n");
					printf("-------------------------------------\n");
			     	printf("1. TORRE\n");
			     	printf("2. ALFIL\n");
			     	printf("3. DAMA\n");
			     	printf("4. REI\n");
			     	printf("5. CAVALL\n");
			     	printf("6. EIXIR\n");
			     	printf("-------------------------------------\n");
			     	printf("\n");
				    printf("Tria el numero d''una fitxa: "); scanf("%i", &fitxa);
					fflush(stdin);
					printf("\n");
					
					

					switch(fitxa){
						// TORRE
						case 1:
							
							borrar_mov(); //funcio 12.
							printf(" # TORRE #\n");
							printf("-----------------------------\n");
							do{
							
								do{
									printf("\nEn quina fila vols colocar-la?\n ");
									scanf("%i", &fil);
									fflush(stdin);
									//funcio 2
									errors_fil();
								} while (fil<=0 || fil>=9);
								printf("Molt be!\n");		
								do{
									printf("\nEn quina columna vols colocar-la?\n ");
									scanf("%i", &col);
									fflush(stdin);
									//funcio 3
									errors_col();
								} while (col<=0 || col>=9);	
									//funcio 9
									lloc_ocupat();	
							}while(tabl[fil][col]!=' ');
							tabl[fil][col]='T';
							//guardem la possicio
							pos_fil=fil; pos_col=col;
							mov_torre(); //funcion 5.
							system("cls"); // neteja la pantalla
						break;
						
						// ALFIL
						case 2:
							borrar_mov(); //funcio 12.
							printf(" # ALFIL #\n");
							printf("-----------------------------\n");
						do{
													
								do{
									printf("\nEn quina fila vols colocar-la?\n ");
									scanf("%i", &fil);
									fflush(stdin);
									//funcio 2
									errors_fil();
								} while (fil<=0 || fil>=9);		
								printf("Molt be!\n");			
								do{
									printf("\nEn quina columna vols colocar-la?\n ");
									scanf("%i", &col);
									fflush(stdin);
									//funcio 3
									errors_col();
								} while (col<=0 || col>=9);	
							//funcio 9
									lloc_ocupat();	
						}while(tabl[fil][col]!=' ');	
							tabl[fil] [col]='A';
							//guardem la possicio
							pos_fil=fil; pos_col=col;
							//funcio 6
							mov_alfil();
							system("cls"); // neteja la pantalla
						break;
						
						// DAMA
						case 3:
							borrar_mov(); //funcio 12.
							printf(" # DAMA #\n");
							printf("-----------------------------\n");
							do{
							
								do{
									printf("\nEn quina fila vols colocar-la?\n ");
									scanf("%i", &fil);
									fflush(stdin);
									//funcio 2
									errors_fil();
								} while (fil<=0 || fil>=9);		
								printf("Molt be!\n");			
								do{
									printf("\nEn quina columna vols colocar-la?\n ");
									scanf("%i", &col);
									fflush(stdin);
									//funcio 3
									errors_col();
								} while (col<=0 || col>=9);	
								//funcio 9
								lloc_ocupat();	
							}while(tabl[fil][col]!=' ');							
							tabl[fil] [col]='D';
							//guardem la possicio
							pos_fil=fil; pos_col=col;
							//funcio 5 i 6
							mov_torre();
							mov_alfil();
							system("cls"); // neteja la pantalla
						break;
						
						// REI
						case 4:
							borrar_mov(); //funcio 12.
							printf(" # REI #\n");
							printf("-----------------------------\n");
						do{
						
								do{
									printf("\nEn quina fila vols colocar-la?\n ");
									scanf("%i", &fil);
									fflush(stdin);
									//funcio 2
									errors_fil();
								} while (fil<=0 || fil>=9);		
								
								printf("Molt be!\n");		
								do{
									printf("\nEn quina columna vols colocar-la?\n ");
									scanf("%i", &col);
									fflush(stdin);
									//funcio 3
									errors_col();
								} while (col<=0 || col>=9);	
							//funcio 9
								lloc_ocupat();	
						}while(tabl[fil][col]!=' ');
							tabl[fil] [col]='R';
							//guardem la possicio
							pos_fil=fil; pos_col=col;
							//funcio 7 
							mov_rei();
							system("cls"); // neteja la pantalla
						break;
						
						// CAVALL
						case 5:
							borrar_mov(); //funcio 12.
							printf(" # CAVALL #\n");
							printf("-----------------------------\n");
						do{
						
								do{
									printf("\nEn quina fila vols colocar-la?\n ");
									scanf("%i", &fil);
									fflush(stdin);
									//funcio 2
									errors_fil();
								} while (fil<=0 || fil>=9);		
								printf("Molt be!\n");		
								do{
									printf("\nEn quina columna vols colocar-la?\n ");
									scanf("%i", &col);
									fflush(stdin);
									//funcio 3
									errors_col();
								} while (col<=0 || col>=9);		
							//funcio 9
								lloc_ocupat();	
						}while(tabl[fil][col]!=' ');
							tabl[fil] [col]='C';
							//guardem la possicio
							pos_fil=fil; pos_col=col;
							//funcio 8
							mov_cavall();
							system("cls"); // neteja la pantalla
						break;
						
						//EIXIR
						case 6:
							printf("Adeu!");
							getch();
							borrar_mov(); //funcio 12.
							system("cls"); // neteja la pantalla
						break;
						
						default:
							printf("Opcio incorrecta");
							getch();

					}// final del switch de fitxa
					break;
				 //POSAR ELS IMPEDIMENTS
				 case 2:
				 	do{
				 		do{
				 			do{
								printf("\nEn quina fila vols colocar l'obstacle'?\n - ");
								scanf("%i", &fil);
								fflush(stdin);
								//funcio 2
								errors_fil();
						 	}while (fil<=0 || fil>=9);			
						 		printf("Molt be!\n");				
							do{
								printf("\nEn quina columna?\n - ");
								scanf("%i", &col);
								fflush(stdin);
								//funcio 3
								errors_col();
						 	} while (col<=0 || col>=9);	
							//funcio 11
							pieza_ocupada();	
						}while (tabl[fil][col]=='T' || tabl[fil][col]=='D' || tabl[fil][col]=='A' || tabl[fil][col]=='R' || tabl[fil][col]=='C');	
							printf("Perfecte!\n\n");						
							tabl[fil] [col]='#';
							printf("Vols ficar un altre obstacle?\n");
							printf("Indica s/n - ");
							scanf("%c", &sino);
							fflush(stdin);
							if(sino=='s'){
								printf("Cap problema\n");
							}
							else{
								printf("Adeu!");
							}
					}while(sino=='s');
					system("cls"); // neteja la pantalla	
				 	break;
				 
				 //ESBORRAR TAULES
				 case 3:
				 	printf("Estas segur que ho vols borrar tot? Indica s/n \n");
				 	scanf("%c", &sino);
				 	fflush(stdin);
				 	if (sino=='s'){
				 		tablero_net();
					}
				 	else {
					 }
				 	system("cls"); // neteja la pantalla
				break;
			
				 //EIXIR
				 case 4:
				 	printf("Adeu!");
				 	break;
						
				 default:
				 printf("Opcio incorrecta");
				 getch();
		} //final del switch de opció
	}while(opcion!=4); //FINAL DEL BUCLE QUE REPETEIX EL MENU
getch();
return 0;	
} // FINAL DEL PROGRAMA