Ejercicios condicionales

Tenemos una variable lang que puede valer ‘es’, ‘ca’ o ‘en’. Escribir un programa que nos muestre ‘Hola mundo’ en el lenguaje especificado.

Tenemos un número que puede ser positivo o negativo. Escribir un programa que nos diga si es positivo o negativo.

Tenemos tres números en tres variables (a, b y c). Escribir un programa que nos los muestre ordenados de menor a mayor.

Tenemos una variable usuario y una password. Escribir un programa que nos diga acceso permitido si el usuario vale ‘ana’ y la password vale ‘1234’

Tenemos una variable número con el número de coches a la venta. Escribir un programa que me escriba ‘1 coche’ o ‘n coches’ (es decir, en singular o en plural) dependiendo de si son uno o varios.

Condiciones compuestas


var a, b;

a = 5;
b = 9;

if (a >= 5 && b >= 5) {
console.log("Aprobado");
} else {
console.log("suspendido");
}

if (a < 5 || b < 5) {
console.log("Suspendido");
} else {
console.log("Aprobado");
}

var ana = 20;
var juan = 15;

//Si los dos son mayores de 18 años pueden entrar, si no NO

if (ana >= 18 && juan >= 18) {
console.log("p'adentro");
} else {
console.log("No se puede pasar");
}

var dinero = 8;
var edad = 18;
var tarjeta = "si";

//¿Me puedo tomar un cubata que vale 9 euros?
if (edad >= 18 && (dinero >= 9 || tarjeta == "si")) {
console.log("Trae un cubata!!!");
}
if ((dinero >= 9 || tarjeta == "si") && edad >= 18) {
console.log("Trae un cubata!!!");
}
if ((tarjeta == "si" || dinero >= 9) && edad >= 18) {
console.log("Trae un cubata!!!");
}

Ejemplos if javascript


var a, b;

a = 5;
b = 9;

//Si b es mayor o igual que el doble de a mostrar 'Más del doble

if (b >= a * 2) {
console.log("Más del doble");
}

//Mostrar el valor de la variable mayor

if (a > b) {
console.log(a);
} else {
console.log(b);
}

//Método fácil

if (a > b) {
console.log("a es mayor");
}

if (b > a) {
console.log("b es mayor");
}

if (a == b) {
console.log("Son iguales");
}

if (a > b) {
console.log("a es mayor");
} else if (b > a) {
console.log("b es mayor");
} else {
console.log("Son iguales");
}

var nota = 7;

if (nota < 3) {
console.log("Muy deficiente");
} else if (nota < 5) {
console.log("Insuficiente");
} else if (nota < 6) {
console.log("Aprobado");
} else if (nota < 7) {
console.log("Bien");
} else if (nota < 9) {
console.log("Notable");
} else {
console.log("Sobresaliente");
}

var altura = 140;

if (altura >= 150) {
console.log("SI");
} else if (altura >= 130) {
console.log("COn adulto");
} else {
console.log("NO");
}

var numero = 9;

if (numero % 2 === 0) {
console.log("Es par");
} else {
console.log("es impar");
}

Casino: 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

Casino: Juego 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

dados

Casino: Slot Machine (máquina tragaperras)

La página de tragaperras dispondrá de una barra lateral donde se mostrarán la lista de premios. En la parte del contenido veremos tres imágenes y un botón de jugar. Cada vez que se presione ese botón se realizará el proceso siguiente:

  • Se restará al saldo una unidad (coste del juego)
  • Se mostrarán tres frutas aleatorias
  • Si las tres frutas son iguales avisaremos al usuario que ha ganado un premio y actualizaremos el saldo.

Es decir, el comportamiento habitual de una máquina tragaperras. Vamos a desglosar el proceso general en pasos más pequeños y a dar pistas de resolución:

  • Se restará al saldo una unidad (coste del juego)
    • Obtener el saldo actual
    • Restar uno
  • Se mostrarán tres frutas aleatorias
    • Necesitamos siete imágenes de frutas (recomendación: fruta0.jpg, fruta1.jpg,….)
    • Obtenemos un valor aleatorio entre 0 y 6 (Math.random) para cada fruta (pos1,pos2 y pos3)
    • Cambiamos el origen de cada una de las imágenes con el valor aleatorio (Recordemos: $(‘#imagen’).attr(‘src’, ‘img/fruta?.jpg’);)
    • Podemos ponerle alguna animación (ej: slideDown)
  • Si las tres frutas son iguales (pos1==pos2==pos3)
    • Sumamos el premio al saldo
    • Mostramos en la página el texto ‘Ha ganado x €’ (sugerencia:  $(‘#texto’).html(‘Ha ganado…’);)

Esto es todo ¡A jugar!

frutas

Ejemplo jQuery

 <button id="anyadir">Añadir</button>
 <button id="delFirst">Eliminar primera</button>
 <button id="delLast">Eliminar última</button>
 <button id="suma">Sumar</button>
 <button id="suma2">Sumar 2</button>
 
 <table border="1" id="lista">
 <tr><td>1</td></tr>
 </table>
$(function () {

$('#anyadir').click(function () {
var numero = Math.floor(Math.random() * 10) + 1;
$('#lista').append("<tr><td>" + numero + "</td></tr>");
});
$('#delFirst').click(function () {
$('#lista tr:first-child').remove();
});
$('#delLast').click(function () {
$('#lista tr:last-child').remove();
});
$('#suma').click(function () {
var suma = 0;
for (var i = 1; i <= $('#lista tr').length; i++) {
suma += parseInt($('#lista tr:nth-child(' + i + ') td').html());
}
$('#lista').before("Suma: " + suma);
});

$('#suma2').click(function () {
var suma = 0;
$('#lista td').each(function () {
suma += parseInt($(this).html());
});
$('#lista').before("Suma: " + suma);
});
});

Ejemplo jQuery

 

 <input type="text" id="texto">
 <p>Hola que tal</p>
 <p>Yo muy bien</p>
 <div id="resultado"></div>
 <button id="boton">Pulsar</button>
 <button id="mas">Añadir</button>
 <button id="eliminar">Eliminar</button>
$(function () {
$('#boton').click(function () {
$('p').animate({fontSize: "30px"}, 3000)
.animate({fontSize: "10px"}, 3000)
.animate({fontSize: "30px"}, 3000);
});
$('#eliminar').click(function () {
$('p:last-child').remove();
});
$('#mas').click(function () {
// var div = $('#resultado').html();
// div += "<p>" + $('#texto').val() + "</p>";
// $('#resultado').html(div);
$('#resultado').append("<p>" + $('#texto').val() + "</p>")
$('#texto').val('');
$('p').click(function () {
$(this).remove();
});
});

$('#texto').keyup(function (event) {
if (event.keyCode === 13) {
$('#mas').click();
}
});

});

Más objetos

function Empleado(nombre, sueldo) {
    this.nombre = nombre;
    this.sueldo = sueldo;
    this.empresa = "Netmind";
    this.departamento = "";
    this.sueldoNeto = function () {
        return this.sueldo * (1-this.irpf());
    };
    this.irpf = function () {
        if (this.sueldo < 1500) {
            return .2;
        }
        if (this.sueldo >= 1500 && this.sueldo < 3000) {
            return .3;
        }
        return .4;
    };
    this.neto=function(){
      var sueldo=this.sueldo;
      var irpf=this.irpf();
      var neto=sueldo-sueldo*irpf;
      return neto;
    };
}

function Empresa(nombre) {
    this.nombre = nombre;
    this.jefe = new Empleado("Jefe", 3000);
    this.empleados = [];
    for (var i = 0; i < 10; i++) {
        this.empleados.push(new Empleado("Empleado" + i, 1400 + i * 100));
    }

    this.comerciales = [];
    for (var i = 0; i < 3; i++) {
        var e = new Empleado("Comercial" + i, 1400 + i * 100);
        e.departamento = "Comercial";
        this.comerciales.push(e);
    }
}

function Holding(emp1, emp2) {
    this.empresas = [emp1, emp2];
}
var netmind = new Empresa("Netmind");
var activity = new Empresa("Activity");

var conglomerado = new Holding(netmind, activity);

var ana = new Empleado("Ana Pérez", 1500);
var juan = new Empleado("Juan Pi", 1400);

var empleados = [];
for (var i = 0; i < 10; i++) {
    empleados.push(new Empleado("Empleado" + i, 1400 + i * 100));
}

String.prototype.oracion = function () {
    return this.valueOf().charAt(0).toUpperCase() + this.valueOf().slice(1).toLowerCase();
}

function Producto(nombre,precio){
    this.nombre=nombre;
    this.precio=precio;
    this.iva=.21;
    this.referencia=("0000" + Math.floor(Math.random()*10000)).slice(-4);
    this.pvp=function(){
        return this.precio*(1+this.iva);
    }
    this.pvpConDescuento=function(descuento){
        return this.pvp()*(1-descuento/100);
    }
}

var tornillo = new Producto("tornillo",100);