Current section

Files

Jump to
gchess src board_map.gleam
Raw

src/board_map.gleam

import position.{type Position}
import piece.{type Piece}
import board.{type BoardBB}
import fen.{parse_board}
import gleam/option.{type Option}
import gleam/map
import gleam/string
import gleam/list
// Representation of the the board as a map of positions to pieces
// Used for pretty printing the state of the board
pub type BoardMap =
map.Map(Position, Option(Piece))
pub fn from_fen(fen: String) -> BoardBB {
let fen_string_parts = string.split(fen, " ")
let parsed_board = case list.length(fen_string_parts) == 6 {
False -> panic as "Invalid FEN string"
True -> {
let [board_string, ..] = fen_string_parts
let parsed_board = parse_board(board_string)
parsed_board
}
}
parsed_board
}