Hola y bienvenido de nuevo.
En esta conferencia, quiero darte otro desafío.
Está relacionado con funciones, pero este desafío se centrará más
en dividir y conquistar. Está yendo para organizar su programa en
torno a módulos, para ser más sobre la resolución de problemas.
Lo que quiero que hagas es quiero que escribas un juego de tic-tac-toe.
Esto te va a ayudar solo conviértase en un mejor solucionador
de problemas y le ayudará a organizar su programa en torno a funciones.
También vas a utilizar una
matriz, tendrás que calcular cómo formatear ciertos datos, pero
será una simulación de un juego de tic-tac-toe.
No vamos a escribir una computadora.
Va a ser jugador 1 contra jugador 2.
Así que quiero que escribas un programa que juega tic-tac-toe.
Con suerte, todo el mundo es familiarizado con este programa
o este juego, debería decir.
Es solo un juego que se juega en una cuadrícula de 3 x 3 con dos jugadores.
Se turnan.
X es una nariz.
Con suerte, eso te suena.
No quería tener que ir y explica este juego, pero es de esperar
que estés familiarizado con tic-tac-toe.
Te voy a dar un poquito demostración de cómo funciona y
cómo esperaría que se desarrollara la salida.
Pero es un juego básico de tic tac toe.
Lo que quiero hacer es tu probablemente
necesite crear una matriz para representar el tablero real, la cuadrícula de 3 x 3.
Creo que puedes salirte con la tuya solo creando una matriz de una sola dimensión.
De hecho, podrías crear un Matriz 2D también para representar las filas
y las columnas.
2D probablemente sería más intuitivo, pero puede ser
un poco más difícil de visualizar en su código.
Pero de cualquier manera funciona.
Lo bueno de la programación es hay muchas soluciones a un problema.
Te voy a contar uno de mis soluciones y mi enfoque de diseño, pero
siéntase libre de cambiar el diseño.
Siempre que estés usando la c se construye correctamente, eso es todo
lo que me importa.
Quiero que aprendas a usar c.
Siempre que su programa esté modificado y está organizado y es
fácil de mantener, y su código de calidad, eso es lo que me preocupa.
Entonces, una forma de implementar solo una forma representa el tablero como una
matriz unidimensional con diez elementos.
La razón por la que tengo diez elementos aquí es que no quiero que uses cero.
Estos diez elementos van para representar a
la junta, pero también van a representar las coordenadas en el tablero.
Así que voy a hacer una demostración de esto y mostrar usted como estoy pensando en trabajar.
Pero la forma en que vas elegir
realmente el cuadro en el que desea dibujar va a basarse en el número de elemento.
Además de crear una matriz para el tablero, tienes que intentar pensar en cómo
vas a resolver este problema abajo, cómo lo vas a organizar.
Estoy pensando como mínimo que vas a necesitar
al menos tres funciones, probablemente más.
Pero necesitas al menos tener uno función que busca ganadores.
Esto básicamente solo verá si una persona ha ganado el juego
o incluso puede buscar un empate.
Deberías tener una función que dibuja el tablero.
Porque vas a estar dibujando el tablero después del turno de cada jugador.
Y vas a - entonces vas a reutilizar esto.
Otra función para marcar el tablero, esto
sucede cuando el usuario realmente quiere poner xo una o en una casilla determinada.
Necesitas una función para configurar esa casilla como una x o una o.
Lo que pasará es que probablemente estarás poblar la matriz con esa xo o.
Y de esa manera puedes mirar el matriz para ver si ganó o perdió.
Y en el tablero de marcas, también le permitiría comprobar si hay
una selección no válida.
Entonces, si las selecciones válidas fueran uno a nueve y el
usuario ingresó diez, diría, oye, no puedes hacer eso, inténtalo de nuevo.
El juego debe ser fácil de usar. debe ser intuitivo de usar
desde la perspectiva del usuario y debería organizarse desde
una perspectiva de programación.
Piensa realmente en este.
Planifique un poco, planifique un poco, saque algo de papel, Empiece a escribir un diseño sobre cómo va a atacar
este problema y qué funciones que necesitará utilizar.
La forma en que estoy pensando de esto se va a
ejecutar, permítanme mostrarles una pequeña demostración.
No te voy a mostrar ninguna fuente código, pero así es como imagino que
se verá el juego cuando lo ejecutemos.
Tal vez un pequeño título que dice, oye, el juego.
Y luego también un poco información sobre el jugador.
El jugador 1 va a ser x, el jugador 2 va a estar apagado.
Recuerde, esto no tiene estar jugando en la computadora.
Puedes poner en cada turno.
Entonces tendrías que jugar a este juego con un amigo que está sentado a tu
lado, y tendrían que decirle dónde poner el número.
Si te estás poniendo realmente ambicioso, puede
escribir el juego para jugar contra una computadora.
Pero notarás que el 3 x 3 la cuadrícula tiene números inicialmente.
Puede utilizar estos números para ingresar.
Entonces, si tu jugador uno quiere para tomar su turno y representan
x, dependiendo de lo que número que ingresan, ahí es donde
se colocará la x.
Entonces imprimimos la cuadrícula, mostramos el tablero y luego también le decimos al usuario
de quién es el turno y les decimos que ingresen un número.
Entonces, en este caso, voy a seguir adelante. e ingrese el número dos y presione regresar.
¿Y qué pasará después de que golpee? dos y volver,
va a ver si alguien ganó, va a borrar la pantalla y va a volver
a dibujar el tablero.
Entonces, después de presionar 2 y entrar, observe que todavía tengo el título, todavía tengo el
jugador 1 y el jugador 2.
Pero ahora en el cuadro 2, tengo una x.
Entonces, ¿qué más debería haber hecho? hay que haber comprobado
antes de mostrar el tablero si o no teníamos un ganador o un empate.
Y obviamente esa es la primera entrada así que no tenemos ninguno.
Ya que no tenemos un ganador o un sorteo, ahora
le voy a pedir al jugador que ingrese un número y luego pueden elegir cualquier número aquí.
Ahora, si ingresé un inválido número como 10, debería decirme que no
es válido.
Y debería permitirme tal vez haga otro movimiento.
Si ingresara 2, 2 también debe ser inválido.
Entonces, si ingreso 2, también dice inválido porque 2 ya está tomado por x.
Entonces, si el programa me permite inténtelo de nuevo, podría deshacerse de su turno,
pero eso no es realmente justo.
Así que ahora solo voy a decir donde quiero colocar la o? Voy a decir
5, voy a poner movimiento inválido, va a volver a dibujar el
tablero y hay una o y un 5.
Y ahora dice jugador 1.
Y sigues haciendo esto hasta tienes un ganador o un empate.
Solo voy a decir 9.
Ahora tengo una x ahí, válida las entradas son 1 3 4 6 7 y 8.
Voy a decir 3.
Y tratemos de conseguir x a ganar, así que ahora x va a entrar
en ocho y pondré oy 6 solo para mostrarte que el juego funciona con un ganador.
Y luego pongo 7 por x, el juego ahora debería haber terminado. Presiono regresar.
Dice que el jugador uno gana, y incluso tocó un pequeño sonido para mí,
hice algunas cosas elegantes allí.
Así que el juego ha terminado, el jugador uno gana.
Y también debería suceder si el jugador 2 gana o si hay empate.
Así que piensa en cómo quieres para atacar este problema.
Un pequeño programa agradable.
Buscaré una solución y proporcionaré el código fuente en la próxima lección. Gracias.