- 1

Programación Básica: Fundamentos y Creación de Proyectos en Línea
00:51 - 2

Programación Básica en Google Chrome: Variables y Funciones
08:12 - 3

Creación de una Página Web Básica con HTML
06:40 - 4

Estructura Básica de un Documento HTML
05:15 - 5

Estructura y funcionamiento básico de HTML y JavaScript
07:57 - 6

Instalación y uso básico de Visual Studio Code para programar
06:39 - 7

Declaración y Uso Básico de Variables en JavaScript
03:24 - 8

Programación de Piedra, Papel o Tijera en JavaScript
09:44 - 9

Programación de Piedra, Papel o Tijera en JavaScript
10:02 - 10

Generación de Números Aleatorios con JavaScript
10:32 - 11

Creación y uso de funciones en programación
14:05 - 12

Ciclos y Condiciones en Programación: Piedra, Papel o Tijera
04:11 - 13

Programación de un Juego de Piedra, Papel o Tijera en JavaScript
09:55 - 14

Manejo de Rutas y Archivos en Sistemas Operativos y Desarrollo Web
08:05 - 15

Manipulación del DOM y Eventos en JavaScript para Juegos Web
06:34 Quiz Fundamentos de Programación
Programación de un Juego de Piedra, Papel o Tijera en JavaScript
Clase 13 de 84 • Curso Gratis de Programación Básica
Contenido del curso
- 16

Maquetación de Páginas Web para Videojuegos en HTML
14:12 - 17

Selección de Mascotas en HTML para Juegos Interactivos
12:53 - 18

Programar eventos de clic en botones HTML con JavaScript
15:23 - 19

Eventos de Carga en JavaScript: Iniciar Juego y Seleccionar Mascota
13:47 - 20

Selección de Mascota en JavaScript: Implementación y Validación
12:40 - 21

Manipulación del DOM con JavaScript para mostrar mascota seleccionada
11:14 - 22

Selección Aleatoria de Mascota Enemiga en JavaScript
12:31 - 23

Eventos de clic y lógica de ataque en JavaScript
12:16 - 24

Ataques Aleatorios para Mascotas Enemigas en JavaScript
08:43 - 25

Creación de Mensajes Dinámicos en Combate HTML y JavaScript
13:07 - 26

Lógica de Combate en JavaScript para Juego Mokepon
14:49 - 27

Operadores Lógicos en Programación: AND, OR y NOT
14:40 - 28

Actualización de Vidas en Juego de Combate con JavaScript
09:27 - 29

Validación de Vidas y Mensajes Finales en Juegos
08:48 - 30

Funcionalidad de Reinicio y Desactivación de Botones en Juego
10:56 - 31

Mostrar y ocultar secciones en HTML con JavaScript
15:12 Quiz Desarrollando un juego con HTML y JavaScript
- 32

Estilos CSS: Selectores, Propiedades y Valores
11:54 - 33

Tipos de Visualización en CSS: Display Block, Inline e Inline Block
06:48 - 34

Alineación de Elementos con Flexbox en CSS
10:56 - 35

Modelo de Caja en CSS: Espaciado y Bordes
10:00 - 36

Diseño y Estilo de Páginas Web con HTML y CSS
17:27 - 37

Estilos CSS para Botones en Juegos: Diseño de Pantallas Interactivas
08:37 - 38

Estilos CSS para Mejorar la Interfaz de un Juego
09:28 - 39

Estilizado de Pantallas de Juego con CSS y Flexbox
11:06 - 40

Separación de mensajes y estilos en JavaScript y HTML
21:10 - 41

CSS Grid: Organiza Elementos en Rejillas Bidimensionales
11:32 - 42

Diseño Responsivo con CSS: Media Queries y Flexbox
11:09 - 43

Pseudoclases en CSS: Mejora la Interacción del Usuario
08:31 Quiz Estilos con CSS
- 44

Optimización de Código JavaScript con Clases y Objetos
06:29 - 45

Optimización de Código JavaScript: Variables y Funciones
18:20 - 46

Clases y Objetos: Fundamentos para Optimizar Juegos
03:47 - 47

Construcción de Clases y Objetos en JavaScript
10:18 - 48

Uso de Arreglos para Almacenar Objetos en JavaScript
06:49 - 49

Agregar ataques a objetos en JavaScript
13:47 - 50

Renderizado Dinámico de Objetos en HTML con JavaScript
16:27 - 51

Solución de errores en variables y elementos HTML en JavaScript
07:22 - 52

Uso de Objetos para Centralizar Información en JavaScript
04:44 - 53

Selección de Mascota Aleatoria en JavaScript
07:07 - 54

Iteración de Arreglos y Manipulación DOM en JavaScript
12:17 - 55

Crear Función "mostrarAtaques" en JavaScript para Juegos
13:06 - 56

Eventos de Clic en Botones con JavaScript
20:45 - 57

Secuencia de Ataques y Validación de Resultados en JavaScript
15:53 - 58

Implementación de lógica de combate en juegos JavaScript
18:41 - 59

Programación de Juegos: Lógica de Ataques y Victorias
12:44 - 60

Optimización y Corrección de Errores en Juegos Web con JavaScript
13:33 Quiz Optimización de código
- 61

Dibujo y manejo de gráficos en Canvas con JavaScript
10:40 - 62

Movimiento de Capipepo en Canvas con HTML y JavaScript
05:54 - 63

Movimiento Continuo de Personajes en Canvas con JavaScript
11:04 - 64

Eventos de Teclado para Controlar Personajes en Juegos
08:23 - 65

Pintar Fondos y Personajes en Canvas HTML
12:03 - 66

Métodos de Clases en JavaScript para Juegos Interactivos
09:16 - 67

Detección de Colisiones en Videojuegos con JavaScript
13:00 - 68

Programación de eventos y colisiones en un juego interactivo
10:40 - 69

Ajuste Responsivo de Mapas en Pantallas con JavaScript
09:04 - 70

Estilos Responsivos en HTML y CSS para Mapas Interactivos
06:59 Quiz Mapa con canvas
- 71

Desarrollo de Juegos Multijugador con Cliente-Servidor y API
08:38 - 72

Instalación de Node.js en Windows para desarrollo backend
05:45 - 73

Uso básico de la terminal de comandos y Node.js
08:59 - 74

Creación de un Servidor Básico con Express.js en Node.js
08:19 - 75

Conceptos Clave de URIs y Verbos HTTP en Node.js
07:07 - 76

Desarrollo de API con Node.js y Comunicación Frontend-Backend
12:47 - 77

Selección de Mokepon y Comunicación JSON en Express.js
25:43 - 78

Implementación de un Endpoint para Coordenadas de Jugadores en Node.js
11:12 - 79

Integración de Coordenadas de Jugadores en Mokepon Multijugador
23:03 - 80

Optimización de Coordenadas en Videojuegos con JavaScript
05:17 - 81

Batalla Final en Mokepon: Implementación de Colisiones y Back-End
13:02 - 82

Implementación de Ataques en Tiempo Real para Videojuego Mokepon
10:42 Quiz Backend: videojuego multijugador
Ya tenemos un juego funcional de piedra papel o tijera, pero ¿qué tal si lo cambiamos para que gane el mejor de tres partidas?
Fundamentos para la práctica
Antes de empezar a hacer modificaciones, repasemos los fundamentos que te permitirán hacerlo:
Operadores de comparación en JavaScript
Hay algunos operadores que te ayudarán a escribir condiciones en tu código:
| Operador | Significado |
|---|---|
| == | Retorna “verdadero” si un lado es igual al otro (Ojo, NO distingue entre números y strings. Por lo tanto: 3 == “3” //verdadero). |
| === | Retorna “verdadero” si un lado es estrictamente igual al otro (Ojo, SÍ distingue entre números y strings. Por lo tanto: 3 === “3” //falso). |
| != | Retorna “verdadero” si un lado es diferente del otro lado (Ojo, NO distingue entre números y strings. Por lo tanto: 3 != “3” //falso). |
| !== | Retorna “verdadero” si un lado es estrictamente diferente del otro lado (Ojo, SÍ distingue entre números y strings. Por lo tanto: 3 != “3” //verdadero). |
| && | Funciona como un “y” en la condición. Te permite juntar varias condiciones y devuelve “verdadero” solo si todas se cumplen. |
| < | Devuelve “verdadero” si el valor a la izquierda es menor que el valor a la derecha. |
| <= | Devuelve “verdadero” si el valor a la izquierda es menor o igual que el valor a la derecha. |
| > | Devuelve “verdadero” si el valor a la izquierda es mayor que el valor a la derecha. |
| >= | Devuelve “verdadero” si el valor a la izquierda es mayor o igual que el valor a la derecha. |
💡 También tienes el operador ||, que funciona como un “o” en la condición. Te permite juntar varias condiciones, y devuelve “verdadero” si alguna de ellas se cumple.
No pudimos incluirlo en la tabla por un problema técnico, pero sientete libre de usarlo también 👍
💡 Aquí te dejo un fragmento de código que puedes copiar y pegar en la consola del navegador. Solo cambia la condición y los operadores para que experimentes como funciona cada operador 👍
if ( X == Y ) {
console.log( "Verdadero" );
} else {
console.log( "Falso" );
}
Ciclos While en JavaScript
while es una instrucción en JavaScript (al igual que if) que te permite crear ciclos. Su estructura es la siguiente:
while ( condición ) {
//Código a ejecutar mientras se cumpla la condición
}
Por ejemplo:
while ( diaDeLaSemana < 6 ) {
irA( escuela );
diaDeLaSemana = diaDeLaSemana + 1;
}
//El bloque de código se repetirá hasta que diaDeLaSemana = 6
anímate a experimentar un poco con esto, y luego acompáñame a realizar la práctica de hoy 😉
Cómo implementar ciclos en el juego de piedra, papel y tijera
Empecemos 😁
1. Agrega variables para contar las victorias
Primero agrega un par de variables que te permitan contar cuantas victorias, derrotas y empates ha acumulado el jugador. Y también necesitas modificar el juego para que el jugador los acumule con cada partida.
Para que el juego no se sienta tan largo vamos a detenerlo luego de 2 victorias o 2 derrotas. Así que es buena idea programar una función que le informe al jugador los resultados finales, y podrías agregar una segunda función que reinicie las variables para un próximo juego.
Intenta hacerlo por tu cuenta, y cuando termines compáralo con el ejemplo de aquí abajo 🙂
//FUNCIÓN PARA LAS ALERTAS
function alertaDeElecciones( quienElije , eleccion ) {
if ( eleccion == 1 ) {
alert( "El " + quienElije + " eligió 🥌" );
} else if ( eleccion == 2 ) {
alert( "El " + quienElije + " eligió 📄" );
} else if ( eleccion == 3 ) {
alert( "El " + quienElije + " eligió ✂️" );
} else {
alert( "Hubo un error con la elección del " + quienElije + " 🙃" );
}
}
//FUNCIÓN PARA GENERAR NÚMEROS ALEATORIOS
function numeroAleatorio( min , max ) {
return Math.floor( Math.random() * ( max - min + 1 ) + min );
}
//FUNCIÓN PARA DECIDIR EL GANADOR
function quienGanaEntre ( eleccionJugador , eleccionOponente ) {
if ( eleccionJugador == eleccionOponente ) {
alert( "¡EMPATE! 🤼" );
empates = empates + 1;
} else if ( eleccionJugador == 1 && eleccionOponente == 3 ) {
alert( "¡GANASTE! 🥳" );
victorias = victorias + 1;
} else if ( eleccionJugador == 2 && eleccionOponente == 1 ) {
alert( "¡GANASTE! 🥳" );
victorias = victorias + 1;
} else if ( eleccionJugador == 3 && eleccionOponente == 2 ) {
alert( "¡GANASTE! 🥳" );
victorias = victorias + 1;
} else {
alert( "PERDISTE... 😢" );
derrotas = derrotas + 1;
}
}
//FUNCIÓN PARA NOMBRAR AL GANADOR FINAL
function mostrarResultados() {
alert("Has acumulado " +
victorias + " victorias, " +
derrotas + " derrotas y " +
empates + " empates.");
if ( victorias == 2 ) {
alert( "TÚ eres el GANADOR" );
resetearVariables();
} else if ( derrotas == 2 ) {
alert( "EL COMPUTADOR es el GANADOR" );
resetearVariables();
} else {
alert( "Hubo un error... 🙃");
resetearVariables();
}
}
//FUNCIÓN PARA RESETEAR VARIABLES DE VICTORIAS
function resetearVariables() {
victorias = 0;
derrotas = 0;
empates = 0;
}
//ELECCIÓN DEL JUGADOR
let eleccionDelJugador = 0;
eleccionDelJugador = prompt( "Elige: 1 para 🥌, 2 para 📄, 3 para ✂️" );
alertaDeElecciones( "jugador" , eleccionDelJugador );
//ELECCIÓN DEL COMPUTADOR
let eleccionDelComputador = numeroAleatorio( 1 , 3 );
alertaDeElecciones( "computador" , eleccionDelComputador );
//DECIDIENDO EL GANADOR
let victorias = 0;
let derrotas = 0;
let empates = 0;
quienGanaEntre ( eleccionDelJugador , eleccionDelComputador );
2. Implementa el ciclo “while”
Es momento de implementar el ciclo en tu código. Para hacerlo, ten presente la siguiente información:
- El juego se detiene cuando el jugador acumule dos victorias o dos derrotas.
- La elección del jugador y del computador debe repetirse en cada ciclo.
- Al completar el ciclo, debes mostrarle los resultados al jugador y resetear las variables de juego.
Hacer esto requiere que muevas algunas cosas dentro del código. Intenta hacerlo por tu cuenta, y luego lo comparas con el código aquí abajo 😉
//FUNCIÓN PARA LAS ALERTAS
function alertaDeElecciones( quienElije , eleccion ) {
if ( eleccion == 1 ) {
alert( "El " + quienElije + " eligió 🥌" );
} else if ( eleccion == 2 ) {
alert( "El " + quienElije + " eligió 📄" );
} else if ( eleccion == 3 ) {
alert( "El " + quienElije + " eligió ✂️" );
} else {
alert( "Hubo un error con la elección del " + quienElije + " 🙃" );
}
}
//FUNCIÓN PARA GENERAR NÚMEROS ALEATORIOS
function numeroAleatorio( min , max ) {
return Math.floor( Math.random() * ( max - min + 1 ) + min );
}
//FUNCIÓN PARA DECIDIR EL GANADOR
function quienGanaEntre ( eleccionJugador , eleccionOponente ) {
if ( eleccionJugador == eleccionOponente ) {
alert( "¡EMPATE! 🤼" );
empates = empates + 1;
} else if ( eleccionJugador == 1 && eleccionOponente == 3 ) {
alert( "¡GANASTE! 🥳" );
victorias = victorias + 1;
} else if ( eleccionJugador == 2 && eleccionOponente == 1 ) {
alert( "¡GANASTE! 🥳" );
victorias = victorias + 1;
} else if ( eleccionJugador == 3 && eleccionOponente == 2 ) {
alert( "¡GANASTE! 🥳" );
victorias = victorias + 1;
} else {
alert( "PERDISTE... 😢" );
derrotas = derrotas + 1;
}
}
//FUNCIÓN PARA NOMBRAR AL GANADOR FINAL
function mostrarResultados() {
alert("Has acumulado " +
victorias + " victorias, " +
derrotas + " derrotas y " +
empates + " empates.");
if ( victorias == 2 ) {
alert( "TÚ eres el GANADOR" );
resetearVariables();
} else if ( derrotas == 2 ) {
alert( "EL COMPUTADOR es el GANADOR" );
resetearVariables();
} else {
alert( "Hubo un error... 🙃");
resetearVariables();
}
}
//FUNCIÓN PARA RESETEAR VARIABLES DE VICTORIAS
function resetearVariables() {
victorias = 0;
derrotas = 0;
empates = 0;
}
//ELECCIÓN DEL JUGADOR
let eleccionDelJugador = 0;
//ELECCIÓN DEL COMPUTADOR
let eleccionDelComputador = 0;
//DECIDIENDO EL GANADOR
let victorias = 0;
let derrotas = 0;
let empates = 0;
while ( victorias < 2 && derrotas < 2 ) {
eleccionDelJugador = prompt( "Elige: 1 para 🥌, 2 para 📄, 3 para ✂️" );
eleccionDelComputador = numeroAleatorio( 1 , 3 );
alertaDeElecciones( "jugador" , eleccionDelJugador );
alertaDeElecciones( "computador" , eleccionDelComputador );
quienGanaEntre ( eleccionDelJugador , eleccionDelComputador );
}
mostrarResultados();
Anímate a probarlo algunas veces y sientete orgulloso de lo que haz logrado 🥳 En el futuro te enseñaremos a crear un botón en tu sitio web que puedes configurar para que inicie el juego cuando alguien lo presione 🙂 Pero, mientras tanto, acompañame a aprender cómo funciona la estructura de archivos de un sitio web 😉
Contribución creada por: Jhonkar Sufia (Platzi Contributor).