👾 Programo el Juego de la Vida de Conway en JavaScript paso a paso

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ก.ย. 2024
  • 👾 ¿Te suena el Juego de la vida de Conway? ¿Tienes curiosidad por programar tú mismo este curioso autómata celular? En este vídeo aprenderás, paso a paso cómo crearlo en JavaScript desde tu propio navegador web.
    ⌨ Descarga el código completo desde mi cuenta de GitHub
    👉 github.com/jav...
    Apréndelo TODO sobre los Autómatas Celulares en este vídeo
    👉 • Cómo crear complejidad...
    🎮 ¿Quieres más? Aprende a programar tus primeros juegos HTML5 paso a paso y desde cero con mi curso de Udemy
    👉 www.udemy.com/...

ความคิดเห็น • 94

  • @carlaelisabeth8596
    @carlaelisabeth8596 7 หลายเดือนก่อน +2

    Graciaas, me re salvaste! porque le di mil vueltas al tema de como contar los vecinos. Yo lo estoy haciendo en Java pero me re ayudo tu forma de resolverlo :D
    Mil gracias

  • @DanyeelRedone
    @DanyeelRedone ปีที่แล้ว +1

    Muchas Gracias amigo, yo soy brasileño e su video ayudo me. !Gracias!

  • @cesarbaquiro
    @cesarbaquiro 8 หลายเดือนก่อน +1

    Vengo de tu github, genial la explicación!

    •  5 หลายเดือนก่อน

      ¡Muchas gracias! :D

  • @judithcallejasmeza6491
    @judithcallejasmeza6491 4 ปีที่แล้ว +4

    Yo también estoy en examenes pero siempre hay tiempo para ver tus videos. Adelante Javier.

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +1

      ¡Qué bonito eso, Judy! Muchísimas gracias ^_^ ¡Un abrazo grande!

  • @javianmuniz
    @javianmuniz 4 ปีที่แล้ว +15

    ¡Recordad que tenéis el código, listo para su descarga, en la descripción del vídeo! ¡Espero que os guste! El próximo vídeo será el tutorial paso a paso de Wireworld ;)

  • @luchorap85
    @luchorap85 4 ปีที่แล้ว +5

    Like porque programar es increíble.
    👨‍💻👨‍💻👨‍💻👨‍💻👨‍💻👨‍💻👨‍💻👨‍💻👨‍💻👨‍💻

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +3

      ¡Buenísimo el comentario, Mr Robot! ;)

  • @terraxted9280
    @terraxted9280 4 ปีที่แล้ว +2

    Wow. Ya lo estoy viendo

    •  4 ปีที่แล้ว +2

      Qué bueno! Espero que te guste! Ya me contarás qué tal y que sepáis que el próximo tutorial será el de Wireworld 🙂

  • @NahuuDumbsky
    @NahuuDumbsky 4 ปีที่แล้ว +2

    buff.. un amigo mas avanzado que yo en programación me propuso hacer este juego por mi mismo, pasaron 3 días y no logre un avance significativo mas allá de crear el tablero, me hizo entender lo mucho que me falta aprender y practicar a diario para ser un buen programador. gracias javi! (por cierto lo estoy haciendo en java que es el lenguaje por el que empece este camino de ida)

  • @ferman5903
    @ferman5903 4 ปีที่แล้ว +4

    Excelente video y muy interesante, fue 1 hora que paso como 5 minutos

    •  4 ปีที่แล้ว +3

      Qué bueno Manuel! Gracias 😁 pues ya tengo grabado el tutorial de Wireworld. Lo chulo, es que adaptar el código sólo me llevó 10 minutos!! Si os gustan estos autómatas podemos adaptar otros más adelante como: fluidos, gases o generación procedural de cuevas ☺

    • @ferman5903
      @ferman5903 4 ปีที่แล้ว +2

      @ Genial, que este tema es muy interesante 😀

    •  4 ปีที่แล้ว +2

      Estupendo! Me ha encantado programar wireworld, era la primera vez que lo creaba y ha sido muy fácil de adaptar 😁

  • @Anthony_Ger1996
    @Anthony_Ger1996 4 ปีที่แล้ว +3

    es hermoso. Una vez que tenga todo los conocimientos en javascript intentare hacerlo :D gracias por el codigo:)

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +2

      ¡Hola Anth_Ger! La verdad es que sí que es muy bonito. Este es un algoritmo clásico y a mi me encanta. Ahora estoy trabajando en una versión que simula líquidos, usando este tipo de reglas. Espero tener listo el vídeo pronto y que lo disfrutéis ¡Un abrazo y mil gracias por tu comentario! :)

  • @hellfishii
    @hellfishii 4 ปีที่แล้ว +3

    Gran video! lo escribi de principio a fin pero valio la pena

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +2

      ¡Muchas gracias, Rodrigo! Me alegra mucho que te haya gustado ^_^

  • @gerardomalagon3421
    @gerardomalagon3421 4 ปีที่แล้ว +3

    Coooooosmico
    Lo hice y quedó chulo

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +1

      ¡Qué bueno, Gerardo! Si te animas, te recomiendo probar el de Wireworld. Los cambios en las reglas son mínimos y puedes simular circuitos eléctricos. Es muy interesante ¡Un abrazo, crack y a seguir creando! ;)

    • @gerardomalagon3421
      @gerardomalagon3421 4 ปีที่แล้ว +1

      @@javianmuniz
      O por dios. Me contestó, sabe que existo 😅
      Ese de los circuitos lo intentaré también, me parece muy interesante y muchas gracias por tus vídeos.
      Me encanta la manera en la qué explicas y la manera en que calmas nuestras frustraciones cuando no sale.
      Saludos desde México.

  • @trodebakpissarreta9968
    @trodebakpissarreta9968 ปีที่แล้ว +1

    Hola, gracias por dar explicaciones, lo entiendo hasta yo, puedo seguir el hilo del programa y también entiendo el funcionamiento del problema en si. Animo lo haces excelente.😻

  • @juancamacho23
    @juancamacho23 3 ปีที่แล้ว +1

    Muchas gracias! está increíble! seguí el video y todo funciona pertecto.

    •  3 ปีที่แล้ว +1

      Genial, Juan Camilo! Me alegra mucho eso 😊

  • @maths4everything635
    @maths4everything635 4 ปีที่แล้ว +2

    Me declaro fan absoluto!

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +2

      ¡Muchísimas gracias, Pedro! Me alegra muchísimo que te haya gustado, ya sabes que para mi es un honor viniendo de ti, compañero ^_^ ¡Un abrazo!

  • @ezequielleonzybert
    @ezequielleonzybert 4 ปีที่แล้ว +2

    Gracias, justo lo que necesitaba. Yo intentaba hacer un tilemap con una tabla en html y me estaba volviendo loco xD

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว

      Je je je pues nada, Ezequiel, un placer el poder ayudar ^_^

  • @smcmp4892
    @smcmp4892 ปีที่แล้ว +1

    Muchísimas gracias!! Ha sido de muchísima ayuda :)

    •  5 หลายเดือนก่อน

      ¡Me alegra un montón leer eso! ¡Mil gracias! :D

  • @carlosbernabeumeri1340
    @carlosbernabeumeri1340 4 ปีที่แล้ว +2

    Cada vídeo que veo me gusta más que el anterior, pero tengo que decirte que hasta siguiéndote paso a paso, cometo errores que me llevan horas descubrir, pero siento que eso me ayuda a pensar: ¿donde esta el error para que haga lo que hace, y no lo que quiero que haga?
    Gracias por tu aportación a la programación básica autodidacta jejeje.

    •  4 ปีที่แล้ว +2

      ¡Muchísimas gracias, Carlos! Te lo agradezco mucho. El que voy a subir el jueves (y que estoy terminando de montar justo ahora, creo que te va a encantar) ^_^
      Lo que comentas es muy común, yo tardé 2 horas en encontrar un error en este vídeo (esa parte no la grabé pero me pasó) xD son gajes del oficio ;)
      ¡De nada, compañero, es un placer! Nos vemos en el vídeo del jueves ¡FELICES FIESTAS! ^_^

  • @benitoavilaarroyo1533
    @benitoavilaarroyo1533 2 ปีที่แล้ว

    Muy bueno!! muy bien explicado y bastante ameno!!

  • @4NDR3S_
    @4NDR3S_ 2 ปีที่แล้ว +2

    Lo voy a intentar

  • @miguelabenoza8134
    @miguelabenoza8134 4 ปีที่แล้ว +2

    Excelente Javier! Aprendiendo JavaScript de tu mano! Contagias la pasión con la que lo explicas! Lanzo propuesta/reto para tu valoración, ¿como verías hacer un nivel de Super Mario World? Pueden ser fases del proyecto en vídeos cortos. Saludos! :)

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +2

      ¡Muchas gracias, Miguel! Me alegra que te esté gustando el contenido del canal (de hecho, en media hora sale el nuevo vídeo sobre autómatas celulares en el que enseño cómo programar Wireworld) :D Respondiendo a tu pregunta: ¡SI! de hecho, ya tengo programado un juego de plataformas 2D, a pantalla partida, para 2 jugadores que además soporta gamepad. Iré dosificando los tutoriales e iremos poco a poco, pero uno de mis objetivos con este canal es: ir haciendo nuestras propias librerías para juegos (para saber cómo funciona todo) hasta clonar juegos clásicos de 8 y 16 bits ^_^ ¡Un saludo y muchas gracias! :D

  • @CarlosDavidCorreaSantillan
    @CarlosDavidCorreaSantillan 4 ปีที่แล้ว +3

    A los 12 años programe el juego de la vida con GWBasic, ahora tengo 42 años, hace 20 años me pidieron algunos modelos para presentar en una olimpiada de informatica y con el lenguaje Qbasic programe el juego de la vida en 3D, fue tan bueno que una revista de informatica me hizo una entrevista e incluyo el codigo en sus paginas, hace unos 6 años vi uno similar en minecraft pero no se veía tan bien, ahora busco como encontrar con redes neuronales el comportamiento de cada celda en imagenes consecutivas al azar, como encontrarle sentido a la estática de un televisor, soy de esos que piensan que hay un mensaje oculto en el número Py ;) ;)

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +2

      Los que aprendimos a programar pronto, amamos jugar con el código, porque en su día nos dedicábamos a eso: a jugar ¡Muchas gracias por tu comentario, Carlos! Ya me irás comentando tus progresos ¡Un abrazo! :)

    • @CarlosDavidCorreaSantillan
      @CarlosDavidCorreaSantillan 4 ปีที่แล้ว +1

      @@javianmuniz Busque "El juego de la vida" en youtube en el formato 3d y aunque hay varios intentos, la mayoría son de dimensiones muy limitadas, me imagino por la capacidad de calculo que conlleva, el unico que me ha sorprendido mucho es el de Softology, tienes que verlo, una de sus variantes crea un impresionante símil de un hormiguero. th-cam.com/video/dQJ5aEsP6Fs/w-d-xo.html

  • @ProgramasVBnet
    @ProgramasVBnet 4 ปีที่แล้ว +3

    Bastante interesante, lo veré poco a poco, como utilidad a los juegos creo recordan el juego "Lemmings" para el tema de pixelado que saltaban los pixeles y desaparecía cuando excavan la tierra. Saludos Javier

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +3

      ¡Muchas gracias amigo! ¡Es cierto! Lemmings utilizaba un sistema en el que los pixels eran modificables y se podían hacer agujeros y demás. Sí, aquí también estaríamos hablando de una especie de autómata celular o, al menos, se podría utilizar. Muy buen apunte, no lo recordaba. Molaría programar un Lemmings más adelante. Me lo apunto ;) ¡Un abrazo!

  • @Alejandro20302
    @Alejandro20302 3 ปีที่แล้ว +1

    Excelente video, muy pro

  • @edy2875
    @edy2875 4 ปีที่แล้ว +2

    Buenisimo!

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +1

      ¡Muchas gracias David! Si te ha gustado, el de Wireworld puede que te guste también. Es una adaptación de las reglas para simular circuitos eléctricos. Próximamente quiero hacer también otro sobre simulación de fluidos basado en autómatas celulares ¡Un saludo, crack! :)

  • @sergiovaldes9304
    @sergiovaldes9304 4 ปีที่แล้ว +2

    wow, buen video!

    •  4 ปีที่แล้ว +1

      Gracias Sergio! Me alegra mucho que te haya gustado :)

  • @justinjoefloresbarcenas2205
    @justinjoefloresbarcenas2205 3 ปีที่แล้ว +2

    Te ganaste un nuevo sub bro

    •  3 ปีที่แล้ว

      Se agradece mucho ese comentario y también la paciencia, Justin. Aunque me he tomado un tiempo de TH-cam, espero regresar pronto y con mucho más contenido ;) ¡Un abrazo!

  • @efsfffffffffffffffff
    @efsfffffffffffffffff 2 ปีที่แล้ว

    Eres super majo, super buen programador y me has salvado la vida. Mil gracias Javier :)

    • @efsfffffffffffffffff
      @efsfffffffffffffffff 2 ปีที่แล้ว

      Un Erasmus en su última asignatura desde eslovenia te da las gracias

    •  2 ปีที่แล้ว

      Gracias tío! Te lo agradezco mucho 😊

  • @danisraelnavarrete3458
    @danisraelnavarrete3458 3 ปีที่แล้ว

    Muchas Gracias de verdad me hiciste comprender mejor la forma de programar Saludos

  • @guillermoalvarez2694
    @guillermoalvarez2694 4 หลายเดือนก่อน

    Muy bueno! Gracias

  • @ignaciobarocchi3958
    @ignaciobarocchi3958 4 ปีที่แล้ว +2

    BUENARDOOO

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว

      ¡Gracias Ignacio! :)

  • @feraiur
    @feraiur 4 ปีที่แล้ว +3

    Muchas gracias Javier, muy buenos tus videos, sin embargo siempre que veo un video tuyo donde estas codeando, no dejo de sentir incomodidad debido al desorden de código, funciones regadas por todas partes, nombres multilenguaje. Mi sugerencia es que cuando hagas estos videos (muy entretenidos muchas gracias), aplica desde el inicio algo de clean code para poder seguirlo mas fácilmente.

    •  4 ปีที่แล้ว +1

      Gracias Fernando! Sí, tienes razón es una de mis asignaturas pendientes. Tomo nota. Un abrazo!

  • @guerrerogonzalezjuanjose1581
    @guerrerogonzalezjuanjose1581 4 ปีที่แล้ว +2

    Buen vídeo... Nuevo sub :')

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว

      ¡Hola Juan, bienvenido! Muchas gracias, amigo :D

  • @piedra13
    @piedra13 2 ปีที่แล้ว

    sos un grande

  • @Luis-ue9ut
    @Luis-ue9ut 4 ปีที่แล้ว

    Excelente video brother, muchas gracias!! :D

  • @LuisitoHabla
    @LuisitoHabla 4 ปีที่แล้ว +2

    El video esta muy bueno, el audio perfecto lo unico incomodo producto del mic el sonido de cada vez que traga saliba...

    •  4 ปีที่แล้ว +1

      Tomo nota! Gracias! 😊

  • @minego7573
    @minego7573 4 ปีที่แล้ว +2

    Hola javier me ha gustado tu video y quiero aprender programar html y javascript me gustaría saber que visualizador de codigos usas para programar Gracias.

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +3

      ¡Hola bcq_20! muchas gracias por tu comentario :D espero que aquí aprendas muchas cosas nuevas y descubras todo un mundo nuevo de posibilidades a la hora de programar :) Con respecto al editor hay 2 que me gustan mucho: Atom (el del vídeo ) y Notepad++ (muy sencillo pero potente a la vez) ¡Un saludo! :D

    • @minego7573
      @minego7573 4 ปีที่แล้ว +1

      @@javianmuniz muchas gracias por la respuesta

  • @ezequielleonzybert
    @ezequielleonzybert 4 ปีที่แล้ว +2

    Hay un punto que no estoy entendiendo. En la funcion dibujaTablero(obj) se está ejecutando la siguiente linea:
    obj[y][x].dibuja();
    ¿Cómo es posible siendo "dibuja()" una función del objeto "Agente" y "obj" un objeto Array creado por la función creaArray2D(f,c)? Es decir, obj esta usando una función privada que no podría estar usando. Bueno, eso es lo que no entendí. Gracias

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +1

      ¡Hola Ezequiel! Es un array de objetos, por eso se puede invocar al método "dibuja". De todas formas JavaScript es muy flexible en estas cosas. ¡Un saludo y gracias!

  • @franco.-.1339
    @franco.-.1339 4 ปีที่แล้ว +4

    Wey tienes 777 suscriptores o: yo también estoy suscrito

    •  4 ปีที่แล้ว +2

      ¡Gracias Fran! poco a poco vamos haciendo comunidad ¡Un abrazo grande! (esta tarde... nuevo vídeo) ;)

  • @PositronQ
    @PositronQ 4 ปีที่แล้ว +5

    Yo me he creado una red neuronal en el juego de la vida pero en Python
    No soy para JavaScript

    • @CarlosDavidCorreaSantillan
      @CarlosDavidCorreaSantillan 4 ปีที่แล้ว +2

      Yo he utilizado redes neuronales en imagenes al azar para darme una idea de cuales fueron las reglas que le dieron ese patron y así predecir cual fue la imagen de origen o cual podría ser la consecutiva

    • @PositronQ
      @PositronQ 4 ปีที่แล้ว +1

      Carlos David Correa Santillan si es una manera de hacerla, hay bastantes estrategias

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +1

      @@CarlosDavidCorreaSantillan ¡Qué flipe! Yo ahí me pierdo, pero me parece una pasada eso, Carlos :D

    • @CarlosDavidCorreaSantillan
      @CarlosDavidCorreaSantillan 4 ปีที่แล้ว +1

      @@javianmuniz deberías hacer un "Juego de la vida" 3d como te dije antes que hice, no requiere un cambio de reglas solo tienes que rastrear las ocho celdas vecinas del plano y las 18 celdas de los planos contiguos, es como si fuera una cascara, iba decir concha pero en mi país esa palabra tiene otras implicaciones... en qbasic funciona bastante mas lento que en java pero y si haces girar el cubo puedes llegar a ver una evolución extraordinaria, hasta ahora se lo he puesto como desafio a todos los youtuber incluso los que hacen juegos en 3d y se borraron del mapa, con lo facil que es...

    • @CarlosDavidCorreaSantillan
      @CarlosDavidCorreaSantillan 4 ปีที่แล้ว +1

      @@javianmuniz Podrías ver que de una imagen al azar a otra hay un cambio, podrías llegar a inferir que reglas hicieron que un pixel cambiara a cero, uno o quedase como esta en base a las celdas vecinas, pero perderías mucho tiempo, mas si la imagen es grande, las redes neuronales pueden hacer este trabajo y de paso hallar un orden subyacente mucho mas bello, como veras, soy eso que ustedes llaman friki... Espero que tu proximo paso sean los fractales

  • @lucianourquiza9664
    @lucianourquiza9664 4 ปีที่แล้ว +2

    Se podría crear el juego Breakout entendiendo este Código? Como haría para que cuando el estado sea que están convinados uno desaparezca y el otro rebote en diagonal

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +3

      Se podrían combinar, la verdad. Además el Breakout es un juego muy sencillo de implementar. Puede que más adelante lo programemos, como parte de los juegos clásicos :)

  • @serkratos1216
    @serkratos1216 4 ปีที่แล้ว +2

    Lo unico que no he entendido es como la matriz reconoce a los vecinos de cada pixel.

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +2

      Cada objeto pixel, tiene una copia de sus vecinos (los objetos)

  • @danisraelnavarrete3458
    @danisraelnavarrete3458 3 ปีที่แล้ว

    aunque le cambie a 2d me sigue marcando el mismo error, que hago?

  • @mariotapia6260
    @mariotapia6260 4 ปีที่แล้ว +2

    ¿Lo tienes desarrollado en Python?

    • @javianmuniz
      @javianmuniz 4 ปีที่แล้ว +2

      ¡Hola Mario! No, Python es una de mis asignaturas pendientes, lo lamento.

    • @mariotapia6260
      @mariotapia6260 4 ปีที่แล้ว +1

      @@javianmuniz Empezaremos con JS... Gracias.

  • @eaae
    @eaae 4 ปีที่แล้ว

    En este vídeo se formula en Excel un simulador del 'juego de la vida', de John H. Conway, sin usar macros ni programación en VBA: th-cam.com/video/fGJQRFFJrgY/w-d-xo.html.

  • @wrygabriel20
    @wrygabriel20 2 ปีที่แล้ว

    Que tan difícil es programarlo?

  • @ivansotelo7609
    @ivansotelo7609 4 ปีที่แล้ว +1

    222

  • @kuturruluf1872
    @kuturruluf1872 4 ปีที่แล้ว +1

    Busque conway de gta spainRP no esto 🤣😓