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();
     ...