https://github.com/dracaster/chesscheckmate
https://github.com/dracaster/chesscheckmate
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/dracaster/chesscheckmate
- Owner: DraCaster
- Created: 2021-03-12T20:47:37.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-03-12T20:59:14.000Z (over 5 years ago)
- Last Synced: 2025-03-21T10:52:58.979Z (about 1 year ago)
- Language: JavaScript
- Size: 9.77 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# 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

## 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"
---