Blackjack

Para el juego del blackjack primero necesitamos conocer las reglas del juego:

BlackJack

Hay un jugador y una banca. Se reparten dos cartas a cada uno. El objetivo es sumar 21 o lo más cercano pero sin pasarse. Las figuras valen 10 y los ases 1 u 11, dependiendo de lo que nos interese. El resto de cartas su valor. Una vez repartidas las dos cartas el jugador puede plantarse o pedir carta. Si pide carta y se pasa, ha perdido. Si no, otra vez puede pedir carta o pararse. Cuando se para es el turno de la banca.

Para gestionar las decisiones de la banca puede parecer que necesitamos una inteligencia artificial, pero por suerte no es así.  Si la puntuación es menor de 16 tiene que pedir carta, si es 17 o superior tiene que plantarse.

¿Cómo lo haremos?

En primer lugar crearemos un array con las 52 cartas de la baraja. Este array lo desordenaremos y ya estaremos listos para empezar a repartir.

Se reparten dos cartas a la banca y dos al jugador. Las podemos guardar en un array. Las de la banca se oculta la primera y se muestra la segunda. Las del jugador se muestran todas.

A partir de aquí tenemos dos botones:

  • Pedir carta. Le damos otra carta al jugador. Tenemos que contar la puntuación; si se ha pasado pierde. En caso contrario no hacemos nada.
  • Plantarse. Pasamos al turno de la banca

Cuando es el turno de la banca esta tiene que hacer:

  • Si su puntuación es menor que 17, pedir carta. Si se pasa pierde.
  • Si es mayor plantarse.

Si no se ha pasado ninguno de los dos el jugador que tiene el mayor número es el que gana. Y vuelta a empezar.

baraja

Ejercicio academia

Crear un diseño entidad relación que permita controlar el sistema de información de una academia de cursos siguiendo estas premisas:

  • Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono y la edad
  • Además de los que trabajan necesitamos saber el CIF, nombre, teléfono y dirección de la empresa en la que trabajan
  • Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el programa del curso, las horas de duración del mismo, el título y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, apellidos, dirección y teléfono
  • Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos y en cada cual obtendrá una nota.

Ejemplos BD

En un centro de salud un médico atiende a varios pacientes y cada paciente está asignado a un solo médico. Cada médico pasa consulta en una o varias salas en horario distinto. En cada sala pasan consulta varios médicos.

a. Del médico interesan conocer sus datos personales y el año en que se colegio.

b. De la sala interesa conocer su ubicación, además se identifica por un nº de sala

c. Del paciente, además de sus datos personales, se desea conocer su historial médico.

d. Se desea saber en qué sala pasa consulta cada médico en cada momento.

 

Se desea diseñar una BD para una Universidad que contenga información sobre carreras y asignaturas que se pueden estudiar. Además se incluirá la información de los alumnos matriculados en las correspondientes asignaturas y las calificaciones que obtienen en las asignaturas en las que están matriculados. Nota: suponer que una asignatura solo puede pertenecer a una carrera.

 

 

En una autoescuela hay varios profesores y varios coches de prácticas. Se quiere guardar información respecto a los alumnos que se matriculan, el profesor que se les asigna y el coche que conducirán. Cada alumno da clase con un profesor en un coche, el alumno siempre va a conducir el mismo coche y con el mismo profesor.

 

Se desea diseñar una base de datos para almacenar y gestionar la información empleada por una empresa dedicada a la venta de automóviles, teniendo en cuenta los siguientes aspectos La empresa dispone de una serie
de coches para su venta. Se necesita conocer la matricula, marca y modelo, el color y el precio de venta de cada coche.Los datos que interesa conocer de cada cliente son el NIF, nombre, dirección, ciudad y numero de teléfono: ademas, los clientes se diferencian por un código interno de la empresa.  Un cliente puede comprar tantos coches como desee a la empresa. Un coche determinado solo puede ser comprado por un único cliente.

 

 

En la biblioteca del centro se manejan fichas de autores y libros. En la ficha de cada autor se tiene el código de autor y el nombre. De cada libro se guarda el código. titulo, ISBN, editorial y numero de pagina. Un autor puede escribir varios libros, y un libro puede ser escrito por varios autores. Un libro esta formado por ejemplares.
Cada ejemplar tiene un código y una localización Un libro tiene muchos ejemplares y un ejemplar pertenece solo a un libro. Los usuarios de la biblioteca del centro también disponen de ficha en la biblioteca y sacan ejemplares
de ella. De cada usuario se guarda el código, nombre. dirección y teléfono. Los ejemplares son prestados a los usuarios. Un usuario puede tomar prestados varios ejemplares, y un ejemplar puede ser prestado a varios usuarios. De cada prestamos interesa guardar la fecha de préstamo y la fecha de devolución.

Algoritmo ruleta

Botón reset-> Actualizar la página
Arrastrar fichas: en el drop guardar valores:

  var apuesta_ruleta = ['rojo', 'negro', 'par', 'impar', 'passe', 'manque'];
    var apuestas = [];
    $(".ficha").draggable();
    $(".apuesta").droppable({
        drop: function (event, ui) {
            var apuesta = $(this).attr("title");
            var cantidad = $(ui.draggable).attr("title");
            $(ui.draggable).draggable('disable');
            apuestas[apuesta] = cantidad;
            $('#info').append("Apuesta " + cantidad + " al " + apuesta_ruleta[apuesta] + "<br/>");

        }
    });

En el botón de jugar tenemos que hacer:
– Descontar del saldo el total de las apuestas:

  var total=0;
        for (var i in apuestas){
            total+=parseInt(apuestas[i]);
        }
		saldo-=total;

– Obtener un número entre 0 y 36
– Si el número es cero avisar de que ha perdido.
– Si el número es rojo y ha apostado a rojo darle de premio la apuesta
– Idem negro
– Idem par
– Idem impar
– Idem passe
– Idem manque
– Informar de número, premios, saldo, etcétera.

Ruleta

Vamos a usar una versión simplificada de la ruleta. Aunque en la ruleta original se pueden hacer muchos tipos de apuestas, aquí sólo vamos a permitir tres:

  • Rojo o Negro: si el  número es rojo o negro
  • Par o impar: si es par o impar
  • Passe o Manque: si es mayor o menor que 18

Las dos últimas las podemos averiguar fácilmente a partir del número. La primera hay que saberse la lista, que es la siguiente:

 var colorNum=[1,2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1,1,2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1]; //1=Rojo, 2=Negro

En la página tendremos una tabla con seis elementos, para las diferentes apuestas y tres o más imágenes de fichas (aquí dejo cuatro: fichas)

Estas fichas las arrastraremos hasta la tabla y así se harán las apuestas. Si suelto la ficha de $5 en el elemento ‘rojo’ se entiende que estoy apostando 5 al rojo. Para facilitar la cosa las fichas pueden tener en el title el valor y los elementos lo mismo.

Después tendremos un botón de jugar, donde obtendremos un número aleatorio y dependiendo de lo que salga y las apuestas le daremos el premio.

Preguntas jQuery

Selectores:

  • Seleccionar los párrafos dentro de un div
  • Seleccionar el segundo tr de una tabla con id ‘datos’

Estilos

  • Poner todos los enlaces de color de fondo gris
  • Añadir a todas las cabeceras ‘h1’ la clase ‘cabecera’
  • A todos los elementos que tengan la clase ‘supercool’, quitársela.

Eventos

  • Cuando se pulse el botón con id ‘alerta’ mostrar un alert con un texto
  • Al pasar por encima de cualquier párrafo que se ponga el fondo de color rojo
  • Y cuando se salga de color blanco

Contenido

  • Añadir un elemento ‘<li>hola</li>’ a la lista con id ‘lista’
  • Vaciar el contenido de todos los span de la página
  • Obtener el valor de un input con id ‘sueldo’

Parentela:

  • Eliminar todos los hijos del elemento con id ‘contenedor’
  • Añadir al padre del elemento con id ‘lista’ la clase ‘destacado’
  • Ocultar todos los hermanos del elemento con id ‘lista’
  • Crear un duplicado de la lista con id ‘lista’

Efectos

  • Al pinchar en cualquier elemento de la página (menos el body) que se desvanezca
  • Al pinchar en cualquier elemento ‘li’ de la lista con id ‘lista’ que aparezcan/desaparezcan sus hermanos
  • Cuando se pinche en una imagen con id ‘cohete’ que suba ‘parriba’ y luego baje ‘pabajo’

jquery