intento de Love Letter
Juego de cartas
by Luis Martin
HTML
<button id="robar">
Robar
</button>
<button id="barajar">
Barajar
</button>
<div id="cartas">
</div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
height: 700px;
}
#cartas {
position: absolute;
bottom: 10px;
width: 80%;
display: flex;
justify-content: space-evenly
}
.carta {
position: relative;
display: flex;
height: 200px;
width: 150px;
background: white;
border: 2px solid black;
border-radius: 20px;
text-align: center;
}
.carta .nombre {
flex: 8;
}
.carta .valor {
flex: 3;
}
.carta .texto {
position: absolute;
bottom: 10px;
width: 80%;
left: 15px;
height: 80px;
border: 2px solid black;
border-radius: 10px;
font-size: 10px;
text-align: left;
padding: 3px;
}
JavaScript
//http://jugondemesa.blogspot.com/2018/09/hoy-hablamos-de-love-letter.html
let cartas = [
{
nombre: 'Princesa',
valor: 8,
texto: 'Si te descartas de la Princesa, quedas eliminado de la ronda',
cantidad: 1,
imagen: null
},
{
nombre: 'Condesa',
valor: 7,
texto: 'Si también tienes al Rey o al Principe en la mano, descártate de la Condesa',
cantidad: 1,
imagen: null
},
{
nombre: 'Rey',
valor: 6,
texto: 'Intercambia tu mano con el jugador que quieras',
cantidad: 1,
imagen: null
},
{
nombre: 'Principe',
valor: 5,
texto: 'El jugador que escojas (incluido tú mismo), debe descartar su mano y luego robar 1 carta',
cantidad: 2,
imagen: null
},
{
nombre: 'Doncella',
valor: 4,
texto: 'Ignora los efectos provocados por las cartas de otros jugadores hasta tu siguiente turno',
cantidad: 2,
imagen: null
},
{
nombre: 'Barón',
valor: 3,
texto: 'Compara tu mano en secreto con otro jugador. El que tenga la mano de menor valor queda fuera de la ronda',
cantidad: 2,
imagen: null
},
{
nombre: 'Sacerdote',
valor: 2,
texto: 'Mira la mano de otro jugador',
cantidad: 2,
imagen: null
},
{
nombre: 'Guardia',
valor: 1,
texto: 'Di el nombre de una carta (excepto \'Guardia\') y elige a un jugador. Si tiene la carta que has mencionado queda fuera de la ronda',
cantidad: 5,
imagen: null
}
];
let baraja = [];
let mano = [];
let jugador1, jugador2, jugador3, jugador4;
let turno = ((Math.random()*4)|0)+1;
function barajar() {
baraja = [];
cartas.forEach(carta => {
//console.table(carta);
for (var i = 0; i < carta.cantidad; i++) baraja.push(carta);
})
baraja.sort(() => Math.random() - 0.5);
console.table(baraja)
$('#cartas').html("")
mano = [];
}
barajar(cartas);
function robar() {
if (baraja.length > 0) {
if (mano.length < 2) {
var carta = baraja.pop();
...