DraCaster / chesscheckMate

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Code Challenge: ChessCheckMate

El rey de las blancas está solo y acorralado. Un alfil, una torre y un caballero de las negras lo tienen rodeado.

Dada la posición del Rey (blanco) y la posicion de la torre, alfil y caballero (negro) definir si es jaque o jaque mate.

Jaque

En el juego de ajedrez, un jaque es una amenaza inmediata de capturar al rey. Se dice que un rey amenazado de este modo se encuentra en jaque.

Jaque mate

Jaque mate es una posición del ajedrez en la que el rey se encuentra amenazado y esta situación no puede cambiarse mediante ninguna jugada legal. El jugador que consiga poner en jaque mate al rey adversario, será el ganador de la partida.

Movimiento del Caballero (knight)

El caballero puede moverse a un cuadrado que tiene dos cuadrados horizontalmente y un cuadrado verticalmente, o dos cuadrados verticalmente y un cuadrado horizontalmente alejado de él. Por lo tanto, el movimiento completo se parece a la letra L.

Moviemiento de la torre (rock)

La torre tiene la característica de moverse de forma recta a traves de todo el tablero Moviemiento Torre

Movimiento del Alfil (Bishop)

El alfil no tiene restricciones de distancia para cada movimiento, pero está limitado al movimiento diagonal.

Movimiento del Rey (King)

El rey puede moverse en todas las direcciones, pero solo 1 casillero de distancia.

Instrucciones

  • Crear un nuevo repositorio utilizando este repositorio como template (Boton: use this template).
  • Editar el código de la función definida en el archivo index.js con un algoritmo que permita obtener los resultados esperados en los test.
  • Ejecutar los test validando que todos resulten exitosos

Ejecutar Pruebas

Instalar dependencias (mocha)

npm install

Ejecutar test

npm run test

Entrada

Parámetro 1
  • nombre: kingWhite (Rey Blanco)
  • tipo: String
Parámetro 2
  • nombre: rookBlack (Torre Negra)
  • tipo: String
Parámetro 3
  • nombre: bishopBlack (Alfil Negro)
  • tipo: String
Parámetro 4
  • nombre: knightBlack (Caballero negro)
  • tipo: String

Salida

  • tipo: String ("jaque mate"|"jaque")

Ejemplo

Si el rey blanco esta en "A1", la torre negra esta en "A5", el alfil negro esta en "D4" Y el caballero negro esta en "D2" entonces debe ser = "jaque mate"


Si el rey blanco esta en "D1", la torre negra esta en "H2", el alfil negro esta en "E3" Y el caballero negro esta en "C3" entonces debe ser = "jaque"

Tests

Test 1

  • Parametros: (kingWhite="A1", rookBlack= "A5", bishopBlack="D4", knightBlack="D2" )
  • Resultado esperado: "jaque mate"

Test 2

  • Parametros: (kingWhite="D1", rookBlack= "H2", bishopBlack="E3", knightBlack="C3" )
  • Resultado esperado: "jaque"

Test 3

  • Parametros: (kingWhite="F1", rookBlack= "D2", bishopBlack="B5", knightBlack="F3" )
  • Resultado esperado: "jaque mate"

Test 4

  • Parametros: (kingWhite="H7", rookBlack= "G3", bishopBlack="F5", knightBlack="F7" )
  • Resultado esperado: "jaque mate"

Test 5

  • Parametros: (kingWhite="C4", rookBlack= "C2", bishopBlack="F6", knightBlack="C6" )
  • Resultado esperado: "jaque"

About


Languages

Language:JavaScript 100.0%