‫Bienvenido de nuevo y en este video, tendrás un pequeño desafío y deberías crear tic tac toe, como puedes ver aquí,
‫solo un juego de consola, no un juego de formato ni nada por el estilo, sino solo un juego
‫de consola, como puedes ver aquí, con nueve valores o nueve campos y jugador, uno puede elegir un campo después, el jugador dos puede
‫elegir un campo y así sucesivamente.
‫Y por ejemplo, está el campo uno y dos uno.
‫Y ahora es un oh, entonces esto no es un cero, es un oh, entonces el jugador de Stern es y voy a ingresar cinco
‫y puedo ver que cinco se reemplaza por una X y solo los números que pueden ver todavía están disponibles .
‫Entonces, digamos que vuelvo a ingresar cinco como jugador uno, me dirá que la entrada es incorrecta.
‫Utilice otro campo.
‫Está bien.
‫Voy a usar tres.
‫Entonces, digamos que el jugador dos no entiende que solo debes ingresar números y él solo ingresa una G o
‫lo que sea que diga.
‫Por favor ingrese una entrada no incorrecta.
‫Utilice otro campo.
‫Derecha.
‫Así que sigue siendo un jugador para Stern.
‫Entonces, ¿qué va a hacer?
‫Intentará ganar.
‫Así que este será un jugador muy cercano.
‫Va a ganar y estamos contentos de haber ganado, así que tiene tres cruces seguidos y bueno, presione cualquier tecla para
‫reiniciar el juego.
‫Voy a presionar y mantener y tenemos una nueva ronda, por lo que también debe crear una funcionalidad de reinicio.
‫Está bien.
‫Así que eso es todo.
‫Intenta construir eso.
‫Necesitará usar las matrices.
‫Deberá usar el interruptor en caso y métodos y muchas cosas diferentes que hemos tocado en los
‫últimos videos.
‫Así que esto llevará bastante tiempo y su solución puede verse muy diferente a la mía.
‫Y sí, en general, si no llegas a ninguna parte, si esto es demasiado difícil para ti, no te preocupes.
‫Simplemente puede seguir e intentar comprender todos los pasos por los que estoy pasando y voy a explicar
‫todo lo que estoy haciendo.
‫Pero es mejor si realmente lo intentas por ti mismo, porque cuando lo
‫pruebes tú mismo, encontrarás soluciones que catapultarán tu habilidad por mucho, porque simplemente haciendo aprenderás más y con solo mirar,
‫no aprenderás como mucho.
‫Entonces eso es realmente importante.
‫Siempre que te encuentres con áreas y las arregles tú mismo, ahí es cuando realmente comienza el aprendizaje.
‫Y eso es lo que es realmente importante que intentes por ti mismo.
‫Está bien.
‫Así que espero que pause el video ahora y lo pruebe, y esto puede llevar bastante tiempo, por lo que no debería terminar
‫en cinco minutos.
‫Bueno, tal vez estés en lo cierto y puedas hacerlo, pero de lo contrario esto puede llevar un tiempo, más de
‫una hora o incluso más de dos horas según la solución que elijas.
‫Y como dije, hay muchas formas diferentes de resolver este problema.
‫Y solo tengo uno que pensé que era el más cercano a lo que hemos aprendido hasta ahora.
‫Entonces, está usando la funcionalidad que todos hemos aprendido hasta ahora.
‫Así que nada nuevo.
‫Y sí, es por eso que seguiré adelante y construiré la aplicación ahora.
‫Está bien.
‫Entonces, como dije, espero que hayas intentado crearlo por tu cuenta.
‫Así que voy a crear un nuevo archivo de proyecto new.
‫Project, y voy a llamar a ese ejercicio de tic tac toe, y luego será una aplicación de consola una vez más y haga
‫clic en Aceptar, ahora, antes de hacer cualquier lógica compleja donde verifico quién tiene uno y todo ese tipo de cosas, Voy
‫a empezar muy simple.
‫Primero voy a crear nuestro campo de juego.
‫Y con eso me refiero incluso a la escritura de la consola.
‫Así que voy a crear un nuevo método y voy a llamar a ese campo de conjunto vacío estático público.
‫Y lo hago estático solo para poder usarlo dentro de mi método principal.
‫De lo contrario tendría que crear un objeto de ejercicio de tic tac toe para poder utilizar dicho campo.
‫Pero hacerlo estático está totalmente bien.
‫Entonces, dentro de mi método de campo establecido, necesito escribir la consola de leyes en la línea de Vereide y se verá
‫un poco así.
‫Así que entre comillas hay muchos campos vacíos, luego una tubería, algunos campos vacíos y nuevamente algunos campos vacíos.
‫Entonces esta es la primera línea.
‫Luego, vuelva a consolar esa línea derecha.
‫También puede usar C, W doble toque.
‫Esa es la versión más rápida.
‫Y luego dos y las manchas o campos vacíos y nuevamente, una pipa.
‫Y aquí lo que hago es prepararlo para que podamos mostrar los números.
‫¿Y cuáles son los números que quiero mostrar?
‫Bueno, eso es algo que tendremos que usar más adelante o crear más adelante.
‫Entonces, por ahora, solo voy a decir uno, dos y tres.
‫Pero más adelante, tendremos que cambiar eso.
‫Así que voy a agregar eso a mi lista para reemplazar números con variables.
‫Bien, ahora necesito crear un rol similar a ese, pero aquí voy a tener guiones bajos y podemos cambiar eso si más adelante vemos que esto no es suficiente o no
‫se ve tan bien, puede cambiar fácilmente eso más
‫tarde.
‫Está bien.
‫Entonces.
‫Esto es más o menos, tenemos que hacerlo varias veces ahora, así que voy a copiar eso, de hecho.
‫Voy a copiar todo eso.
‫Y ahí estamos.
‫Y finalmente, una fila más de esto, y eso debería ser prácticamente todo.
‫Echemos un vistazo.
‫Llamemos a este método como Field, y veamos cómo se ve en la consola.
‫En realidad, necesitamos ejecutar la consola, pero la línea roja.
‫Está bien.
‫Key es aún mejor.
‫Ejecútelo.
‫Y no estamos en la posición perfecta todavía.
‫Así que echemos un vistazo.
‫Muy bien, un problema aquí es que necesito cinco puntos de distancia, por lo que cinco espacios vacíos.
‫Lo mismo aquí, uno, dos, tres, cuatro, cinco, uno, dos, tres, cuatro, cinco.
‫Ok, eso es bueno.
‫Así que ahora usemos esto y reemplacemos las líneas donde teníamos eso.
‫Así que aquí hay una pequeña prueba.
‫Ya sabes, se trata de hacer que se vea bien y hay algunas pruebas involucradas.
‫Así que voy a usar el mismo enfoque aquí y voy a copiar esas dos líneas y reemplazarlas.
‫Está bien.
‫Ahora, antes, deberíamos tener dos en ambas direcciones.
‫Está probado y ahí estamos.
‫Así que ya se ve mucho mejor.
‫Uno dos tres.
‫está bien.
‫Esos números deberían reemplazarse más adelante, como dije.
‫Pero así es como podemos preparar el terreno.
‫Por lo tanto, puede imaginar que esto ya nos ayudará a restablecer el campo más adelante.
‫Está bien.
‫Entonces, ahora que tenemos eso, necesitamos crear el campo y el campo de juego debería ser, bueno,
‫un campo en términos de programación especial, crear el campo de juego.
‫Y lo que hará es estático o no creará el campo de juego.
‫Pero va a ser el personaje estático del campo de juego de Dockray.
‫Así que también podrías usar enteros o cadenas aquí.
‫Pero los personajes son los que consumen más recursos.
‫Voy a llamar a un campo de juego y aquí necesito tener los diferentes roles.
‫Entonces una fila con el uno, dos y tres y luego
‫lo mismo con el siguiente.
‫Así que cuatro o cinco y seis y así sucesivamente.
‫Así que voy a reemplazar los números en un segundo.
‫Entonces este es el cuatro, cinco, seis, siete.
‫De hecho, son siete, ocho y nueve.
‫Así que ahí estamos.
‫Este es nuestro campo de juego.
‫Ahora, lo que tenemos que hacer es reemplazar esos números aquí con el campo de juego aquí.
‫Así que, en general, jugaré para ustedes debería verse al principio y queremos reemplazar los números aquí
‫más adelante.
‫Por el usuario.
‫Muy bien, lo que usamos aquí en lugar de uno es en realidad este campo de juego en una posición específica.
‫Así que en realidad nos deshacemos de esa parte aquí.
‫Bien, ahora necesitas ver eso un poco mejor.
‫Así que este es el campo de juego y necesito tener el campo de juego en la posición cero cero.
‫Está bien.
‫Y ahora hacemos lo mismo con los dos.
‫Entonces cero.
‫Vamos.
‫Uno y cero.
‫Vamos dos.
‫Y luego la segunda fila, es uno cero uno uno y uno dos si no está seguro de lo que esto significa.
‫Entonces esto es cero cero.
‫Esta es la fila uno.
‫Y esa es la fila dos.
‫OK entonces.
‫Este es Rosero aquí, y este es real, y ahora tenemos que hacer lo mismo con Roe también.
‫Entonces esto va a ser cero.
‫Habrá uno.
‫Y finalmente, tenemos dos para hacer dos.
‫Así que ahora comencemos de nuevo.
‫Y todavía deberíamos obtener el mismo resultado para que seamos uno, dos, tres y así sucesivamente.
‫Excelente.
‫Así que ahora nuestro campo de juego o campo de juego está preparado.
‫Ahora veamos cómo podemos obtener la entrada del usuario.
‫Y lo que necesitamos, por tanto, es crear.
‫Una variable que va a ser nuestro jugador, entonces jugador va a ser, digamos que empezamos con el jugador uno.
‫Entonces dijimos que el jugador dos y verás más adelante por qué tiene sentido establecerlo en
‫dos, luego necesitamos la entrada del usuario y la entrada es cero.
‫Y simplemente lo pondré en cero porque ninguno de los campos aquí es cero.
‫Entonces, usarlo usando cero es genial aquí.
‫Y finalmente, necesitamos un booleano que verifique si la entrada es correcta, porque si no lo es,
‫entonces queremos bien, queremos informar al jugador e intentar obtener la entrada correcta.
‫Muy bien, ahora que tenemos eso, necesitamos crear un do grande o muy largo, mientras que lo hacemos y después de
‫muchas filas tenemos la declaración wild.
‫Y aquí, solo voy a usar verdadero.
‫¿Por qué usan do while con true?
‫Bueno, eso es porque quiero que el usuario siempre pueda ingresar algo en mi juego.
‫Y en este caso, hago un código que se ejecuta aquí y que no se automatizará.
‫Depende de la entrada del usuario.
‫Así que no es un ciclo interminable, pero siempre será cierto mientras juguemos.
‫Entonces es por eso que tenemos que hacer mientras.
‫Verdadero.
‫Está bien.
‫A continuación, lo que tenemos que comprobar es si el jugador uno es el que debería jugar o también es un jugador.
‫Entonces, ¿de quién es el turno?
‫Si el jugador es igual a dos, entonces dicho jugador a uno y si en realidad pudiéramos usar el otro jugador
‫es igual a dos.
‫Por lo tanto, podría usar El's o si en nuestro caso el jugador solo puede tener dos valores.
‫Pero si algo sale mal y por alguna razón los jugadores aumentan a dos, eso siempre será o aumentará y siempre
‫será el problema de que siempre será el jugador también.
‫Así que es por eso que me voy a asegurar, ¿no?
‫Si un jugador es igual a uno, cambia al jugador dos.
‫Así que ahora, en función de quién sea el turno, necesito ejecutar una declaración de cambio.
‫Así que solo voy a decir cambiar de jugador.
‫Entonces, en función de quién sea el turno, ejecutemos un código.
‫Digamos que el caso es uno.
‫Entonces significa jugador un turno.
‫Y de hecho, permítanme agregar un código aquí, código incorrecto siempre que.
‫El programa se ejecuta, así que si su jugador quiere hacerlo, ¿qué queremos hacer nosotros?
‫Bueno, queremos comprobar ¿qué entró?
‫Y asigne bien el número, asigne X a ese número, así que tenemos aquí el campo de juego, así que este es uno,
‫dos, tres.
‫Y lo que quiero ahora es que si es el jugador uno, quiero que esto sea reemplazado por una X.
‫Entonces, si ingresa uno, por ejemplo.
‫Entonces, para hacer eso, simplemente creo otro interruptor aquí, interruptor de entrada, porque según la entrada, quiero marcar este caso para
‫que el jugador ingrese un jugador o campo de juego en la posición cero, el cero debe
‫ser reemplazado con un X y luego queremos romper.
‫Entonces hemos terminado, por cierto, aquí todavía nos quejamos.
‫Eso es porque no salimos de este bucle de cambio aquí y ahora lo hacemos y ahora está sucediendo.
‫Reemplazo el campo de juego con una X y aquí se queja porque usé cuerdas y para asegurarme
‫de que funciona, ahora uso chaar.
‫Entonces, como pueden ver los apóstrofos, están ahí para los personajes.
‫Y como saben, el campo de juego tiene muchos personajes allí.
‫Entonces es una matriz 2D de personajes.
‫Por eso necesito usarlo de esa manera.
‫Está bien.
‫Así que ese es un caso uno.
‫Y ahora necesito hacer lo mismo para los diferentes casos que tenemos.
‫Entonces, para el caso dos, ¿qué necesitamos allí?
‫Necesitamos tener cero uno cuatro tres uno.
‫O en realidad de cero a cuatro, porque debería ser uno cero seis cinco, es uno y uno.
‫Y si no estás seguro de lo que hago aquí, vuelve a comprobar, Rosero, que esta es la posición cero cero, esta es la
‫posición cero uno, la disposición cero dos y así sucesivamente.
‫Entonces esto es lo que estoy haciendo aquí.
‫Bien, entonces los estoy reemplazando con los valores correctos.
‫Entonces el siete está en dos y cero.
‫Ocho es dos y uno y nueve es dos y dos.
‫Entonces eso va a ser.
‫¿Qué pasa si el jugador gana y hay un valor?
‫Y siempre lo reemplazará con un ex.
‫Ahora, lo que podemos hacer ahora es copiar todo este código y hacer lo mismo para que lo escriba un jugador, de
‫modo que podríamos decir, OK, copiemos esto y luego ejecutémoslo para que el jugador en realidad lo voy
‫a mostrar. usted que sólo para ver por qué ese no es el mejor enfoque.
‫Así que voy a agregar otro caso aquí, caso también y ahora tenemos que salir de él también.
‫Entonces, en realidad, esta ruptura aquí.
‫Estando aquí y aquí, también rompemos.
‫Y tenemos otro caso de cambio, por lo que podría copiar este código aquí, de hecho, y
‫puedo pegarlo aquí, pero hay una forma más agradable de crear un método que simplemente verifique.
‫¿Es jugar uno o el jugador en realidad solo devolverá una X o un No.
‫Así que sigamos adelante y creemos este método.
‫Public static void Unter X u oh, solo voy a mantenerlo simple, y lo que necesito aquí es un número
‫entero.
‫Así que necesito una entrevista y voy a llamar a ese jugador, así que lo que hago ahora es cortar este código
‫de aquí.
‫Entonces, qué declaración, voy a cortarla aquí y ya no voy a necesitar esa aquí, todavía necesitaré
‫jugadores y lo que voy a hacer es crear un nuevo personaje.
‫Signo de jugador, y lo voy a establecer en un signo vacío por ahora, o un carácter vacío, que no está vacío
‫y es un espacio aquí.
‫Entonces, si un jugador es igual a uno, entonces podemos hacerlo en una fila aquí.
‫El signo del jugador va a ser.
‫Ex.
‫De lo contrario, si un jugador es igual a jugar, su hijo va a ser el por qué o el cómo en este caso en realidad y ahora.
‫Necesitamos usar nuestra entrada también, así que voy a necesitar ingresar y ¿qué tipo de entrada fue?
‫La entrada era un número entero, correcto.
‫Bien, entonces voy a usar input aquí y input.
‫Y ahora reemplazo esta X aquí con el seno del jugador.
‫Muy bien, ahora lo que podemos hacer es usar este método en lugar de ejecutar este código aquí dos veces.
‫Muy bien, ahora tenemos este método.
‫De hecho, ya ni siquiera necesitamos cambiar de caso porque ya tenemos el reproductor aquí.
‫Entonces decimos jugador uno, y luego simplemente podríamos ejecutar el código aquí.
‫Así que hagámoslo.
‫Eso puso al jugador aquí.
‫Y como tenemos un texto un poco más largo aquí, necesitamos usar las llaves donde lo tenemos porque
‫tenemos un código multilínea que queremos ejecutar.
‫Es por eso que necesitamos ingresar esto.
‫Bien, ahora puedo seguir adelante y puedo deshacerme de toda esta declaración de caso de cambio aquí y solo necesito llamar
‫a mi método aquí.
‫Entonces, el método de llamada se llamó Enter X o.
‫Ah, y aquí va a decir que ingrese X o O primero el jugador.
‫Está bien.
‫Eso será el jugador y luego la entrada y esa será la entrada.
‫Así que solo digo el jugador y la entrada es lo que quiero obtener aquí.
‫Así que también hago lo mismo por el jugador.
‫Y lo que hará es simplemente establecerlo en X u O.
‫Y ejecutará el código correctamente para mí.
‫Y, por cierto, podemos deshacernos de esto porque ya lo hemos reemplazado, por lo que ya
‫no lo necesitamos.
‫Muy bien, ahora verifiquemos la entrada del usuario, porque todavía no lo hacemos.
‫Entonces, aquí, quiero crear otro do while, do while y cuál es el while.
‫Entonces, ¿cuál es la condición?
‫Es la entrada.
‫Correcto es falso.
‫Mientras la entrada sea incorrecta, quiero seguir adelante e intentarlo de nuevo.
‫Entonces aquí, vamos a pedirle al jugador que ingrese su código y.
‫Sí, para seguir adelante.
‫Así que solo voy a agregar a esto aquí.
‫Consuélalo bien.
‫Y jugador en la posición cero.
‫Entonces, ¿cuál es el jugador que le toca elegir su campo?
‫Y ahora necesitamos obtener la entrada del usuario.
‫Así que voy a usar la conversión de entrada a INT 32 y voy a usar la consola que lee la línea.
‫Entonces quiero obtener la entrada del usuario y quiero convertirla en nuestra entrada.
‫Entonces, usará esa cadena y hará un número entero y se almacenará en la entrada.
‫Y ahora podemos seguir adelante y usar la entrada.
‫Por cierto, ya usamos la entrada aquí, pero eso no es un problema porque es el ciclo do while.
‫Entonces va a llegar a esta entrada y la va a cambiar a la que hemos ingresado.
‫Entonces, primero será cero, luego se volverá a verificar y luego será lo que hemos
‫ingresado.
‫Está bien.
‫Así que esta será nuestra clave aquí y ahora.
‫Ejecútelo.
‫Veamos qué pasa.
‫Está bien.
‫Así que ahí estamos.
‫Y no muestra el texto que acabamos de escribir.
‫Así que toda esta línea aquí.
‫Derecha.
‫Pero si presiono enter, entonces aparece.
‫Y eso es porque todavía tenemos la llave aquí.
‫Entonces, dijo Field, lo teníamos antes para que pudiéramos ver lo que hay en nuestro programa o en nuestro
‫juego.
‫Y si me deshago de él ahora, estaremos bien.
‫Entonces, jugador uno Elija su campo y yo solo voy a ingresar uno.
‫Por ejemplo, ahora dice que el jugador elija su campo y yo usaré esos campos diferentes.
‫Ahora, lo que aún no sucede es que nuestro texto aún no se actualiza.
‫Así que eso es algo de lo que tenemos que ocuparnos.
‫Ahora, para hacer eso, necesitamos borrar nuestra consola.
‫Así que la consola no tiene claro qué va a pasar aquí.
‫Y ahora lo que tenemos que hacer es configurar nuestro campo cada vez que estemos en este bucle do.
‫Entonces, el campo set no debe ejecutarse dentro de nuestro main solo una vez, sino que debe ejecutarse cada
‫vez que estemos dentro del bucle.
‫Entonces significa que simplemente estableceremos el campo aquí.
‫Ahora ejecutémoslo de nuevo.
‫Por favor, elija su campo.
‫Y solo voy a usar, digamos, seis.
‫Ahora es el lugar para girar y, por lo tanto, ahora puedo ver que seis entraron de repente.
‫Ahora se deben ingresar cuatro la próxima vez que ingrese algo.
‫Y ahí estamos.
‫Entonces todavía tenemos el problema de que está actualizado.
‫Demasiado tarde.
‫No se actualiza después de que el usuario lo ha ingresado, pero se actualiza posteriormente.
‫Entonces, veamos cómo podemos resolver eso.
‫Y eso es porque dicho campo es antes de que revisemos al jugador.
‫Así que hagámoslo.
‫Ahora verificamos el jugador y luego hacemos esto en el campo.
‫Ahora ejecutémoslo de nuevo.
‫Entonces, escojamos un campo.
‫Voy a elegir el campo cinco y vemos que ahora es cero o no.
‫Ahora, el jugador dos elegirá seis.
‫Eso es una X ahora.
‫Tres va a ser un viejo dos va a ser una X y así sucesivamente.
‫Entonces tenemos esa funcionalidad.
‫Pero lo que todavía nos falta es la capacidad de verificar si el usuario ha ingresado algo que está permitido
‫o no, porque lo que todavía puedo hacer es anular.
‫Entonces, digamos que el jugador uno elige a un jugador para elegir este de nuevo.
‫Entonces, como puede ver ahora, de una carrera anterior a una X, el jugador uno dirá, OK, ahora quiero tener este
‫campo.
‫Entonces él va a entrar.
‫Entonces, lo que debemos hacer ahora es verificar si un jugador ya ha ingresado algo
‫y, si lo hizo, no queremos que el otro jugador permita o pueda anular ese campo.
‫Así que eso es algo que debemos hacer en este bucle do while, porque aquí verificamos
‫si la entrada es correcta y podemos configurar la entrada incorrecta si el usuario no ingresó el valor correcto.
‫Por cierto, mientras estamos en eso, también podemos solucionar un problema que tenemos aquí.
‫Entonces, si entro, digamos G, entonces mi programa falla.
‫Entonces tengo esta entrada que crea un error para que podamos obtenerlo con un try and catch, para que podamos resolver el problema
‫con un try catch.
‫Y esta será una captura de prueba muy, muy simple.
‫Así que no lo voy a hacer más complejo que eso.
‫Y lo único que voy a hacer es yo.
‫Tipo de derecha en la consola, línea derecha, ingrese un número.
‫Entonces, si alguien vuelve a hacer eso, voy a ingresar cualquier cosa, ¿de acuerdo?
‫Aún no se bloquea, pero tampoco escribe en la consola porque se reinicia después.
‫¿O no es así?
‫Bueno, sí, se está reiniciando prácticamente porque no pedimos una próxima declaración aquí.
‫Entonces, lo que debemos hacer a continuación es corregir ese error.
‫Ahora tenemos que comprobar si la entrada es una y el campo de juego.
‫En esa posición, entonces en cero cero, que es la posición única, sigue siendo un carácter de uno, y
‫necesitamos otro corchete aquí.
‫Entonces ese es un caso.
‫Luego dijo la entrada, correcta a verdadera y ahora tenemos que
‫hacer lo mismo con cada campo que tenemos.
‫De lo contrario, si la entrada es igual a dos y el campo de juego todavía está abierto en ese campo, en esa
‫posición, entonces será cero.
‫Uno sigue siendo un dos, entonces por favor continúe y diga la entrada correcta a Drew también.
‫Y aquí me falta otro signo igual.
‫Bien, esto es lo que necesitamos copiar y pegar ahora varias veces para que podamos detectar cada caso.
‫Entonces son tres, cuatro, cinco, seis.
‫Y aquí.
‫Me encontré con un error aquí siete.
‫Ocho.
‫Y nueve y ahora, por supuesto, necesito reemplazar esas posiciones aquí también, y necesito ajustar
‫esos caracteres.
‫Entonces siete, ocho, nueve.
‫Ahora tenemos el tres era un cero para los delanteros en uno cero.
‫Entonces cinco fue en uno uno uno uno en realidad seis fue con uno a ese uno fue un dos cero.
‫Tenía uno y dos para dos, así que ahora tenemos todos los casos correctos.
‫Cuando todo está bien y ahora necesitamos una elsea, entonces algo no es correcto, entonces queremos informar al
‫usuario sobre ello.
‫Así que consola esa línea roja y la línea de entrada incorrecta.
‫Utilice otro campo y también podemos asegurarnos de que la entrada correcta esté configurada como falsa.
‫Entonces, lo que realmente podemos hacer aquí es crear la región, así que voy a llamar a esa región y va
‫a y.
‫Justo después de esta pieza aquí y región.
‫Así que permítanme hacer eso, y ahora también quiero informar sobre lo que hace esta región y su prueba o prueba si el campo
‫ya está tomado, porque esa es la idea detrás de toda esta región o detrás de todo este código salvaje
‫que tenemos aquí, que comprobaciones, está bien, ¿se toma este combustible o no?
‫Si se toma, haga otra cosa.
‫Si no está en uso, continúe y ejecútelo nuevamente.
‫Veamos claro que uno usa un jugador para intentar usar uno nuevamente, y dice, entrada incorrecta,
‫use otro campo.
‫Así que ahora usa eso, ¿de acuerdo?
‫Y como puede ver, simplemente puedo ingresar los diferentes valores y todo parece estar bien.
‫Pero como también puede ver, el jugador uno ya ganó dos veces.
‫Entonces él ha cruzado aquí.
‫Entonces eso es algo que debemos verificar a continuación.
‫Así que tenemos que comprobar si hay un ganador y creemos una nueva región.
‫Justo debajo de dicho campo, donde buscamos al ganador.
‫Así que aquí,
‫la nueva región y yo voy a y la región directamente y la región y aquí tengo toda la condición ganadora de verificación de
‫código.
‫¿Y cómo hacemos eso?
‫Bueno, tenemos que comprobar qué personajes tienen los diferentes jugadores.
‫Así que hicimos que ese jugador fichase por el jugador.
‫Uno es un jugador X cuatro, dos es un O.
‫Entonces, lo que tenemos que comprobar ahora.
‫O en realidad, ¿fue la forma correcta?
‫Sí, para el juego uno, es un juego extra dos es un oh, así que estos son los personajes correctos.
‫Entonces, lo que tenemos que verificar aquí o lo usaré con una matriz o lo haré
‫con una matriz, los personajes del jugador son una X y una O, y ahora, para cada carácter que tengo para cada carácter de jugador char en el jugador Char, Quiero
‫comprobar la condición ganadora.
‫Entonces, lo que hará es verificar si es cierto para una X o si es cierto para una salida.
‫Entonces aquí simplemente marcamos OK, si el jugador uno está ganando o el jugador dos gana.
‫Y lo hacemos comprobando
‫si jugar cero cero es igual al carácter del jugador.
‫Y el campo
‫de juego cero uno es igual al jugador Cha y también el campo de juego tenía cero, dos es igual al jugador CHA.
‫Entonces, si ese es el caso, entonces continúe y ejecute algún código, así que aquí, solo voy a escribir
‫algo como, por ahora, S. W. , tenemos un ganador.
‫Está bien.
‫Así que solo quiero probar eso antes de escribir la declaración if completa, que es mucho, mucho más larga.
‫Entonces, el jugador uno va a ganar la primera fila porque este es el único camino al que hemos entrado aquí.
‫Entonces, en caso de que para los tres campos dentro de esa fila, el personaje sea el mismo, tenemos un ganador.
‫Así que eso es prácticamente lo único que hemos establecido aquí.
‫Entonces voy a decir, está bien, el jugador uno va a ser uno.
‫El jugador dos será para el jugador.
‫Uno va a ser dos, cinco y tres.
‫Y tenemos un ganador.
‫Entonces ves que la primera fila está llena de ceros u O, lo que significa que tenemos un ganador.
‫Y ahora lo que tenemos que hacer es reemplazar eso con todas las diferentes condiciones que podemos
‫tener.
‫Entonces, con todas las posiciones diferentes y si miras el juego, voy a abrirlo nuevamente.
‫Las posibles condiciones ganadoras son uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve.
‫Luego tenemos siete cinco tres uno cinco nueve uno cuatro siete, dos, cinco, ocho y tres seis nueve.
‫Entonces tenemos uno, dos, tres, seis.
‫Más dos, por lo que tenemos ocho condiciones diferentes en las que tenemos un ganador, y eso es más o menos lo que
‫tenemos que hacer aquí.
‫Entonces necesitamos crear esto ocho veces con las diferentes opciones.
‫Así que voy a detener eso aquí.
‫Y cada vez que necesitamos usar un pedido firmado porque esas son las condiciones para ganar el pedido.
‫Así que voy a hacer eso seis veces más.
‫Entonces tenemos uno, dos, tres, cuatro, cinco, seis, siete, ocho.
‫Eso es bueno.
‫Y ahora, como dije, las diferentes condiciones son cero, cero y así sucesivamente.
‫Ahora, lo mismo con uno uno cero uno uno y uno dos, luego con una tercera fila, dos a dos
‫cero dos uno y dos dos.
‫Luego tenemos los horizontales que van de arriba a abajo.
‫Entonces cero cero, luego uno cero y dos cero.
‫Entonces tenemos uno y uno en realidad cero y uno lo siento, cero uno.
‫Luego uno uno y uno dos cero, dos a uno y dos dos, y ahora tenemos
‫los diagonales, entonces es cero cero y luego comprobamos en cero cero, luego uno uno y dos dos.
‫Y finalmente lo tenemos.
‫Uno, dos, uno, uno y.
‫A cero, entonces esas deberían ser las condiciones que tenemos y ahora solo nos falta comprobar quién tiene una.
‫Entonces, lo que verificamos aquí es con esta larga declaración.
‫Si el jugador, personaje o carácter del jugador es igual a una X, sabemos que el jugador dos tiene uno.
‫Entonces, la línea roja de la consola en un reproductor de nueva línea también tiene una.
‫Y aquí tengo que tener mucho cuidado así.
‫Está bien.
‫Entonces ese es el único caso.
‫Y luego el otro caso es que el otro jugador ha ganado.
‫Así que voy a usar El aquí y diré que el jugador uno ha ganado.
‫Y también quiero salirme del juego aquí.
‫Así que entra aquí.
‫Ejecútelo y veamos si realmente podemos reproducirlo.
‫Entonces digamos que queremos tener la diagonal.
‫Entonces uno, dos, cinco, tres, nueve.
‫Y vemos que el jugador uno tiene uno.
‫Entonces, lo que queremos ahora es reiniciar el juego y queremos permitir la creación de una nueva ronda para que los
‫jugadores puedan correr y jugar nuevamente.
‫Y lo que tampoco hemos cubierto es un empate.
‫Así que aún tenemos que cubrir el sorteo.
‫Pero primero, reiniciemos el campo una vez que tengamos un ganador.
‫Entonces, lo que quiero hacer es antes de que salga, quiero restablecer el campo.
‫Entonces, aquí para hacer un campo de reinicio y para establecer un campo, ya tenemos una función para eso o un método.
‫Creamos este método de campo establecido que hace precisamente eso.
‫Establece el campo una vez más.
‫Pero lo que todavía no hace es que no restablece nuestro campo de juego porque nuestro campo de juego actualmente está configurado en
‫un valor específico.
‫Entonces esto podría ser una X, esto podría ser una O y así sucesivamente.
‫Entonces, para asegurarnos de que siempre podamos restablecer, debemos copiar eso.
‫Y es una versión estándar.
‫Y voy a llamar a ese campo de juego inicial.
‫Así es como es inicialmente, y este es el que anulamos constantemente.
‫Entonces ahora necesitamos otro método que hará el restablecimiento y el método de restablecimiento se
‫llamará campo de restablecimiento de vacío estático público.
‫Y lo que tengo que hacer aquí es, en primer lugar, configurar mi campo de juego a la inicial del campo de juego.
‫Entonces, cómo fue inicialmente y luego puedo configurar mi campo.
‫Ahora reiniciemos el juego una vez que el jugador haya ganado y ya está aquí.
‫Entonces el jugador uno tiene uno o el jugador dos tiene uno.
‫Así que reiniciemos aquí.
‫Restablecer campo.
‫Y, por cierto, tal vez también deberíamos decirle al jugador o decirle al usuario que puede reiniciar el juego.
‫Así que la línea derecha de la consola, por favor, y / o presione cualquier tecla para reiniciar el juego.
‫Y él solo diría.
‫Consola pensó Ricky, y luego, donde se ambienta el juego.
‫Bien, probémoslo.
‫Elija su campo uno, dos, cinco, tres, nueve, uno tiene una jugada.
‫Pulsa cualquier tecla para reiniciar el juego.
‫Presiono cualquier tecla y ahí están.
‫Hemos reiniciado el juego y ahora son los jugadores por turnos, un jugador por girar, como puedes ver aquí, elige tu
‫campo.
‫Oh, intentemos de nuevo.
‫Como puede ver, ahora tenemos el orden diferente.
‫Juega dos como uno.
‫Pulsa cualquier tecla para reiniciar el juego.
‫Genial si escribo algo incorrecto y todavía aparece este error, pero está bien.
‫Y eso es exactamente lo que quería.
‫Así que lo entiendo.
‫Cojo el error con el intento.
‫Ponte al día con had.
‫Entonces ahora solo queda una cosa y es si hay un empate y hay muchas formas de resolver este
‫problema.
‫Y la más fácil es crear una variable que se llama turnos.
‫Y esta variable simplemente se mantendrá.
‫La cantidad de turnos que ya hemos jugado en turnos es igual a cero.
‫Así que al principio tenemos cero vueltas.
‫Y cada vez que reiniciamos el campo o configuramos el campo, queremos aumentar los turnos en uno.
‫Porque este método, ¿cuándo se llama?
‫Comprobemos, dijo Field.
‫Se llama Cada vez que entramos en el ciclo Do While, y eso es solo cuando el usuario realizó una
‫entrada correcta.
‫Ahora, si tenemos este campo de giros, también debemos tener cuidado de restablecer ese campo de giros una vez que
‫restablecemos todo nuestro campo.
‫Por campo, me refiero a que este es el campo de nuestro juego.
‫Pero la disuasión es un campo porque es una variable global.
‫Derecha.
‫Así que quiero reiniciar los turnos una vez que reiniciemos el juego.
‫Entonces, restablecer el campo aquí, decimos que el turno es igual a cero o, para ser más precisos, porque ya aumentamos los turnos en
‫uno.
‫Necesitamos hacerlo justo después.
‫Entonces ahora solo necesitamos verificar si esta condición es verdadera.
‫Así que aquí teníamos la condición ganadora si un elz y aquí esta declaración if y aquí tenemos la declaración de pérdidas y ganancias.
‫Entonces, si no tenemos un ganador, tenemos un dron.
‫O en realidad, para ser más precisos, el turno escurridizo es igual a 10.
‫Entonces tenemos un empate.
‫Entonces, lo que decimos aquí es lo mismo que hacemos aquí.
‫También necesitamos salir del juego y también tenemos que reiniciar el juego.
‫Así que el campo de investigación y.
‫Deberíamos informar al jugador que no hubo un ganador, así que solo voy a ingresar, dibujar como texto aquí.
‫Muy bien, ahora todavía tenemos un problema en el juego, así que, en primer lugar, consigamos un empate.
‫Primero revisemos el sorteo.
‫Entonces uno, dos, tres, cuatro.
‫Seis, cinco.
‫Ocho, nueve y siete, y vemos que nos emborrachamos, está bien, presione cualquier tecla para restablecer el juego que también
‫funciona.
‫Ahora intentémoslo de nuevo.
‫Bueno, en realidad, no intentarlo, sino ganar.
‫Y vemos al jugador dos cuando uno presiona Enter y nuestro juego no se reinicia.
‫Y eso tiene que ver con nuestra variable estática aquí.
‫Así que esta inicial del campo de juego del personaje.
‫Y lo que tengo que hacer es deshacerme de él aquí y tengo que despegarlo para crear
‫una variable local, que estará dentro de nuestro campo de reinicio.
‫Así que solo voy a crear esta inicial del campo de juego y lo voy a establecer en mi campo de juego.
‫Así que probemos eso una vez más.
‫Uno dos tres CUATRO CINCO SEIS SIETE.
‫Juega uno tiene uno.
‫Bien, ahora uno, dos, tres, cuatro, cinco, seis, siete.
‫Jugar dos es uno.
‫Y Ricky y lo ves se reinicia.
‫Ahora, algo que descubrí fue probado y vi que todavía había un pequeño error:
‫dos, uno, tres.
‫Cuatro, luego cinco, seis y ocho.
‫Y como puede ver, tenemos una condición en la que el jugador tiene una, pero no está atrapada o no
‫está atrapada o atrapada aquí.
‫Entonces puede ver que el jugador dos tiene uno.
‫Entonces, aunque el jugador uno tiene uno con cero cero cero.
‫Oh.
‫Así que todavía hay un pequeño problema en mis condiciones aquí.
‫Y es posible que ya lo hayas descubierto antes.
‫Así que te mostraré cómo solucionarlo.
‫Y esa debería ser esta condición aquí.
‫Entonces cero uno, entonces es uno uno.
‫Y este no debería ser uno dos, sino dos uno.
‫Ahora probémoslo de nuevo.
‫Veamos si detectamos esta condición, entonces uno, dos, tres, cinco, cuatro, ocho, y vemos al jugador dos como
‫uno.
‫Está bien.
‫Así que tenemos ese y sí, así que eso es todo.
‫Nuestro juego funciona y hace lo que debería.
‫Hay algunas cosas que aún podrías mejorar, por supuesto.
‫Entonces, por ejemplo, este signo de carácter.
‫Entonces entregamos una entrada y comprobamos esa entrada una vez más, creamos un signo de carácter y así sucesivamente.
‫Pero podríamos hacerlo aún más fácil para que no tomemos al jugador aquí.
‫Pero lo que sí tomamos es un personaje que es el carácter del jugador o el signo del jugador.
‫Entonces debería ser esto.
‫Podría ser lo mismo.
‫Entonces, el signo de jugador tiene más sentido porque lo hemos usado aquí.
‫Entonces no necesitaríamos crear todo ese código aquí.
‫Así que deshagámonos de eso.
‫Y en su lugar, cuando llamamos a este método, lo que hacemos aquí, entregamos el carácter.
‫Entonces, para el jugador uno, dijimos que era la O, creo, y para el jugador dos, era la X, así que eso hará
‫lo mismo.
‫Y ahora hemos reducido un poco nuestras líneas de código e incluso puede seguir adelante y mejorar el código aún
‫más.
‫Pero eso fue solo un código que creo que debería poder escribir basándose en lo que ha aprendido hasta
‫ahora en este curso.
‫Muy bien, espero que logre hacer eso, aunque se veía muy diferente en su caso y, por favor,
‫continúe y comparta su solución o si tomó mi solución que tengo aquí y la mejoró,
‫continúe y compártala como bien.
‫Y sí, eso es todo.
‫Un video bastante largo.
‫Yo sé eso.
‫Pero espero que hayas aprendido mucho de él.
‫E incluso si no lo hizo usted mismo, simplemente lo siguió y trató de construirlo.
‫Así que nos vemos en el siguiente video.
‫Donde vamos a investigar un tema diferente.
‫Así que nos vemos allí.