sábado, 14 de junio de 2014

Tres en Raya. Parte III.



Vamos a ver en detalle las diferentes funciones que invoca el 'main'. La primera y más sencilla es 'reiniciarTablero'. Es una función destinada a poner en blanco el tablero de juego (en nuestro caso, en blanco supone el valor '-1'). Para ellos utilizamos dos bucles 'for' anidados (uno dentro de otro) para recorrer todas las posiciones de la matriz de dos dimensiones.



La siguiente función es 'pintarTablero'. Como su nombre indica, pinta el tablero de juego. Primero añade muchas líneas en blanco para que no se vea el tablero anterior y después comienza a pintar el tablero. Para saber qué valor hay que pintar (vacío o el símbolo de uno de los jugadores) utiliza la función 'comprobarValores' que veremos más adelante.


Esta función 'comprobarTablero' repasa las condiciones para que el último jugador que haya jugado (cuyo número se pasa como argumento) gane la partida, es decir, tres símbolos en raya. Si ha ganado la partida devuelve 'true' y si no es una jugada ganadora, devuelve 'false'.


La función 'comprobarValores' es la que es llamada desde 'pintarTablero' y se encarga de decirnos qué valor debemos dibujar en cada casilla. Si el valor es '-1' se dibuja la casilla en blanco, si el valor es 0 se dibuja '()' y si es 1 se dibuja ')('. Esto lo realiza para una línea completa.


La función más interesante es la función 'jugada'. Un jugador introduce las coordenadas de la casilla que quiere ocupar, se comprueba que las coordenadas son correctas, si es así, almacena el valor correspondiente en el tablero y se pinta el tablero actualizado. Después se comprueba si la jugada es ganadora y por último, se comprueba si el tablero está completo (el contador está a cero, es decir, se han terminado las casillas libres).

Y con esto... está listo el programa. ¿Alguna sugerencia para una modificación o mejora?

1 comentario:

  1. ¿Qué pasa si en vez de un número introducimos una letra (por ejemplo) cuando el programa solicita la línea o columna de la casilla?

    ResponderEliminar