Facebook
From Burly Horse, 7 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 277
  1.  
  2. newBoard2()  -> loadBoardFromString(".b.b.b.b\nb.b.b.b.\n........\n........\n........\n........\n.w.w.w.w\nw.w.w.w.\n").
  3.  
  4. loadBoardFromString(BoardStr) ->
  5.     map(fun(L) -> map(fun(X) -> fromCharToField(X) end, L) end, tokens(BoardStr, "\n")).
  6.  
  7. fromCharToField(X) -> if
  8.                           X == $. -> empty;
  9.                           X == $b -> {man,  black};
  10.                           X == $B -> {king, black};
  11.                           X == $w -> {man,  white};
  12.                           X == $W -> {king, white}
  13.                       end.
  14.                      
  15. generateBoardString(Board) -> concat(intersperse(map(fun(X) -> map(fun(F) -> showField(F) end, X) end, Board), "\n")).
  16.  
  17.  
  18. generateExtBoardStr(Board) ->
  19.             HorizNumbers = "\n  12345678\n\n",
  20.             VertNumbers  = ["8 ", "7 ", "6 ", "5 ", "4 ", "3 ", "2 ", "1 "],
  21.             GenBoard     = map(fun(X) -> map(fun(F) -> showField(F) end, X) end, Board),
  22.             Lines        = concat(intersperse(zipwith(fun(X,Y)-> [X ++ Y]  end, VertNumbers, GenBoard), "\n")),
  23.             map(fun(X) -> [X | " "] end, HorizNumbers ++ Lines ++ "\n").
  24.  
  25. showBoard(Board) -> io:format(generateBoardString(Board)).
  26.  
  27.  
  28. showField(F) -> case F of
  29.                     empty -> ".";
  30.                     _Else -> showChecker(F)
  31.                 end.
  32.  
  33. showChecker(F) -> case F of
  34.                       {man,  black} -> "b";
  35.                       {king, black} -> "B";
  36.                       {man,  white} -> "w";
  37.                       {king, white} -> "W"
  38.                   end.
  39.                  
  40.                  
  41. intersperse(Str, Char) -> concat(map(fun(X) -> concat([X, [Char]]) end, Str)).