Juego de dados
Las reglas del juego de dados pueden leerse en la wikipedia: Craps
Cuando se juega en un casino contra la banca, o casa, uno o varios jugadores realizan diversas apuestas al resultado que se obtendrá en los dados que lance alguno de los jugadores, el cual es designado «tirador» o «shooter» por su nombre en inglés. Para comenzar el juego, durante lo que se conoce como «tiro de salida», el jugador necesita realizar una apuesta que se conoce como «línea de pase», en la que se busca obtener un siete (conocido como «siete natural» o «siete ganador») o un once en la combinación de dados para ganar la apuesta, que paga uno a uno. Si por el contrario obtiene un dos, tres o doce (números conocidos como «craps») pierde automáticamente su apuesta y necesitará colocar de nuevo una apuesta para seguir tirando. Si durante el primer lanzamiento no obtiene un siete u once (con que gana), o un dos, tres o doce (con que pierde), el juego entrará en una segunda etapa, en la que se marcará el «punto» en el número que se obtenga en dicho lanzamiento (cuatro, cinco, seis, ocho, nueve o diez). En esta etapa, el tirador buscará volver a obtener ese número en los dados, con lo que ganará el «roll» o «ronda», antes de obtener un siete, llamado «siete fuera» o «seven out». Si logra repetir el número del punto, el jugador ganará su apuesta y se le pagará uno a uno el monto. Si por el contrario si aparece un siete, perderá su apuesta. En ambos casos se considera que la ronda ha terminado y el juego vuelve a comenzar, aunque si la ronda culminó debido a un siete fuera se designará un nuevo tirador de entre los distintos jugadores.
Para nuestro programa tendremos, entonces, dos ramas diferentes.
Cuando el usuario le de a jugar tiramos los dados.
- Si sale siete u once, ha ganado
- Si sale 2, 3 o 12, ha perdido.
En cualquier otro caso tenemos que guardar la puntuación (y mostrarla en cualquier sitio). A partir de aquí tendremos otro botón de tirar en el que iremos tirando los datos hasta que:
- Salga siete: ha perdido
- Salga el mismo numero: ha ganado
Lo más fácil es tener dos botones, que se irán mostrando u ocultando dependiendo de como vaya el juego.
En el primer botón:
- Realizar tirada (dos números aleatorios entre 1 y seis) Poner imagen. Estaría bien tener una función para esto.
- Si sale siete u once, aumentamos uno al saldo y decimos que ha ganado
- Si sale 2, 3 o 12 quitamos uno al saldo y decimos que ha perdido
- Si sale otro número lo almacenamos en una variable, ocultamos el botón y mostramos el segundo
En el segundo botón:
- Realizar tirada. Idem anterior
Si sale siete, ha perdido
Si sale el número, ha ganado
En cualquier otro caso, sigue jugando
Ejercicio clicker empresa de software
Vamos a hacer un juego tipo clicker para manejar una empresa de software.
Tenemos un botón para escribir código. Cada vez que lo pulsamos generamos una línea de código. La venta de una línea de código nos proporciona 10 céntimos de euro. Vamos a tener un control de las líneas de código escritas y del dinero que tenemos.
Por 10€ (gasto de papeleo) podemos contratar a un minion. Cada minion escribe una línea de código cada 10 segundos.
Nuestras oficinas tienen capacidad para albergar a 50 minions.
Nuestros discos duros tienen capacidad para almacenar 10 millones de líneas de código.
Ampliar la oficina nos cuesta 1000€ y caben otros 50 minions. Comprar un disco duro nos cuesta 100 € y almacena 10 millones de líneas de código.
Podemos ir comprando estos powers up:
- Contratar formador (1000€) Incrementa la productividad de los minions x 10
- Comprar máquina de café (500€) Incrementa la productividad de los minions x 2
- Incentivos (200€ * minion) Incrementa la productividad de los minions x 10 (este lo podemos ir haciendo todas las veces que queramos pero el precio se va multiplicando por 2, 400, 800…)
Cuando tengamos más de 500 minions:
- Asesoría SCRUM (10000€) Incrementa la productividad de los minions x4
- Contratar CTO de Amazon (100000€) Incrementa la productividad de los minions x50
Y también:
- Contratar comercial (1000€) Incrementa el precio del código x 2
- Contratar campaña medios (2000€) Incrementa el precio del código x 2
- Contratar agencia (5000€) Incrementa el precio del código x 2
Para almacenamiento:
- Comprar sistema de compresión (1000€) Duplica la capacidad de nuestros discos duros
Ejercicio Reloj
Ejercicio JS
Haced un ejercicio como este:
https://www.sporcle.com/games/RobPro/1-100-click-me
Dentro de un contenedor vamos a poner 100 cajitas desordenadas.
Hay que ir pulsándolas en orden, primero la 1, después la 2.
Al cabo de 4 minutos se bloquea el click.
Ejercicio JS DOM
En la página anterior realizar un js que nos permita:
Ver todos los elementos que están dentro de una lista
Ver todos los elementos que están dentro de un td
Poner todos los elementos que tengan una y griega dentro de su texto de color rojo (todo el elemento)
Mostrar un listado de todos los id’s
Mostrar un listado de todas las clases
Comparaciones JS
Ejercicio Web API
Vamos a crear una API para gestionar los siguientes modelos de datos:
HojaServicio
Id
Fecha
Descripción
Lineas
Id
Servicio
Precio
HojaServicioId
La API debe tener la siguiente funcionalidad:
Hoja/Get/id
Devuelve la fecha, la descripción y el total del precio
Hoja/Get/
Devuelve la lista con el mismo formato que el anterior
Hoja/Fecha/{fecha}
Nos devuelve una lista con las hojas de servicio de esa fecha con el mismo formato que la anterior
El resto (POST/PUT/DELETE) comportamiento habitual.
Lineas/Get/id
Nos devuelve el servicio, el precio y la fecha
Lineas/get
Todas las lineas con el formato anterior
Lineas/Servicio/{Servicio}
Todas las líneas que tengan ese servicio con el formato anterior.
El resto (POST/PUT/DELETE) comportamiento habitual.
Crear una ruta addAll a la que le pasemos lo siguiente:
fecha
descripcion
lista de servicios[{servicio,precio},{servicio,precio},{servicio,precio}]
Y nos cree la hoja de servicios y los servicios asociados
Ejercicio API
Vamos a consultar libros y artículos del nytimes. Aquí hay la lista de las apis:
https://developer.nytimes.com/apis
Yo me he creado una apikey: SFq0lnJwGzV4X8XyqV2kQvA3LgKAp3kN
Pero os podéis crear la vuestra.
Me gustaría que, desde el postman, accediéramos a la lista de los libros más vendidos y a los artículos de los tres últimos meses.
También podéis crear vuestra propia apikey y acceder, por ejemplo, a películas.
¡A por ello!
REST y API
Servicio Web (Wikipedia)
https://jsonplaceholder.typicode.com/
https://www.sitepoint.com/developers-rest-api/

