🤓 "En realidad Guinxu tiene razón porque..." kzbin.info/www/bejne/jmm9koKLn7ydqqc
@elrent51098 ай бұрын
Jajaja
@faztter_dev8 ай бұрын
Xd
@shadowind308 ай бұрын
Hare como que no vi eso...
@eduardo61418 ай бұрын
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
@Focaris4398 ай бұрын
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_goroshi8 ай бұрын
2:42 lo mejor del video jajajaja
@RobopYoutube8 ай бұрын
2:42 simplemente XDDDDDDDDDDDDDDDDD
@RobopYoutube8 ай бұрын
5:44 JAJAJAJAJJAAJAJJAJA
@RaulYoryi8 ай бұрын
@@RobopKZbin Me spoileaste xd
@RobopYoutube8 ай бұрын
@@RaulYoryi perdón jeje 😅
@Pere64648 ай бұрын
2:28 guinxu jumpscare
@FBI-zi9hd8 ай бұрын
casi me dio un ataque y creo que me dejo con trastorno de estrés postraumatico
@UltimateNexder8 ай бұрын
5:42 guinxu jumpscare v2
@Crafty12558 ай бұрын
Guillester, cojerme a guillester xd
@YAKOFIRE8 ай бұрын
JAJAJAJAJA justo después de revisar el minuto cuando leí el comentario apareció.
@CamiFoncho8 ай бұрын
🤓☝️
@MatesMike8 ай бұрын
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
@VoidZRD8 ай бұрын
Ostras, Mates Mike 😳
@xxnombre_genericoxx8 ай бұрын
se viene colab 😱
@ManuDc_1288 ай бұрын
Los batidos milkshake no mejoran tu ortografía 😔
@davidrivera18568 ай бұрын
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.
@nahuatlatofl8 ай бұрын
Colab????
@SOYUNATORTUGUITA8 ай бұрын
0:00 LO DIJO, DIJO LA FRASE!!!!
@riuxiabv2248 ай бұрын
El profesor: pregunten sin miedo que no muerdo Tambien el profesor cuado preguntas algo: 00:25
@Parzival-dev8 ай бұрын
Salu2 Alva
@VictorBenitoGR8 ай бұрын
00:24 *
@Noctowll8 ай бұрын
Mi ansiedad por los cielos luego de que al profesor el cambia la cara y me llama puto gilipollas xD
@VITOLINOBOSS8 ай бұрын
sdjksdjk me copiaste el comentario xd kzbin.info/www/bejne/o32vo31rgr5ke7c&lc=UgzHSonSsd3AZ7gL5Y54AaABAg&ab_channel=AlvaMajoClips
@adrongames8 ай бұрын
Y qué pasa con los poderes o habilidades de los personajes?
@camposg48788 ай бұрын
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
@kaoD8 ай бұрын
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.
@MissiFull8 ай бұрын
@@kaoDCreí que el primero en jugar sería el NO negro
@angeleakane11898 ай бұрын
@@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.
@kaoD8 ай бұрын
@@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.
@INSANO788726 күн бұрын
@@kaoD lo de que la X empieza TE LO SACASTE DEL...(correcion)no todos juegan asi
@Raromoron8 ай бұрын
¡Gracias por tu video, Alva!. Seguire apoyando tu desarrollo de videojuegos: con vistas y algunas monedas.
@guillermoortegasardina66948 ай бұрын
Subele un poco a tus aportes pa que se compre el Ferrari 😊
@Raromoron8 ай бұрын
@@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-zi9hd8 ай бұрын
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.
@ProNautilus698 ай бұрын
Creo que we llama super 3 en raya
@FBI-zi9hd8 ай бұрын
@@ProNautilus69 era de una serie llamada "OK KO: Seamos héroes". No se si la recuerdas
@jorgel.40768 ай бұрын
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-RindoCAT8 ай бұрын
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!!
@MdeMier8 ай бұрын
Comentario Patrocinado.
@aimarxv7058 ай бұрын
El menos fan
@Joquendo8 ай бұрын
La cuenta secundaria de Alva Majo:
@blackshadow80418 ай бұрын
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).
@rlasc848 ай бұрын
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
@quaa59018 ай бұрын
@@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-k7e8 ай бұрын
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_24018 ай бұрын
kzbin.info/www/bejne/jmm9koKLn7ydqqc
@SabakuChannel8 ай бұрын
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
@spyro49978 ай бұрын
0:33 mi compa el de los if
@alejandro019878 ай бұрын
¿Tienes un algoritmo mejor?
@irving.cisneros8 ай бұрын
@@alejandro01987mi compa el que pregunta por un algoritmo mejor.
@frozonus95958 ай бұрын
if mi tío me agarra: return radio anal ++
@alejandro019878 ай бұрын
@@irving.cisneros si soy 😂
@SagePhantom8 ай бұрын
@@alejandro01987Mi compa el que dice si soy
@albertmiquel62078 ай бұрын
Joder Alba... Me he reído un loco en la calle con el 00:25. Puto amo
@baconless8 ай бұрын
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...
@equpmv8 ай бұрын
En qué te basas para decir eso? Qué pruebas tienes? (La sociedad de hoy)
@baconless8 ай бұрын
@@equpmv Ambos evaden impuestos en busca de un Ferrari, espero esto sea suficiente.
@Unknow_zz8 ай бұрын
A GAME THEORY
@eleeveev98468 ай бұрын
Dios nos ha iluminado con su sabiduria
@ZorroTibetano8 ай бұрын
Jajaja próximamente en un video me espero algo así. Alva: Ginxu ya llegué! Ginxu: Que?, tan temprano? Alva: Si!
@elfaro40298 ай бұрын
*Risas enlatadas
@gonzalocuadrado218 ай бұрын
"Se puede optimizar pero lo voy a dejar así que funciona y ya lo mejoraré en el futuro" Jamás lo revisará
@rbermejoa7 ай бұрын
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 ❤
@retrogameplaysgordis8 ай бұрын
Buen video! (Lo acaba de subir)
@THEmasterWolf118 ай бұрын
buen video! (Lo acaba de subir)
@clemente_018 ай бұрын
buen Video! (Lo acaba de subir)
@ParaelRecuerdo8 ай бұрын
Jejeje qué gracioso eres! :)
@DonEnye8 ай бұрын
También está la variante de peloteo "Buen vídeo, como siempre".
@alvarobencosme53488 ай бұрын
Buen video (Luego lo veo)
@hiruzensarutobithechaos40868 ай бұрын
Amo estos crosovers 5:42
@GGGamesFNaF8 ай бұрын
5:10 No sería más intuitivo 1=X y 0=O? xD
@ezninaaguila42098 ай бұрын
Para ami igual ajja
@jeanabraham53558 ай бұрын
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
@xxfalconxxroblox93258 ай бұрын
GGgames que haces aquí?
@apmtechnology8 ай бұрын
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_8 ай бұрын
Cada video actualizando este juego me emociona más, estoy esperando con ansias el resultado final, sigue así Alva 😃
@kaoD8 ай бұрын
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.
@informagico63318 ай бұрын
- 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_jamon2688 ай бұрын
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.
@unpeztropical54928 ай бұрын
ok
@dodzv8 ай бұрын
@@pan_con_jamon268 literalmente el mensaje que buscaba🥹
@marc0xA8 ай бұрын
@@pan_con_jamon268eres panconjamonista?
@pan_con_jamon2688 ай бұрын
@@marc0xA Cómo lo supiste?? 😮😮
@Martut50008 ай бұрын
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.
@apoloneo35658 ай бұрын
Programación Dinámica. Tiene sentido
@doncangrejo55108 ай бұрын
2:28 ¡Santos bacalaos, es el jefe!
@FreeDie8906 ай бұрын
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
@OmegaVideosOng8 ай бұрын
Podría hacer un árbol de poda AlfaBeta descartas de esta forma calcular todas las profundidades
@Castillo7908 ай бұрын
Muy bien Alva. Con autoridad y avanzando a buen ritmo
@ElMaybroder8 ай бұрын
Lamento decirte que los cálculos y las rotación son propias más de álgebra lineal. Al final matemáticas
@Codificador_99998 ай бұрын
te sigo desde hace tiempo.....y tu nos inspiras mucho......Exelente el juego... A mi no se me habria ocurrido una idea mejor🧠
@denismaria42818 ай бұрын
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
@Varalan728 ай бұрын
Increíble video, me cambió la vida
@Varalan728 ай бұрын
Ya lo terminé, efectivamente, increíble
@J031PC8 ай бұрын
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.
@juanpablosamayoa74188 ай бұрын
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 👋
@Martut50008 ай бұрын
@@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.
@binplus85178 ай бұрын
@@Martut5000desde mi ignorancia la jugada inicial no podría ser simplemente al azar de 1 en 9 posibilidades?
@Martut50008 ай бұрын
@@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.
@binplus85178 ай бұрын
@@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.
@francissanchezmartin74368 ай бұрын
Indirectamente me has ayudado a entender conceptos de física estadística por la cara, agradecido ❤
@miguelangelmarquezavila8 ай бұрын
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.
@Lacertacies222228 ай бұрын
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
@elhermano57017 ай бұрын
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
@alca23678 ай бұрын
sí, todavía estoy aquí
@adamlastquarter39078 ай бұрын
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_______8 ай бұрын
que guay la explicación esa de los reflejos y las rotaciones
@FútbolAceChamps8 ай бұрын
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
@sergiofelicescruz32948 ай бұрын
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.
@juancarloscardenas95108 ай бұрын
jajajajjaja ese cameo lo ame jajaja y el remate de que cojones es un factorial jajajajjajajaja me reí mucho jajajajajajajajajajajajajalksjhdalkdjhalksdjlaksd
@dasaso278 ай бұрын
2:29 épico crossover!
@Soremwar8 ай бұрын
Gamers cuando se enteran que la inteligencia artificial casi siempre es un montón de ifs
@marcoslago34508 ай бұрын
Y probabilidades 😜
@naku-kun8 ай бұрын
Realmente son switch, si usas muchos IF. bombeas la performance del codigo
@Soremwar8 ай бұрын
@@naku-kun A poco te crees que lo de los ifs es en serio
@eleeveev98468 ай бұрын
@@SoremwarEn realidad no son ifs, sino switch
@Historias_de_HFY8 ай бұрын
@@naku-kun Los switch consumen mas que los if
@fenixmunozgarcia20218 ай бұрын
¡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.
@nahuatlatofl8 ай бұрын
Que coño es eso 😅
@fenixmunozgarcia20218 ай бұрын
@@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.
@fenixmunozgarcia20218 ай бұрын
Alva es un maldito genio.
@fenixmunozgarcia20218 ай бұрын
@@nahuatlatofl Bien podríamos hacer una tesis de lo que acaba de hacer, jajajaja.
@TheDavidCraft0s8 ай бұрын
Buen vídeo, eres el mejor (nisiquiera han acabado los anuncios)
@SpeedgioES8 ай бұрын
3:30 A ver, es posible conseguir el número con combinatoria, que Guinxu lo haya hecho mal es otra cosa.
@estebanogrodnikorellana19028 ай бұрын
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 .
@eduardol33908 ай бұрын
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_3958 ай бұрын
4:54 Qué irónico. No esperaba a Alva Majo precisamente hablándonos de teoría de grupos
@Nolveon338 ай бұрын
Solamente Jesucristo pudo optimizar esa semejante cantidad de variables 🎉 Grande Alva
@Candy124778 ай бұрын
cuando alva mencionó la cantidad de movimientos posibles yo tambien lo calculé con factorial, pero instantaneamente me calló la boca
@cubeplay8888 ай бұрын
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-f7j8 ай бұрын
Buen vídeo, mejor canal, Superior Persona, Asombrosos Juegos, MARAVILLOSO 😏🔌
@ezequiel29408 ай бұрын
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.
@edreds21458 ай бұрын
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-integral8 ай бұрын
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.
@davidrivera18568 ай бұрын
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!
@pablomartinsantamaria86898 ай бұрын
@@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
@sargentopimienta35758 ай бұрын
@@edreds2145 Pero no estamos hablando de las posibles combinaciones si no de todos los movimientos posibles
@esperanza-d7r8 ай бұрын
Siii alfin voy a poder comprar los plenny shake
@ezninaaguila42098 ай бұрын
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
@ezninaaguila42098 ай бұрын
Sería un tipo ajedrez
@Yotsuba_here8 ай бұрын
No puedo evitar descojonarme cuando hacen estos crossovers entre GInxu y Alva xD
@kevinletterer41718 ай бұрын
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
@albertonasarre79107 ай бұрын
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.
@AfroByte8 ай бұрын
La sacada de Alva en el 2:44 he sido literalmente yo jajajajaja
@jeffamz8 ай бұрын
Yo conozco ese algoritmo, era algo como "minmax algorithm" o algo asi, es un algoritmo que enseñan cuando estas aprendiendo de IA's
@Carrabouxo8 ай бұрын
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.
@Eliasdbr8 ай бұрын
Había escuchado otra optimización con búsqueda en estructura de árboles, pero no estoy muy seguro
@glaze46298 ай бұрын
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
@diegocastillo64708 ай бұрын
Alva Majo odiando las matemáticas pero usando simetrías para simplificar los cálculos...
@ximcompanygonzalez18898 ай бұрын
Aún no he visto el vídeo, pero que gran video
@fercraft64558 ай бұрын
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_15728 ай бұрын
Puedes aprovechar esos 9 segundos para hacer como que el enemigo está pensando mucho en hacer el movimiento, le daría intensidad y humor
@novaware5178 ай бұрын
me sorprendió lo complejo que se puede llegar a poner el programar un juego de tres en raya :v
@EnzaroV8 ай бұрын
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
@maurocifuentes40688 ай бұрын
el video de Alva con mas matematicas hasta ahora... demasiadas
@Salmoreja3D8 ай бұрын
Ma gustao la transicion del logo de Guinxu a la cara de nerd xDDDDDDDDDDDD
@gerardovanced39838 ай бұрын
yo con un algoritmo de busqueda en amplitud que va calculando las combinaciones a tiempo real en la mochila:
@izerob67837 ай бұрын
Gracias por ser la voz de los que repudiamos las mates
@carlosgarciarodriguez957 ай бұрын
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.
@kevinsantillan48438 ай бұрын
Es increible como Alva redescubrio la teoria de grupos pretendiendo mo usar matematicas. Que gran matematico nos perdimos
@locusruizlopez59978 ай бұрын
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
@YAKOFIRE8 ай бұрын
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.
@brianalexisalmada65228 ай бұрын
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
@ozalym8 ай бұрын
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)
@gustavorocu8 ай бұрын
Alguien se lo tiene que decir. Esta usando matemáticas
@DeybisMelendez8 ай бұрын
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.
@zcyto8 ай бұрын
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
@luciofelipeoldani82818 ай бұрын
me encanta ver como va progesando el alva majo
@EnzoAntonov693 ай бұрын
Ya entiendo porque AlvaMajo tiene cara de adicto esa bebida energética le chupo hasta el alma
@quaa59018 ай бұрын
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
@OzcarMx8 ай бұрын
Había un tipo de habla inglesa que decía que había como 14 combinaciones y luego menos o algo asi.
@MugenCony.8 ай бұрын
Tkm Alva fan desde hace como 4 años.
@Juanness8 ай бұрын
Definitivamente necesitarás un apartado gráfico muy llamativo
@RhaffaX8 ай бұрын
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_58 ай бұрын
Supongo que dependerá con el personaje que jueges
@dasaso278 ай бұрын
5:42 nooooooo jajajajaja
@gustavobalmaceda23468 ай бұрын
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.
@papelusadede47538 ай бұрын
Grande Alva explicándonos como funciona un algoritmo de búsqueda con retroceso y como optimizarlo