3 en raya

He empezado este año el primer curso de informática y tengo unas preguntillas con respecto a un juego de 3 en raya que tenemos que hacer:
El programa en cuestión se maneja con el teclado numérico de la derecha correspondiéndose cada número a una casilla. La cosa es que si me podrías decir cuál crees que es la forma más clara de dibujar el tablero teniendo en cuenta que lo estoy haciendo en C++ con el TurboC y no puedo poner cosas muy complicadas. También debo hacer (dentro de la misma función muestra) la forma de que el programa vaya comprobando la posición de las POR o los 0 y muestre por pantalla si hay una ganador o no y por último lo que si que no se me ocurre es, en otra función (introducir_X) cómo hacer para que no permita sobreescribir una POR, por ejemplo, en una casilla en la que ya haya un 0. Agradecería que me echaras una mano. Muchas gracias.
Un experto respondió esta pregunta, sin embargo no puedo completar el juego, ¿me pueden ayudar a hacerlo

1 respuesta

Respuesta
1
El tres en raya es un juego en última matemático. Puede ser representado fácilmente por medio de algoritmos sencillos. Te respondo la forma en que yo lo hice.
1. El dibujo del tablero. En turbo C se podía utilizar la librería gráfica que viene con el lenguaje. La verdad en este momento no lo recuerdo muy bien por que no la use mucho, siempre me daba problemas. Sin embargo en la ayuda del turbo C puedes ingresar "graphics" y ahí te dirá como se hace para graficar. Como te dije no la use mucho y decidí hacerlo simple usar "_" para las lineas horizontales y "|" para las verticales. Las posicione con un gotoxy mediante una función. Las " fichas" con una POR y un O.
2. Una cosa es la lógica del programa la otra es la parte visual. En la lógica del programa cree una matriz 3*3. Cada posición en la matriz representaba una posición en el tablero. Para saber que "ficha" estaba en determinada posición le asine a Xun 2 y a O un 5 De esta manera al comparar los valores de la matriz podía determinar que ficha estaba en esa posición.
Por ejemplo si el jugador 1 que juega con la ficha POR marcaba el cuadro del centro automáticamente le ponía un 3 en la posición de la matriz correspondiente, es decir en la M[1][1]. Si jugaba con el 0 pues le ponía un 5 a la matriz y así.
Las posiciones en la matriz que no tenía ninguna ficha tenián un valor como uno o cero, eso depende de ti. De esta manera al sumar las lineas de la matriz, si una suma era igual a 15 el jugador con 0 ganaba o si era igual a 9 el jugador con POR era el ganador. Si un jugador quería anotar en una casilla donde el valor era diferente de cero o uno, pues no se le permitía porque ese espacio ya está usado.
Esto es básicamente lo que hice, que en conclusión es usar "_" y "|" para hacer el marco. Crear una matriz que represente el juego, permitiendo hacer sumas de sus componentes para determinar cuando gana un jugador, cuando hay empate, o cuando se puede escribir sobre una casilla sin sobreescribir alguna "ficha" anterior.
Espero te sirva, y un consejo, ten en mente desde el principio separar la lógica del juego (manejo de la matriz) con la parte visual

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas