Programando un tres en raya

  Рет қаралды 165,376

Alva Majo

Alva Majo

Күн бұрын

Пікірлер: 743
@AlvaMajo
@AlvaMajo 8 ай бұрын
🤓 "En realidad Guinxu tiene razón porque..." kzbin.info/www/bejne/jmm9koKLn7ydqqc
@elrent5109
@elrent5109 8 ай бұрын
Jajaja
@faztter_dev
@faztter_dev 8 ай бұрын
Xd
@shadowind30
@shadowind30 8 ай бұрын
Hare como que no vi eso...
@eduardo6141
@eduardo6141 8 ай бұрын
Como dice Alva siendo el número de casillas N, los diferentes movimientos no son N!. Es N, más el sumatorio de(i*(i+1)*…*N) de i = 1 a i = N-1. 1 casillas -> 1 2 casillas -> 4 3 casillas -> 15 4 casillas -> 64 5 casillas -> 325 6 casillas -> 1956 7 casillas -> 13699 8 casillas -> 109600 9 casillas -> 986409 este código java calcula los movimientos posibles en un tablero de N casillas, sin tener en cuenta que la partida finaliza en algún caso anterior a haber completado el tablero-> public class Main { public static void main(String[] args) { int casillas = 9; int tot = casillas; for (int i = casillas - 1; i > 0; i--) { int m = i; for (int j = i + 1; j
@Focaris439
@Focaris439 8 ай бұрын
si lo que calcula la ia son los posibles movimientos, no seria bueno para optimizar, crear una lista para cada grupo desde un primer movimiento y eliminar del calculo todas las variaciones imposibles? onda si el primer movimiento se coloca en la primera casilla,eliminar todas las combinaciones que se pueden hacer cuando el primer movimiento no es esa primera casilla a lo mejor no y hasta consume mas recursos pero me parece que seria mas rapido
@Ushi_goroshi
@Ushi_goroshi 8 ай бұрын
2:42 lo mejor del video jajajaja
@RobopYoutube
@RobopYoutube 8 ай бұрын
2:42 simplemente XDDDDDDDDDDDDDDDDD
@RobopYoutube
@RobopYoutube 8 ай бұрын
5:44 JAJAJAJAJJAAJAJJAJA
@RaulYoryi
@RaulYoryi 8 ай бұрын
​@@RobopKZbin Me spoileaste xd
@RobopYoutube
@RobopYoutube 8 ай бұрын
@@RaulYoryi perdón jeje 😅
@Pere6464
@Pere6464 8 ай бұрын
2:28 guinxu jumpscare
@FBI-zi9hd
@FBI-zi9hd 8 ай бұрын
casi me dio un ataque y creo que me dejo con trastorno de estrés postraumatico
@UltimateNexder
@UltimateNexder 8 ай бұрын
5:42 guinxu jumpscare v2
@Crafty1255
@Crafty1255 8 ай бұрын
Guillester, cojerme a guillester xd
@YAKOFIRE
@YAKOFIRE 8 ай бұрын
JAJAJAJAJA justo después de revisar el minuto cuando leí el comentario apareció.
@CamiFoncho
@CamiFoncho 8 ай бұрын
🤓☝️
@MatesMike
@MatesMike 8 ай бұрын
Es que estáis hablando de cosas diferentes. Jinxo habla de una cota superior de las posibles partidas. Tú hablas de la suma de todos loe estados posibles de todas las diferentes partidas
@VoidZRD
@VoidZRD 8 ай бұрын
Ostras, Mates Mike 😳
@xxnombre_genericoxx
@xxnombre_genericoxx 8 ай бұрын
se viene colab 😱
@ManuDc_128
@ManuDc_128 8 ай бұрын
Los batidos milkshake no mejoran tu ortografía 😔
@davidrivera1856
@davidrivera1856 8 ай бұрын
Es correcto lo que dice Alva y yo también lo critique, Alva en todo momento habla de "movimientos" o "estados de juego" y evidentemente tiene razón. Espero que puedas dar una explicación matemática a ese concepto para que Alva entienda que hay matemáticas detrás igual pero Guinxu se equivoca porque entiende mal el concepto, no pregunta cantidad de estados finales de juego sino movimientos posibles que es lo mismo que todos los estados posibles del juego.
@nahuatlatofl
@nahuatlatofl 8 ай бұрын
Colab????
@SOYUNATORTUGUITA
@SOYUNATORTUGUITA 8 ай бұрын
0:00 LO DIJO, DIJO LA FRASE!!!!
@riuxiabv224
@riuxiabv224 8 ай бұрын
El profesor: pregunten sin miedo que no muerdo Tambien el profesor cuado preguntas algo: 00:25
@Parzival-dev
@Parzival-dev 8 ай бұрын
Salu2 Alva
@VictorBenitoGR
@VictorBenitoGR 8 ай бұрын
00:24 *
@Noctowll
@Noctowll 8 ай бұрын
Mi ansiedad por los cielos luego de que al profesor el cambia la cara y me llama puto gilipollas xD
@VITOLINOBOSS
@VITOLINOBOSS 8 ай бұрын
sdjksdjk me copiaste el comentario xd kzbin.info/www/bejne/o32vo31rgr5ke7c&lc=UgzHSonSsd3AZ7gL5Y54AaABAg&ab_channel=AlvaMajoClips
@adrongames
@adrongames 8 ай бұрын
Y qué pasa con los poderes o habilidades de los personajes?
@camposg4878
@camposg4878 8 ай бұрын
Casi me dio un paro cardíaco cuando dijo que usaría los 0 para las X y los 1 para las O, en lugar de usar los 0 para las O (que es lo más lógico) y los 1 para las X
@kaoD
@kaoD 8 ай бұрын
Al contrario. El primer jugador en jugar es el X, por lo que si su índice es el 0 todos los cálculos del resto del juego (p.ej. de quién es el turno dado un número de turno) cuadran sin hacer conversiones.
@MissiFull
@MissiFull 8 ай бұрын
@@kaoDCreí que el primero en jugar sería el NO negro
@angeleakane1189
@angeleakane1189 8 ай бұрын
@@kaoD No entiendo bien a qué chucha te refieres. Creo que daría igual cuál es 0 y cuál es 1, según mi experiencia programando. Ya que, otros cálculos como de quién es el turno se guardan en otro lado y no tienen directamente que ver. Aunque también depende cómo esté estructurado el código. Pero, por lo general, eso no debería afectar en nada. Quizás guarda los valores de las ubicaciones de las jugadas en un vector, o array. Y en otra variable se guarda de quién es el turno, por ejemplo.
@kaoD
@kaoD 8 ай бұрын
@@angeleakane1189 currentPlayer = totalTurns % 2 En el turno 0 va el jugador 0. En el turno 1 el jugador 1. En el turno 2 el 0... y así sucesivamente. ¿Puedes guardar el jugador actual? Sí, pero es mucho más sencillo calcularlo en lugar de manejar estado mutable manualmente. Todo lo que puedas calcular y no guardar es una fuente menos de bugs.
@INSANO7887
@INSANO7887 26 күн бұрын
@@kaoD lo de que la X empieza TE LO SACASTE DEL...(correcion)no todos juegan asi
@Raromoron
@Raromoron 8 ай бұрын
¡Gracias por tu video, Alva!. Seguire apoyando tu desarrollo de videojuegos: con vistas y algunas monedas.
@guillermoortegasardina6694
@guillermoortegasardina6694 8 ай бұрын
Subele un poco a tus aportes pa que se compre el Ferrari 😊
@Raromoron
@Raromoron 8 ай бұрын
@@guillermoortegasardina6694 Claro, ya vere como subo las aportaciones. Espero que los demas que siguen a Alva no se queden atras y busquen alguna moneda para darle. Cada centavo cuenta🤑
@FBI-zi9hd
@FBI-zi9hd 8 ай бұрын
Recuerdo una vez haber jugado un juego de la página de cartoon network que era como tres en en raya. Te ponían un tablero con 9 espacios, y tenías que elegir una casilla. En la casilla que elegías tenías que jugar una batalla con mecánicas completamente distintas. El que ganaba marcaba esa casilla como una X o una O según quien hubiese ganado esa batalla. Ganaba la partida el primero que ganase tres batallas en una línea recta.
@ProNautilus69
@ProNautilus69 8 ай бұрын
Creo que we llama super 3 en raya
@FBI-zi9hd
@FBI-zi9hd 8 ай бұрын
@@ProNautilus69 era de una serie llamada "OK KO: Seamos héroes". No se si la recuerdas
@jorgel.4076
@jorgel.4076 8 ай бұрын
Como proyecto personal, hice un tres en raya, y para programar la ia lo que hice fue, guardar todas las posibilidades de Victoria interpretando el tablero como un array, siendo creo que unas 9, y en cada movimiento la IA lo que hacía era leer cual de los 9 movimientos eran más probables, ignorando los que el usuario ya había bloqueado, la gracia era que con una posibilidad de 60% iba a escoger un posibilidad que haría ganar la IA, y un 40% que haría ganar al usuario, haciendo que existiera un 40% de posibilidades de que la IA te quitara la Victoria
@Kevin05-RindoCAT
@Kevin05-RindoCAT 8 ай бұрын
Muy buen vídeo Alva. Tengo ganas de ver qué tal prosigues con el desarrollo. Te descubrí hace poco y me he ventilado la mayoría de vídeos de tu canal. Tienes un carisma increíble y la verdad que tus vídeos son muy buenos. También pillé la Majorariatto Collection, me he pasado Majotori y estuvo muy guapo, y ando ahora viciado a Pureya, que vaya juegazo que es. Sigue así que eres increíble!!
@MdeMier
@MdeMier 8 ай бұрын
Comentario Patrocinado.
@aimarxv705
@aimarxv705 8 ай бұрын
El menos fan
@Joquendo
@Joquendo 8 ай бұрын
La cuenta secundaria de Alva Majo:
@blackshadow8041
@blackshadow8041 8 ай бұрын
Lo que has hecho es básicamente un algoritmo minimax, que suele ser lo más común para este tipo de juegos. Y como el número de jugadas distintas es relativamente bajo en el 3 en raya, puedes permitirte explorar todo el espacio de búsqueda. En el ajedrez por ejemplo, se limita a una profundidad concreta para hacerlo viable y se usan mejoras como la poda alfa-beta. Si lo buscas debería serte bastante fácil encontrar un ejemplo de este algoritmo para el 3 en raya perfectamente optimizado, y a partir de ahí adaptarlo por si quieres que funcione de manera algo distinta (Como por ejemplo, como has mencionado, devolviéndote el número de empates, victorias y derrotas a partir de un turno anterior).
@rlasc84
@rlasc84 8 ай бұрын
Incluso podría regular la dificultad con la profundidad creo. O encontrar una forma de que minimax no juegue siempre igual para darle variedad al juego
@quaa5901
@quaa5901 8 ай бұрын
​@@rlasc84Se soluciona facil, que el programa seleccione un numero random del 0 al 1 y segun el resultado que acepte o niegue la jugada perfecta. Segun el indice de error que se le configure seria la dificultad de la ia. Para un proyecto de secundaria aplique justamente eso kasjaksj
@labl-k7e
@labl-k7e 8 ай бұрын
Alva, yo soy ingeniero (civil) y debo confesar que me la metiste! jajaja dije, no, la respuesta es 9! y medio segundo despues explicaste como realmente esa no es la solucion! algo que tu si viste y un ingeniero no, tambien me sorprendio mucho el video de guinxu retandote a hacer las cosas sin matematicas y lo bien que resolviste las 3 situaciones. Es de envidiar tu capacidad de resolucion de problemas, si fueses ingeniero, destacarias porque esa capacidad mas las matematicas, serias muy bueno (aunque probablemente infeliz). Que genio.
@luis_ra_2401
@luis_ra_2401 8 ай бұрын
kzbin.info/www/bejne/jmm9koKLn7ydqqc
@SabakuChannel
@SabakuChannel 8 ай бұрын
Plus, si harcodeas la primer jugada (que haga siempre lo mismo pero rotando para disimular) ya te ahorras tambien el primer calculo que es el mas extensivo
@spyro4997
@spyro4997 8 ай бұрын
0:33 mi compa el de los if
@alejandro01987
@alejandro01987 8 ай бұрын
¿Tienes un algoritmo mejor?
@irving.cisneros
@irving.cisneros 8 ай бұрын
​@@alejandro01987mi compa el que pregunta por un algoritmo mejor.
@frozonus9595
@frozonus9595 8 ай бұрын
if mi tío me agarra: return radio anal ++
@alejandro01987
@alejandro01987 8 ай бұрын
@@irving.cisneros si soy 😂
@SagePhantom
@SagePhantom 8 ай бұрын
​@@alejandro01987Mi compa el que dice si soy
@albertmiquel6207
@albertmiquel6207 8 ай бұрын
Joder Alba... Me he reído un loco en la calle con el 00:25. Puto amo
@baconless
@baconless 8 ай бұрын
Me huele a que este señor es Alva Majo, Desarrollador de videojuegos Indie, que actualmente esta desarrollando un juego de anime del tres en raya... Pero es solo una teoria...
@equpmv
@equpmv 8 ай бұрын
En qué te basas para decir eso? Qué pruebas tienes? (La sociedad de hoy)
@baconless
@baconless 8 ай бұрын
@@equpmv Ambos evaden impuestos en busca de un Ferrari, espero esto sea suficiente.
@Unknow_zz
@Unknow_zz 8 ай бұрын
A GAME THEORY
@eleeveev9846
@eleeveev9846 8 ай бұрын
Dios nos ha iluminado con su sabiduria
@ZorroTibetano
@ZorroTibetano 8 ай бұрын
Jajaja próximamente en un video me espero algo así. Alva: Ginxu ya llegué! Ginxu: Que?, tan temprano? Alva: Si!
@elfaro4029
@elfaro4029 8 ай бұрын
*Risas enlatadas
@gonzalocuadrado21
@gonzalocuadrado21 8 ай бұрын
"Se puede optimizar pero lo voy a dejar así que funciona y ya lo mejoraré en el futuro" Jamás lo revisará
@rbermejoa
@rbermejoa 7 ай бұрын
Alva como siempre te digo me encantan tus vídeos y eso que no juego a nada pero compro tus juegos 😅. Me he quedado completamente alucinado con el algoritmo que has hecho (me gusta más llamarlo así que IA jeje). Soy informático y programo en ocasiones aunque no es mi especialidad... Y esto que has hecho es maravilloso: eres incapaz de hacer algo mediocre, ojalá hubiera más profesionales como tú en cualquier ámbito. Lo importante es ser apasionado ❤
@retrogameplaysgordis
@retrogameplaysgordis 8 ай бұрын
Buen video! (Lo acaba de subir)
@THEmasterWolf11
@THEmasterWolf11 8 ай бұрын
buen video! (Lo acaba de subir)
@clemente_01
@clemente_01 8 ай бұрын
buen Video! (Lo acaba de subir)
@ParaelRecuerdo
@ParaelRecuerdo 8 ай бұрын
Jejeje qué gracioso eres! :)
@DonEnye
@DonEnye 8 ай бұрын
También está la variante de peloteo "Buen vídeo, como siempre".
@alvarobencosme5348
@alvarobencosme5348 8 ай бұрын
Buen video (Luego lo veo)
@hiruzensarutobithechaos4086
@hiruzensarutobithechaos4086 8 ай бұрын
Amo estos crosovers 5:42
@GGGamesFNaF
@GGGamesFNaF 8 ай бұрын
5:10 No sería más intuitivo 1=X y 0=O? xD
@ezninaaguila4209
@ezninaaguila4209 8 ай бұрын
Para ami igual ajja
@jeanabraham5355
@jeanabraham5355 8 ай бұрын
Seria mas intuitivo, pero al ser sus valores binarios así: "X=01011000", y "O=01001111"; Podria ser muy pocos milisegundos mas lento, supongamos un milisegundo mas por calculo. Por lo que si es mejor utilizar 0 y 1, ya que sus valores decimales y binarios son los mismos: 1=1, 0=0
@xxfalconxxroblox9325
@xxfalconxxroblox9325 8 ай бұрын
GGgames que haces aquí?
@apmtechnology
@apmtechnology 8 ай бұрын
Al principio viendo el video pensaba "que manta de tío, si hubiera estado en la época de los 8086, lo habría pasado mal", luego remonta, y realmente se preocupa por la optimización de código. CONGRATS!! :)
@_Izziee_
@_Izziee_ 8 ай бұрын
Cada video actualizando este juego me emociona más, estoy esperando con ansias el resultado final, sigue así Alva 😃
@kaoD
@kaoD 8 ай бұрын
Se me ocurre que se pueden almacenar todas los estados precalculados. Asumamos por ejemplo que cada estado ocupa 32 bytes * 549945 estados (tirando a la alta) son menos de 18Mb.
@informagico6331
@informagico6331 8 ай бұрын
- Alva Majo sin saber que está implementando la solución ingenua de un árbol de decisiones recursivo :D - Guinxu sin saber que ha calculado mal los posibles valores de un tablero porque solamente ha hecho las permutaciones de las casillas, y no las variaciones con repetición de los posibles valores de las casillas (vacía, x, o) (3^9) que calculan los estados del tablero :DD
@pan_con_jamon268
@pan_con_jamon268 8 ай бұрын
Siii. En el tres en raya la cantidad de movimientos máxima seria más bien 9! * 3^9 y no simplemente 9!. Aunque también es verdad que 9! * 3^9 tampoco seria la cantidad de movimientos totales posibles. Ya que toma en cuenta movimientos ilegales (los cuales son muchos) y da un numero muy grande comparado al que indica alva (aunque si indica el numero máximo). Creo que la única manera de hallar la cantidad de movimientos legales totales con matemáticas seria hallando la de los ilegales primero y luego restarlo con 9! * 3^9. Pero teniendo en cuenta que alva ya lo encontró a pura fuerza bruta. No lo veo necesario.
@unpeztropical5492
@unpeztropical5492 8 ай бұрын
ok
@dodzv
@dodzv 8 ай бұрын
​@@pan_con_jamon268 literalmente el mensaje que buscaba🥹
@marc0xA
@marc0xA 8 ай бұрын
​@@pan_con_jamon268eres panconjamonista?
@pan_con_jamon268
@pan_con_jamon268 8 ай бұрын
​@@marc0xA Cómo lo supiste?? 😮😮
@Martut5000
@Martut5000 8 ай бұрын
Al jugar un juego como el tres en raya, realmente no hay nuevas jugadas que se puedan hacer. Por lo tanto, si planeas jugarlo N veces durante tu sesión de juego, en lugar de calcular el mejor movimiento cada vez que juegues, puedes hacerlo solo una vez antes de compilar el juego y guardar el mejor movimiento para cada situación en una estructura de datos esto puede ocupar unos cuantos Kbytes en tus archivos. De esta manera, cuando juegues, el tiempo necesario para determinar la mejor jugada será constante. Este mismo enfoque se puede aplicar a extensiones del tres en raya, como el cuatro o cinco en raya, donde el cálculo del algoritmo podría llevar más de unos pocos segundos.
@apoloneo3565
@apoloneo3565 8 ай бұрын
Programación Dinámica. Tiene sentido
@doncangrejo5510
@doncangrejo5510 8 ай бұрын
2:28 ¡Santos bacalaos, es el jefe!
@FreeDie890
@FreeDie890 6 ай бұрын
Hola Alva, soy Jorge y he estado viendo los videos de tu novela del tres en talla y tengo una propuesta interesante aunque algo difícil de elaborar. Mis amigos y yo nos inventamos el tres tres en ralla que consiste en un 9x9, es decir como si tuvieras 9 tableros del tres en ralla. La forma de juego es simple, el primero hace un círculo/Cruz en el tres en ralla del medio y dependiendo de donde haga el círculo/Cruz el contrincante tendrá que hacer el círculo/cruz en el tres en ralla de donde haya tirado la primera persona, te pongo un ejemplo. El primero hace Cruz (en el tres en ralla del medio) arriba a la izquierda, pues el segundo tendrá que hace círculo en el tres en ralla de arriba a la izquierda y así sucesivamente. Como el tres en ralla es un juego muy simple pensaba que esto lo podrias utilizar para un nivel muy avanzado. Un saludo
@OmegaVideosOng
@OmegaVideosOng 8 ай бұрын
Podría hacer un árbol de poda AlfaBeta descartas de esta forma calcular todas las profundidades
@Castillo790
@Castillo790 8 ай бұрын
Muy bien Alva. Con autoridad y avanzando a buen ritmo
@ElMaybroder
@ElMaybroder 8 ай бұрын
Lamento decirte que los cálculos y las rotación son propias más de álgebra lineal. Al final matemáticas
@Codificador_9999
@Codificador_9999 8 ай бұрын
te sigo desde hace tiempo.....y tu nos inspiras mucho......Exelente el juego... A mi no se me habria ocurrido una idea mejor🧠
@denismaria4281
@denismaria4281 8 ай бұрын
La forma de optimizar la búsqueda es que el código del juego no haga esos calculos. Cómo todos los estados del tablero se pueden calcular, se puede hacer un programa externo que de como resultado la lista de: estado del tablero --> victoria/empate/etc. Hacer una estructura de datos acorde a lo que se quiere guardar y dejarlo en un archivo. El juego lee ese archivo y se guarda la estructura en memoria, así ante cualquier estado del tablero encontrar la información es buscar sobre la lista, que si la misma está bien hecha, se puede lograr tiempos constantes y en teoría ser menor a 0.5 s, además de servir para todas las partidas futuras
@Varalan72
@Varalan72 8 ай бұрын
Increíble video, me cambió la vida
@Varalan72
@Varalan72 8 ай бұрын
Ya lo terminé, efectivamente, increíble
@J031PC
@J031PC 8 ай бұрын
Meteria todas las combinaciones en una tabla que sirva como memoria caché, agregaria una columna que indique el porcentaje de victorias, en vez de calcular todas las combinaciones estaria consultando la tabla y la dificultad se configura en base al porcentaje de victorias y una regla como: en modo facil no se eligen los movimientos con mayor posibilidades de gabar, se eligen los peores de manera aleatoria, o puede ser que los 3 primeros movimientos eligen los mejores y el cuarto movimiento se elijen los peores,como la tabla de combinación es una cache, entonces es una consulta que tardaria milisegundos en vez de 9 segundos de calculo cada vez que se hace un movimiento. Saludos.
@juanpablosamayoa7418
@juanpablosamayoa7418 8 ай бұрын
El algoritmo que usa alva se llama minimax y la cantidad de cálculos que tienen que hacer para encontrar la mejor jugada decrece exponencialmente conforme el juego avanza, el primer tiro es muy costoso pero los siguientes toman realmente fracciones de segundo, y se pueden incluso no tomar el juego en su totalidad si no solo una profundidad determinada es como se ejecuta el algoritmo para una partida de ajedrez, tu solución es interesante pero yo lo veo complicarse de más a algo que ni siquiera tiene que ser tan rápido, en un juego principalmente narrativo sería raro que el jugador se queje pq la computadora tomo la decisión en 1s en vez de 1 ms, saludos 👋
@Martut5000
@Martut5000 8 ай бұрын
@@juanpablosamayoa7418 cuando se desea agregar más variedad al juego con cuatro o cinco en raya, la determinación de la jugada inicial ya se convierte en un problema de tiempo. En mi opinión, una solución más efectiva consiste en precalcular las acciones correctas una sola vez.
@binplus8517
@binplus8517 8 ай бұрын
​@@Martut5000desde mi ignorancia la jugada inicial no podría ser simplemente al azar de 1 en 9 posibilidades?
@Martut5000
@Martut5000 8 ай бұрын
​@@binplus8517 el tres en raya es lo que se conoce como un juego completo, lo que significa que se conocen todas las jugadas posibles y sus finales. Por lo tanto, existen secuencias de jugadas óptimas, siendo lo más común comenzar en una esquina. Teniendo en cuenta las jugadas óptimas para todas las situaciones, esto implica que si dos jugadores óptimos se enfrentan, la partida siempre acabará en empate.
@binplus8517
@binplus8517 8 ай бұрын
@@Martut5000 claro, según lo que entiendo, ustedes están resolviendo el sistema en sí, que está OK... Pero yo lo enfocaba desde otro punto de vista, siendo que como es un videojuego uno puede hacer trampas para no perder el tiempo y dinero en trabajar en algo que no se ve, al menos eso es lo que hace Nintendo, Capcom y otras empresas de videojuegos en determinadas situaciones. Pero que empiece el CPU siempre desde una esquina al menos yo lo veo raro.
@francissanchezmartin7436
@francissanchezmartin7436 8 ай бұрын
Indirectamente me has ayudado a entender conceptos de física estadística por la cara, agradecido ❤
@miguelangelmarquezavila
@miguelangelmarquezavila 8 ай бұрын
Yo he jugado al tres en raya con tres piezas por jugador. Cuando se colocan todas entoces debe de realizar movimientos que serán horizontales y verticales de una única posición de desplazamiento. En la posición del centro (de partida) esposible moverde en diagonal, pudiendo ocupar desde allí cualquier posición del tablero.
@Lacertacies22222
@Lacertacies22222 8 ай бұрын
Alva Majo sabe narrar muy bien porque ha conseguido que un video de como programar una partida del tres en raya sea bastante interesante nice
@elhermano5701
@elhermano5701 7 ай бұрын
Hermano, un video mostrando este caso y su solución estaría buenísimo. De paso se aclaran dudas conceptuales y muestras que las matemáticas están hasta en el 3 en raya :D
@alca2367
@alca2367 8 ай бұрын
sí, todavía estoy aquí
@adamlastquarter3907
@adamlastquarter3907 8 ай бұрын
La otra opción es tener una tabla de todas las combinaciones dada la situación actual y tener desde un inició lo resultados y preguntar por ellos como una especie de "Cache". De lo contrario, mientras estas en la partida hay jugadas que se repiten en los cálculos, y allí tener un cache mientras dure la partida.
@Jack_______
@Jack_______ 8 ай бұрын
que guay la explicación esa de los reflejos y las rotaciones
@FútbolAceChamps
@FútbolAceChamps 8 ай бұрын
Es muy epico como cambia la música cuando se presenta Guinxu, es como si el fuera el protagonista bueno y Alva el rival semi oscuro
@sergiofelicescruz3294
@sergiofelicescruz3294 8 ай бұрын
La genialidad de Alva y nuestro desarrollador de videojuegos de confianza, más los batidos Plenny Shake con todos los nutrientes que tu cuerpo necesita, ¿qué puede salir mal? Este próximo juego será una maravilla.
@juancarloscardenas9510
@juancarloscardenas9510 8 ай бұрын
jajajajjaja ese cameo lo ame jajaja y el remate de que cojones es un factorial jajajajjajajaja me reí mucho jajajajajajajajajajajajajalksjhdalkdjhalksdjlaksd
@dasaso27
@dasaso27 8 ай бұрын
2:29 épico crossover!
@Soremwar
@Soremwar 8 ай бұрын
Gamers cuando se enteran que la inteligencia artificial casi siempre es un montón de ifs
@marcoslago3450
@marcoslago3450 8 ай бұрын
Y probabilidades 😜
@naku-kun
@naku-kun 8 ай бұрын
Realmente son switch, si usas muchos IF. bombeas la performance del codigo
@Soremwar
@Soremwar 8 ай бұрын
@@naku-kun A poco te crees que lo de los ifs es en serio
@eleeveev9846
@eleeveev9846 8 ай бұрын
​@@SoremwarEn realidad no son ifs, sino switch
@Historias_de_HFY
@Historias_de_HFY 8 ай бұрын
@@naku-kun Los switch consumen mas que los if
@fenixmunozgarcia2021
@fenixmunozgarcia2021 8 ай бұрын
¡Eso! Alva Majo usa teoría de grupos y simetría para reducir el tiempo de cálculo. Cabe mencionar que si haces eso de sustituir las letras por unos y ceros en una matriz, podrías usar matrices de transformación para mejorar los cálculos.
@nahuatlatofl
@nahuatlatofl 8 ай бұрын
Que coño es eso 😅
@fenixmunozgarcia2021
@fenixmunozgarcia2021 8 ай бұрын
@@nahuatlatofl Jajajaja, de acuerdo con wiki "El grupo de simetría es un grupo de operaciones o transformaciones geométricas que deja invariante cierta entidad geométrica o entidad física. El concepto es importante tanto en geometría, como en mecánica lagrangiana y teoría cuántica de campos." Es decir, que Alva se dio cuenta que podía reducir el número de combinaciones de estados de partida por simple simetría. Me parece una genialidad, yo lo uso en química cuántica para descifrar espectros de rayos X, pero él le dio una utilidad brillante.
@fenixmunozgarcia2021
@fenixmunozgarcia2021 8 ай бұрын
Alva es un maldito genio.
@fenixmunozgarcia2021
@fenixmunozgarcia2021 8 ай бұрын
@@nahuatlatofl Bien podríamos hacer una tesis de lo que acaba de hacer, jajajaja.
@TheDavidCraft0s
@TheDavidCraft0s 8 ай бұрын
Buen vídeo, eres el mejor (nisiquiera han acabado los anuncios)
@SpeedgioES
@SpeedgioES 8 ай бұрын
3:30 A ver, es posible conseguir el número con combinatoria, que Guinxu lo haya hecho mal es otra cosa.
@estebanogrodnikorellana1902
@estebanogrodnikorellana1902 8 ай бұрын
Hola! te recomiendo el video de youtube "There are Exactly 14 Different Games of Tic-Tac-Toe". En general dice lo mismo sobre los reflejos y rotaciones, pero te hace hincapié en las 14 soluciones al problema, y como abordar la optimización de las jugadas. Por lo tanto, basta con hacer un árbol de movimiento en base a esas 14 jugadas (para no calcularlas) y considerar una probabilidad de mutación para dejar que el jugador gane por un error de la cpu .
@eduardol3390
@eduardol3390 8 ай бұрын
La razon por la que el factorial no funciona es por que el problema es mas complejo de lo que parece. No estas buscando el número de combinaciones posibles si no el número de caminos posibles los cuales no tienen por que llenar el tablero completamente. Usando el factorial solo cuentas las posibles combinaciones de X y O que llenan complentamente el tablero, pero la realidad es que puedes terminar una partida si llenar el tablero y aún llenando el tablero lo puedes llenar de la misma forma pero en distinto orden. Por ejemplo no es lo mismo tirar X en la primer casilla O en la segunda y X en la tercera, wue tirar X en tercera O en la segunda y X en la primera. El resultado final es el mismo pero la partida es diferente.
@E_395
@E_395 8 ай бұрын
4:54 Qué irónico. No esperaba a Alva Majo precisamente hablándonos de teoría de grupos
@Nolveon33
@Nolveon33 8 ай бұрын
Solamente Jesucristo pudo optimizar esa semejante cantidad de variables 🎉 Grande Alva
@Candy12477
@Candy12477 8 ай бұрын
cuando alva mencionó la cantidad de movimientos posibles yo tambien lo calculé con factorial, pero instantaneamente me calló la boca
@cubeplay888
@cubeplay888 8 ай бұрын
Ha sido interesante el ver lo complejo que puede llegar a ser un juego del 3 en raya, aunque en verdad no entendí demasiado con tantas mates, hasta Guinxu se lío 😅
@FranXia-f7j
@FranXia-f7j 8 ай бұрын
Buen vídeo, mejor canal, Superior Persona, Asombrosos Juegos, MARAVILLOSO 😏🔌
@ezequiel2940
@ezequiel2940 8 ай бұрын
Soy un defensor de las matemáticas pero en esta se la tengo que dar a Alva. La observación de que hay combinaciones simétricas que no necesitan ser calculadas otra vez es bastante astuta. Como programador me puede parecer una solución poco elegante y restrictiva, pero objetivamente el tiempo de cálculo es insignificante y probablemente sea un dolor de cabeza mucho menor al de tratar de implementar una IA.
@edreds2145
@edreds2145 8 ай бұрын
Fue astuto, pero aún así sus cálculos no fueron ciertos del todo. No entiendo al 100% cómo es el funcionamiento de su algoritmo, así que puede que me equivoque, pero los posibles resultados no deberían ser mayores a los que dijo Guinxu. Para el segundo punto, lo que habría que hacer es descontar a este número la cantidad de combinaciones que terminen en doble empate, pero eso es más sencillo decirlo que hacerlo. Esto habría optimizado su código desde el principio, pero si el código funciona, funciona.
@triple-integral
@triple-integral 8 ай бұрын
Pero porqué le parece poco elegante. Un matemático puro se daría cuenta de las simetrías y las reduciría. Y lo sé porque me ví un video de hace tiempo de todos los posibles jugadas en tres en raya.
@davidrivera1856
@davidrivera1856 8 ай бұрын
Es casi punto para Ginxu, Alva se equivoca en el número de combinaciones. Son las que dice Ginxu pero descontando aquellas donde termina el juego, es decir 9 factorial menos X que son las que hacen que el juego termine. Ese X son las 8 posibles combinaciones ganadoras por 4 factorial que son los máximos movimientos restantes desde que ganas+ 8x3! + 8x2! + 8x1!
@pablomartinsantamaria8689
@pablomartinsantamaria8689 8 ай бұрын
​@@triple-integralde hecho no es que un matematico solo se daría cuenta. Cualquier matemático que haya hecho combinatoria conoce perfectamente y ha usado varias veces esa técnica, es conocida y fundamental en problemas del estilo
@sargentopimienta3575
@sargentopimienta3575 8 ай бұрын
@@edreds2145 Pero no estamos hablando de las posibles combinaciones si no de todos los movimientos posibles
@esperanza-d7r
@esperanza-d7r 8 ай бұрын
Siii alfin voy a poder comprar los plenny shake
@ezninaaguila4209
@ezninaaguila4209 8 ай бұрын
En argentina se juega de una forma que cuando coloca las 3 x y los 3 O podía moverla hasta q uno haga tateti sería más dinamico
@ezninaaguila4209
@ezninaaguila4209 8 ай бұрын
Sería un tipo ajedrez
@Yotsuba_here
@Yotsuba_here 8 ай бұрын
No puedo evitar descojonarme cuando hacen estos crossovers entre GInxu y Alva xD
@kevinletterer4171
@kevinletterer4171 8 ай бұрын
Para evitar confusiones el 0 podría ser O y el 1 la X, así no tienes que diferenciar si estás viendo un 0 o una O en el código o en las herramientas de debug para saber qué estás mirando
@albertonasarre7910
@albertonasarre7910 7 ай бұрын
Realmente no creo que necesites hacer un algoritmo que calcule todas las posibilidades para jugar al tres en ralla. Solo tendrías que hacer una función que calcule si hay una posible jugada que deje el tablero con 2 fichas seguidas ( o dos separadas pero con un hueco en medio), es decir, un movimiento que te deje posibilidad de victoria en el turno siguiente. En caso de que el rival tenga posibilidades de victoria, la única opción posible es jugar taponado su línea. En caso contrario, tienes que colocar la ficha de forma que al turno siguiente puedas hacer línea de 3, si lo haces de forma que al turno siguiente tienes posibilidad de hacer dos líneas, has ganado, ya que el rival solo te puede taponar una.
@AfroByte
@AfroByte 8 ай бұрын
La sacada de Alva en el 2:44 he sido literalmente yo jajajajaja
@jeffamz
@jeffamz 8 ай бұрын
Yo conozco ese algoritmo, era algo como "minmax algorithm" o algo asi, es un algoritmo que enseñan cuando estas aprendiendo de IA's
@Carrabouxo
@Carrabouxo 8 ай бұрын
Hay una variante del tres en raya que se llama ''Super tic tac toe''. Podria ser parte de un enfrentamiento secreto o algo. Vsauce tiene un video explicandolo.
@Eliasdbr
@Eliasdbr 8 ай бұрын
Había escuchado otra optimización con búsqueda en estructura de árboles, pero no estoy muy seguro
@glaze4629
@glaze4629 8 ай бұрын
5:02 técnicamente los caracteres son números y en varios lenguajes se puede hacer la siguiente comparación 'espacio vació aquí' == 32 y te dirá que es verdadero
@diegocastillo6470
@diegocastillo6470 8 ай бұрын
Alva Majo odiando las matemáticas pero usando simetrías para simplificar los cálculos...
@ximcompanygonzalez1889
@ximcompanygonzalez1889 8 ай бұрын
Aún no he visto el vídeo, pero que gran video
@fercraft6455
@fercraft6455 8 ай бұрын
Hay una forma sencilla y optima de hacer esto para cualquier estado, usando heuristicas (Suena complicado pero es facil). Una heuristica es basicamente un algoritmo que se usa para predecir lo que puede ocurrir para cualquier estado del juego. El algoritmo que consigue esto en el 3 en raya es muy similar a lo que has hecho, pero sin ser necesario almacenar todos los estados. Simplemente, para el estado actual del tablero, se miran cuantas lineas puede hacer el jugador y se mira cuantas puede hacer el adversario y se restan. Cuanto mayor sea el número resultante, mejor jugada es y cuanto menor, peor. En resumen, para el estado actual, lineas posibles del jugador 1 - lineas posibles del jugador 2 o al reves si lo quieres aplicar para el otro jugador.
@rower_1572
@rower_1572 8 ай бұрын
Puedes aprovechar esos 9 segundos para hacer como que el enemigo está pensando mucho en hacer el movimiento, le daría intensidad y humor
@novaware517
@novaware517 8 ай бұрын
me sorprendió lo complejo que se puede llegar a poner el programar un juego de tres en raya :v
@EnzaroV
@EnzaroV 8 ай бұрын
Gracias a estos vídeos he cambiado mi visión sobre los desarrolladores de videojuegos. Antes pensaba que eran unos enfermos mentales que se tiraban 500 horas sin ningúna motivación, pero ahora veo que es bastante más divertido
@maurocifuentes4068
@maurocifuentes4068 8 ай бұрын
el video de Alva con mas matematicas hasta ahora... demasiadas
@Salmoreja3D
@Salmoreja3D 8 ай бұрын
Ma gustao la transicion del logo de Guinxu a la cara de nerd xDDDDDDDDDDDD
@gerardovanced3983
@gerardovanced3983 8 ай бұрын
yo con un algoritmo de busqueda en amplitud que va calculando las combinaciones a tiempo real en la mochila:
@izerob6783
@izerob6783 7 ай бұрын
Gracias por ser la voz de los que repudiamos las mates
@carlosgarciarodriguez95
@carlosgarciarodriguez95 7 ай бұрын
Es imposible perder en 3 en raya, porque aunque haya "muchas opciones", solo tienes que elegir entre esquina o arista (como has dicho con los espejos) . Ojalá las partidas se compliquen, rollo 3,4 o 5 en raya, y con varias dimensiones o cosas así, magias, etc. etc.
@kevinsantillan4843
@kevinsantillan4843 8 ай бұрын
Es increible como Alva redescubrio la teoria de grupos pretendiendo mo usar matematicas. Que gran matematico nos perdimos
@locusruizlopez5997
@locusruizlopez5997 8 ай бұрын
Yo creo que el tres en raya es demasiado simple para un videojuego largo, si cada personaje variase el tablero y metiera variaciones pues se podría ver Por ejemplo: El rival músculoso amplia el campo. Otro puede bloquear una celda del mapa durante dos turnos. Que sean habilidades como un anime, sino es una novela gráfica
@YAKOFIRE
@YAKOFIRE 8 ай бұрын
Hola Alveishon (Álvaro en inglés), se me ocurrió que aunque tú juego sea de deportes al tener ese componente de estrategia, podrías hacer una narración (visual o en los diálogos) que de la sensación de estar constantemente analizando y tratando de estar un paso delante del oponente, como esa sensación que trataban de crear en Dead note y Yu-Gi-Oh.
@brianalexisalmada6522
@brianalexisalmada6522 8 ай бұрын
Qué buena explicación la parte de optimizar el código para que ahorre en cálculos. Sólo me da mucha intriga saber cómo se traduce en código el ahorrar los cálculos de rotación, reflejo, etc. Muy bueno! habrá que investigar para ver cómo se hace. Gracias por ayudar a despertar el apetito de conocimiento :D
@ozalym
@ozalym 8 ай бұрын
3:24 te mareaste solo, el calculo de guinxu *si* que cuenta todos los movimientos (Incluye los imposibles, eso es verdad, pero eso es tema aparte)
@gustavorocu
@gustavorocu 8 ай бұрын
Alguien se lo tiene que decir. Esta usando matemáticas
@DeybisMelendez
@DeybisMelendez 8 ай бұрын
Yo te había comentado en otro vídeo que podías usar el método de Monte Carlo Tree Search, es sencillo de aplicar. Hay vídeos sobre el tema y casualmente usan el 3 en raya como ejemplo.
@zcyto
@zcyto 8 ай бұрын
aun no lo he visto y quizás se comente, pero para que no se me olvide, hay una forma de ganar siempre si se da el caso de que en el 1er movimiento del rival después del tuyo, ponga su circulo enfrente de tu ficha central (que habrá sido el tu 1er movimiento de la partida), supongo que se tendrá en cuenta porque sino será muy fácil
@luciofelipeoldani8281
@luciofelipeoldani8281 8 ай бұрын
me encanta ver como va progesando el alva majo
@EnzoAntonov69
@EnzoAntonov69 3 ай бұрын
Ya entiendo porque AlvaMajo tiene cara de adicto esa bebida energética le chupo hasta el alma
@quaa5901
@quaa5901 8 ай бұрын
Esto me recuerda a cuando estaba programando un ajedrez, se empieza con una idea re ineficiente y de a poco se convierte en una idea decente xd
@OzcarMx
@OzcarMx 8 ай бұрын
Había un tipo de habla inglesa que decía que había como 14 combinaciones y luego menos o algo asi.
@MugenCony.
@MugenCony. 8 ай бұрын
Tkm Alva fan desde hace como 4 años.
@Juanness
@Juanness 8 ай бұрын
Definitivamente necesitarás un apartado gráfico muy llamativo
@RhaffaX
@RhaffaX 8 ай бұрын
Jm alva majo tiene que tener cuidado por que si el tricky es muy facil aburre y si es muy dificil tambien aburre tiene que encontrarle el punto para que siempre sea atrapante y divertido
@SEbs_5
@SEbs_5 8 ай бұрын
Supongo que dependerá con el personaje que jueges
@dasaso27
@dasaso27 8 ай бұрын
5:42 nooooooo jajajajaja
@gustavobalmaceda2346
@gustavobalmaceda2346 8 ай бұрын
Igual tampoco necesitas calcular todos los movimientos. Puedes tener niveles de dificultad donde en el más fácil solo calcula los primeros 3 movimientos (profundidad 3, tirats las posibles combinaciones de 3 movimientos) luego 9 y finalmente todos los movimientos posibles. Creo que algo así se hace con el ajedrez.
@papelusadede4753
@papelusadede4753 8 ай бұрын
Grande Alva explicándonos como funciona un algoritmo de búsqueda con retroceso y como optimizarlo
Prueba de concepto de mi juego de tres en raya
9:36
Alva Majo
Рет қаралды 157 М.
Cómo elegir el precio de tu videojuego
12:49
Alva Majo
Рет қаралды 479 М.
Кто круче, как думаешь?
00:44
МЯТНАЯ ФАНТА
Рет қаралды 6 МЛН
Молодой боец приземлил легенду!
01:02
МИНУС БАЛЛ
Рет қаралды 2,1 МЛН
Se acabó la beta de pureya - 0 bugs
13:25
Alva Majo
Рет қаралды 437 М.
Programé un Civilization en 100 horas
35:29
Javierinator3000
Рет қаралды 702 М.
Editor profesional de trailers critica el de mi videojuego
10:12
Elijo entre 600 artistas para mi juego
6:54
Alva Majo
Рет қаралды 249 М.
El infierno de programar la configuración de un juego
12:35
El diseño invisible de Majotori y sus preguntas
14:09
Alva Majo
Рет қаралды 295 М.
Estos son los ganadores de Tu juego a juicio jam 2021
13:19
Alva Majo
Рет қаралды 534 М.
¿Por qué este Algoritmo está en tantos Videojuegos? - A* Explicado
15:38
Hice el PEOR sistema de cinemáticas para juegos
9:24
Guinxu
Рет қаралды 180 М.
Кто круче, как думаешь?
00:44
МЯТНАЯ ФАНТА
Рет қаралды 6 МЛН