Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Tic-tac-toe
- -----------
- :: By TheTooxicoo
- :: 04/09/2012
- :: Visit TheTooxicoo.Blogspot.com for more source codes
- */
- #include <stdio.h>
- #define FICHA_1 'X'
- #define FICHA_2 'O'
- // Los créditos del programa
- char creditos[] = "Tic-tac-toe\n-----------\n\n:: By TheTooxicoo\n\n:: 04/09/2012\n\n:: Visit TheTooxicoo.Blogspot.com for more source codes\n";
- // El tablero de juego
- char tablero[3][3] = {
- {' ', ' ', ' '},
- {' ', ' ', ' '},
- {' ', ' ', ' '}
- };
- // Las fichas de juego
- char jugador[1] = {'X', 'O'};
- // Turno del jugador
- int turno = 1;
- // El bucle principal comprobará constantemente si 'ejecutando' vale distinto de 0 para seguir ejecutandose
- int ejecutando = 1;
- // Dibujar el tablero (casillas y fichas de juego)
- void dibujar_tablero( void );
- // Realiza un movimiento
- void realizar_movimiento( void );
- // Comprueba las horizontales
- void comprobar_horizontales( void );
- // Comprueba las verticales
- void comprobar_verticales( void );
- // Comprueba las diagonales
- void comprobar_diagonales( void );
- // Declara ganador a uno de los jugadores
- void partida_ganada( char texto[100] );
- int main() {
- printf( "%s", creditos );
- printf( "\n\n>> Pulsa Enter..." );
- getchar();
- while( ejecutando != 0 ) {
- system( "cls" );
- dibujar_tablero();
- realizar_movimiento();
- }
- return 0;
- }
- void dibujar_tablero( void ) {
- int i, j;
- for( i = 0; i < 3; i++) {
- for( j = 0; j < 3; j++) {
- printf( "[%c]", tablero[i][j] );
- }
- printf( "\n" );
- }
- }
- void realizar_movimiento( void ) {
- int fila, columna, movimiento_correcto;
- comprobar_horizontales();
- comprobar_verticales();
- comprobar_diagonales();
- printf( "Fila: " );
- scanf( "%i", &fila );
- printf( "Columna: " );
- scanf( "%i", &columna );
- if( fila == 1 || fila == 2 || fila == 3 || columna == 1 || columna == 2 || columna == 3 ) {
- if( tablero[fila-1][columna-1] == ' ' ) {
- movimiento_correcto = 1;
- }
- }
- else {
- movimiento_correcto = 0;
- }
- if( movimiento_correcto == 1 ) {
- switch( turno ) {
- case 1:
- tablero[fila-1][columna-1] = FICHA_1;
- break;
- case 2:
- tablero[fila-1][columna-1] = FICHA_2;
- break;
- }
- if( turno == 1 ) {
- turno = 2;
- }
- else {
- turno = 1;
- }
- }
- }
- void comprobar_horizontales( void ) {
- if( tablero[0][0] != ' ' && tablero[0][0] == tablero[0][1] && tablero[0][0] == tablero[0][2] ) {
- partida_ganada( "Linea horizontal 1 completada.\n" );
- }
- else if( tablero[1][0] != ' ' && tablero[1][0] == tablero[1][1] && tablero[1][0] == tablero[1][2] ) {
- partida_ganada( "Linea horizontal 2 completada.\n" );
- }
- else if( tablero[2][0] != ' ' && tablero[2][0] == tablero[2][1] && tablero[2][0] == tablero[2][2] ) {
- partida_ganada( "Linea horizontal 3 completada.\n" );
- }
- }
- void comprobar_verticales( void ) {
- if( tablero[0][0] != ' ' && tablero[0][0] == tablero[1][0] && tablero[0][0] == tablero[2][0] ) {
- partida_ganada( "Linea vertical 1 completada.\n" );
- }
- else if( tablero[0][1] != ' ' && tablero[0][1] == tablero[1][1] && tablero[0][1] == tablero[2][1] ) {
- partida_ganada( "Linea vertical 2 completada.\n" );
- }
- else if( tablero[0][2] != ' ' && tablero[0][2] == tablero[1][2] && tablero[0][2] == tablero[2][2] ) {
- partida_ganada( "Linea vertical 2 completada.\n" );
- }
- }
- void comprobar_diagonales( void ) {
- if( tablero[0][0] != ' ' && tablero[0][0] == tablero[1][1] && tablero[0][0] == tablero[2][2] ) {
- partida_ganada( "Linea diagonal 1 completada.\n" );
- }
- else if( tablero[0][2] != ' ' && tablero[0][2] == tablero[1][1] && tablero[0][2] == tablero[2][0] ) {
- partida_ganada( "Linea diagonal 2 completada.\n" );
- }
- }
- void partida_ganada( char texto[100] ) {
- printf( "%s", texto );
- switch( turno ) {
- case 1:
- printf( "Ha ganado el jugador 2.\n" );
- break;
- case 2:
- printf( "Ha ganado el jugador 1.\n" );
- break;
- }
- getchar();
- getchar();
- exit( 0 );
- }
Add Comment
Please, Sign In to add comment