1
0
mirror of https://github.com/tiyn/yeschess.git synced 2025-07-01 22:37:45 +02:00
yeschess/game.nim
TiynGER 6ad11fde2a chess: updating documentation
Documentation is now set for every method with complete parameters.
Also all global variables and constants as well as types are documented.
2020-12-16 04:19:02 +01:00

30 lines
806 B
Nim

from strutils import parseInt
import rdstdin
import ./chess
proc runGame*(): void =
## Initializes and runs a game of chess.
var game = initGame()
var draw: string
game.echoBoard(game.toMove)
while not game.isCheckmate(game.toMove) and not game.isStalemate(game.toMove):
echo "Make a move"
echo game.toMove
var move = readLine(stdin)
while not game.checkedMove(notationToMove(move, game.toMove)):
move = readLine(stdin)
game.echoBoard(game.toMove)
if (game.isDrawClaimable):
echo "Do you want to claim a draw? (y/N)"
draw = readLine(stdin)
if (draw == "y"):
echo "Draw claimed"
break
if game.isCheckmate(game.toMove):
echo $game.toMove & " was checkmated"
if game.isStalemate(game.toMove):
echo "Stalemate"
runGame()