newBoard2() -> loadBoardFromString(".b.b.b.b\nb.b.b.b.\n........\n........\n........\n........\n.w.w.w.w\nw.w.w.w.\n").
loadBoardFromString(BoardStr) ->
map(fun(L) -> map(fun(X) -> fromCharToField(X) end, L) end, tokens(BoardStr, "\n")).
fromCharToField(X) -> if
X == $. -> empty;
X == $b -> {man, black};
X == $B -> {king, black};
X == $w -> {man, white};
X == $W -> {king, white}
end.
generateBoardString(Board) -> concat(intersperse(map(fun(X) -> map(fun(F) -> showField(F) end, X) end, Board), "\n")).
generateExtBoardStr(Board) ->
HorizNumbers = "\n 12345678\n\n",
VertNumbers = ["8 ", "7 ", "6 ", "5 ", "4 ", "3 ", "2 ", "1 "],
GenBoard = map(fun(X) -> map(fun(F) -> showField(F) end, X) end, Board),
Lines = concat(intersperse(zipwith(fun(X,Y)-> [X ++ Y] end, VertNumbers, GenBoard), "\n")),
map(fun(X) -> [X | " "] end, HorizNumbers ++ Lines ++ "\n").
showBoard(Board) -> io:format(generateBoardString(Board)).
showField(F) -> case F of
empty -> ".";
_Else -> showChecker(F)
end.
showChecker(F) -> case F of
{man, black} -> "b";
{king, black} -> "B";
{man, white} -> "w";
{king, white} -> "W"
end.
intersperse(Str, Char) -> concat(map(fun(X) -> concat([X, [Char]]) end, Str)).
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}