Method: Uci#fenstring
- Defined in:
- lib/uci.rb
#fenstring ⇒ Object
return the state of the interal board in a FEN (Forsyth–Edwards Notation) string, SHORT format (no castling info, move, etc)
287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 |
# File 'lib/uci.rb', line 287 def fenstring fen = [] (@board.size-1).downto(0).each do |rank_index| rank = @board[rank_index] if rank.include?(nil) if rank.select{|r|r.nil?}.size == 8 fen << 8 else rank_str = "" empties = 0 rank.each do |r| if r.nil? empties += 1 else if empties > 0 rank_str << empties.to_s empties = 0 end rank_str << r end end rank_str << empties.to_s if empties > 0 fen << rank_str end else fen << rank.join('') end end fen.join('/') end |