GithubHelp home page GithubHelp logo

pioz / chess Goto Github PK

View Code? Open in Web Editor NEW
57.0 8.0 17.0 1.73 MB

A fast chess library that use bitboards to play chess with Ruby

License: GNU Lesser General Public License v3.0

Ruby 30.60% C 69.40%
chess ruby bitboards fast

chess's Introduction

Hi there πŸ˜—

Check out my curriculum vitæ:

$ gem install epilotto_curriculum
$ epilotto

chess's People

Contributors

dependabot[bot] avatar jer avatar olleolleolle avatar pioz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chess's Issues

Ruby version

Hi!
In the description says Ruby 1.9 or higher is needed. However, I am using 1.9 and it does not work. In fact some notation used in the code seems to be for Ruby 2.x:

Uncaught exception: /home/raquel/.rvm/gems/ruby-1.9.3-p551@codelearn/gems/chess-0.2.2/lib/chess/pgn.rb:42: syntax error, unexpected tLABEL
    def initialize(filename = nil, check_moves: false)

Any workaround or version that actually works with Ruby 1.9?

Ilegal move error

Dear pioz,

Thank you so much for providing such a great chess library to the Ruby community. Upon testing exception handling, I believe I found a small bug, and hope you can enlighten me in this regard. When an invalid move is entered during the early stages of the game in the format "d2d4q", my script throws an error message accordingly: "Illegal Move". However, the game object still accepts this string (it can be accessed with g.moves), and that causes some downstream errors. It actually considers the move a valid one, discarding only the piece promotion character (d2d4). Also, when a move is entered in the format "e4" or "2e4", the game object accepts them as legal, but the system still throws the Illegal Move exception. Any help would be greatly appreciated. Thank you and keep up the excellent work!

Cannot seem to load chess gem in my implementation

I'm running into a roadblock with this gem where if I try to require it in any of my .rb's, i get thrown the same error. I've uninstalled and reinstalled multiple times, and these are the errors I get:

Uninstall gem

% gem uninstall chess

Successfully uninstalled chess-0.3.3

Re-Install Gem

% gem install chess -v 0.3.3

Fetching chess-0.3.3.gem
Building native extensions. This could take a while...
Successfully installed chess-0.3.3
Parsing documentation for chess-0.3.3
Installing ri documentation for chess-0.3.3
Done installing documentation for chess after 0 seconds
1 gem installed

Gem test file

# test_chess_require.rb

require "chess"

Attempt to run test file
(I get this same error output when I try to require the chess gem anywhere else in my code)

% ruby test_chess_require.rb 
<internal:/Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- /Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/chess-0.3.3/lib/chess/../../ext/chess (LoadError)
        from <internal:/Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from /Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/chess-0.3.3/lib/chess/game.rb:1:in `<top (required)>'
        from <internal:/Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from <internal:/Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from /Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/chess-0.3.3/lib/chess.rb:2:in `<top (required)>'
        from <internal:/Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:159:in `require'
        from <internal:/Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:159:in `rescue in require'
        from <internal:/Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:39:in `require'
        from test_chess_require.rb:1:in `<main>'
<internal:/Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- chess (LoadError)
        from <internal:/Users/electrick/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from test_chess_require.rb:1:in `<main>'

Thanks in advance for your help!

chess/gnuchess.rb:53: warning: regexp has invalid interval

chess/gnuchess.rb:53: warning: regexp has invalid interval

There are some regexp with invalid intervals.

Is the code ruby 1.9.x or higher only? If so a proper check might be in order.

Or, to have the code work on both versions (including 1.8.x) and change the regexp there.

Memory issue on Ubuntu 14.04.1

Hey,

So I've been running into a reproducible issue on Ubuntu 14.04.1, with Ruby 2.1.0 through 2.2.0 (haven't tested before ruby 2.1.0) where every time I try and use the set_fen method, ruby crashes with a Error in irb': free(): invalid next size (fast): 0x00007f2f89f17ae0` (obviously the memory location changes every time). I've been working around this in the mean time by modifying the pgn class to accept strings while I try and figure out the issue, however, I'm running out of ideas, and since you wrote the C library backing the gem I was wondering if you had any thoughts on it?

I'm currently working on setting up a docker container to reproduce the error for you, but I figured I'd start the discussion now.

Thanks!

Lichess coordinate notation for castling

Ran into issues with coordinate notation using data from Lichess. The castling's presented as e8h8 instead of e8g8: example Wikipedia and this gem follow the latter. Not sure if this is some wider spread alternative convention or a Lichess oddity.

Any way made a local quickfix to get these games to parse. Here's the patch I used, in case interested:

diff --git a/lib/chess/game.rb b/lib/chess/game.rb
index abae061..5f0d5d7 100644
--- a/lib/chess/game.rb
+++ b/lib/chess/game.rb
@@ -143,6 +143,23 @@ module Chess
 
     private
 
+    # For some reason Lichchess presents coordinate notation castling as
+    # e8h8 instead of e8g8, eg:
+    # https://explorer.lichess.ovh/masters?variant=standard&fen=rnbqkbnr%2Fpppppppp%2F8%2F8%2F8%2F8%2FPPPPPPPP%2FRNBQKBNR+w+KQkq+-+0+1&play=b2b3%2Cg8f6%2Cc1b2%2Ce7e6%2Ce2e3%2Cf8e7%2Cf2f4&since=1952&until=2022
+    def patch_lichess_coordinate_notation!(expand)
+      allowed = self.board.to_fen.split[2] # Ensure king's in from square
+      castling = [
+        ['k', 'e8', 'h8', 'g8'],
+        ['K', 'e1', 'h1', 'g1'],
+        ['q', 'e8', 'a8', 'c8'],
+        ['Q', 'e1', 'a1', 'c1']
+      ]
+      _allowed_token, _from, _to, patched = castling.find { |a, f, t|
+        expand[:from] == f && expand[:to] == t && allowed.include?(a)
+      }
+      expand[:to] = patched if patched
+    end
+
     # Expand the short algebraic chess notation string `notation` in a hash like this:
     #
     #     Ngxe2 ==> { name: 'N', dis: 'g', from: nil, to: 'e2', promotion: nil }
@@ -155,6 +172,7 @@ module Chess
           promotion: match[4]       # Promote with
         }
         expand[:from] = match[2] if match[2] && match[2].size == 2
+        patch_lichess_coordinate_notation!(expand)
         return expand
       elsif SHORT_CASTLING_REGEXP.match?(notation)
         return { name: 'K', dis: nil, from: 'e8', to: 'g8', promotion: nil } if self.board.active_color # black king short castling

Can this library handle resigning?

I'm testing the library using a PGN with this moves:

[Event "?"]
[Site "?"]
[Date "2013.03.09"]
[White "White"]
[Black "Black"]
[Result "0-1"]
[WhiteElo "1364"]
[BlackElo "1649"]
[TimeControl "1 in 3 days"]
[Termination "Black won by resignation"]

1.e4 c5 {Thematic Game - This is the starting position.} 
 2.c4 Nc6 3.Nf3 e6 4.Be2 Nf6 5.e5 Ng4 6.d4 cxd4 7.Bf4 Qa5+ 8.Qd2 Bb4 9.Nc3 dxc3 0-1

However a.over? returns false.

Load PGN string instead of file?

Hi there!

I was wondering if there is a way to load the pgn to create the game in string format instead of having to create a file.

Thanks!

Could use move generation

For a chess library, it seems the absence of legal move generation is an is an oversight. Hopefully it would be easy to add. It's the only thing keeping this library from being truly useful.

invalid FEN generation?

Hello and thank you for this valuable library!

I believe I have found a case where an invalid FEN is generated. In the example below, after the move Qxh8, black is not legally able to castle (both black rooks are no longer in their original positions) and yet the generated FEN string indicates black can castle kingside: KQk.

> game = Chess::Game.load_fen("2b1kbnr/rpq1pp1p/2n3p1/8/3Q4/2P5/PP3PPP/RN2KBNR w KQk - 0 9")
=> #<Chess::Game:0x00007f85c9bcb910>

> puts game.board
8 . . b . k b n r
7 r p q . p p . p
6 . . n . . . p .
5 . . . . . . . .
4 . . . Q . . . .
3 . . P . . . . .
2 P P . . . P P P
1 R N . . K B N R
  a b c d e f g h
=> nil

> game.move('Qxh8')
=> "Qxh8"

> game.board.to_fen
=> "2b1kbnQ/rpq1pp1p/2n3p1/8/8/2P5/PP3PPP/RN2KBNR b KQk - 0 9"

> puts game.board
8 . . b . k b n Q
7 r p q . p p . p
6 . . n . . . p .
5 . . . . . . . .
4 . . . . . . . .
3 . . P . . . . .
2 P P . . . P P P
1 R N . . K B N R
  a b c d e f g h

Game#to_s causing a buffer overflow in Heroku

It's not happening when run locally, either with straight ruby or running under foreman, but on hosted Heroku, Game cannot be output as a string without causing a buffer overflow. I've created the simplest possible demonstration of this behavior here: https://github.com/jer/chess-error

I've tried working on this myself, but I can't seem to even run the unit tests on a fresh checkout :( I'd be happy to help debug if I can get a little help building it.

Here is the output from the Heroku run:

2014-09-28T17:39:01.168164+00:00 app[web.1]: *** buffer overflow detected ***: ruby terminated
2014-09-28T17:39:01.168631+00:00 app[web.1]: ======= Backtrace: =========
2014-09-28T17:39:01.168662+00:00 app[web.1]: /lib/libc.so.6(__fortify_fail+0x37)[0x7ff4cccd1f47]
2014-09-28T17:39:01.168692+00:00 app[web.1]: /lib/libc.so.6(+0x102e00)[0x7ff4cccd0e00]
2014-09-28T17:39:01.168722+00:00 app[web.1]: /lib/libc.so.6(+0x102269)[0x7ff4cccd0269]
2014-09-28T17:39:01.168751+00:00 app[web.1]: /lib/libc.so.6(_IO_default_xsputn+0xc9)[0x7ff4ccc45039]
2014-09-28T17:39:01.168777+00:00 app[web.1]: /lib/libc.so.6(_IO_vfprintf+0x14c)[0x7ff4ccc1451c]
2014-09-28T17:39:01.168808+00:00 app[web.1]: /lib/libc.so.6(__vsprintf_chk+0x99)[0x7ff4cccd0309]
2014-09-28T17:39:01.168838+00:00 app[web.1]: /lib/libc.so.6(__sprintf_chk+0x7f)[0x7ff4cccd024f]
2014-09-28T17:39:01.168852+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/chess-0.0.4/ext/chess.so(print_board+0x1ff)[0x7ff4ca2d65ef]
2014-09-28T17:39:01.168855+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/chess-0.0.4/ext/chess.so(game_to_s+0x2d)[0x7ff4ca2d840d]
2014-09-28T17:39:01.168876+00:00 app[web.1]: ruby(+0x15130a)[0x7ff4cddaf30a]
2014-09-28T17:39:01.168901+00:00 app[web.1]: ruby(+0x166d7b)[0x7ff4cddc4d7b]
2014-09-28T17:39:01.168927+00:00 app[web.1]: ruby(+0x15cdd1)[0x7ff4cddbadd1]
2014-09-28T17:39:01.168952+00:00 app[web.1]: ruby(+0x1622fc)[0x7ff4cddc02fc]
2014-09-28T17:39:01.168978+00:00 app[web.1]: ruby(+0x165dad)[0x7ff4cddc3dad]
2014-09-28T17:39:01.169003+00:00 app[web.1]: ruby(+0x1551a0)[0x7ff4cddb31a0]
2014-09-28T17:39:01.169029+00:00 app[web.1]: ruby(+0x15a3a7)[0x7ff4cddb83a7]
2014-09-28T17:39:01.169049+00:00 app[web.1]: ruby(rb_method_call_with_block+0x119)[0x7ff4cdc88729]
2014-09-28T17:39:01.169074+00:00 app[web.1]: ruby(+0x15130a)[0x7ff4cddaf30a]
2014-09-28T17:39:01.169100+00:00 app[web.1]: ruby(+0x166d7b)[0x7ff4cddc4d7b]
2014-09-28T17:39:01.169129+00:00 app[web.1]: ruby(+0x15cdd1)[0x7ff4cddbadd1]
2014-09-28T17:39:01.169152+00:00 app[web.1]: ruby(+0x1622fc)[0x7ff4cddc02fc]
2014-09-28T17:39:01.169177+00:00 app[web.1]: ruby(+0x16544a)[0x7ff4cddc344a]
2014-09-28T17:39:01.169202+00:00 app[web.1]: ruby(+0x165944)[0x7ff4cddc3944]
2014-09-28T17:39:01.169227+00:00 app[web.1]: ruby(+0x15130a)[0x7ff4cddaf30a]
2014-09-28T17:39:01.169253+00:00 app[web.1]: ruby(+0x166d7b)[0x7ff4cddc4d7b]
2014-09-28T17:39:01.169278+00:00 app[web.1]: ruby(+0x15d587)[0x7ff4cddbb587]
2014-09-28T17:39:01.169304+00:00 app[web.1]: ruby(+0x1622fc)[0x7ff4cddc02fc]
2014-09-28T17:39:01.169342+00:00 app[web.1]: ruby(+0x162d71)[0x7ff4cddc0d71]
2014-09-28T17:39:01.169368+00:00 app[web.1]: ruby(+0x14c875)[0x7ff4cddaa875]
2014-09-28T17:39:01.169393+00:00 app[web.1]: ruby(+0x14e3a0)[0x7ff4cddac3a0]
2014-09-28T17:39:01.169418+00:00 app[web.1]: ruby(+0x15130a)[0x7ff4cddaf30a]
2014-09-28T17:39:01.169444+00:00 app[web.1]: ruby(+0x166d7b)[0x7ff4cddc4d7b]
2014-09-28T17:39:01.169469+00:00 app[web.1]: ruby(+0x15d587)[0x7ff4cddbb587]
2014-09-28T17:39:01.169495+00:00 app[web.1]: ruby(+0x1622fc)[0x7ff4cddc02fc]
2014-09-28T17:39:01.169521+00:00 app[web.1]: ruby(rb_yield+0x8d)[0x7ff4cddc227d]
2014-09-28T17:39:01.169546+00:00 app[web.1]: ruby(rb_ary_each+0x57)[0x7ff4cddde107]
2014-09-28T17:39:01.169571+00:00 app[web.1]: ruby(+0x15130a)[0x7ff4cddaf30a]
2014-09-28T17:39:01.169597+00:00 app[web.1]: ruby(+0x166d7b)[0x7ff4cddc4d7b]
2014-09-28T17:39:01.169622+00:00 app[web.1]: ruby(+0x15d587)[0x7ff4cddbb587]
2014-09-28T17:39:01.169648+00:00 app[web.1]: ruby(+0x1622fc)[0x7ff4cddc02fc]
2014-09-28T17:39:01.169673+00:00 app[web.1]: ruby(+0x16544a)[0x7ff4cddc344a]
2014-09-28T17:39:01.169699+00:00 app[web.1]: ruby(+0x165944)[0x7ff4cddc3944]
2014-09-28T17:39:01.169724+00:00 app[web.1]: ruby(+0x15130a)[0x7ff4cddaf30a]
2014-09-28T17:39:01.169750+00:00 app[web.1]: ruby(+0x166d7b)[0x7ff4cddc4d7b]
2014-09-28T17:39:01.169775+00:00 app[web.1]: ruby(+0x15d587)[0x7ff4cddbb587]
2014-09-28T17:39:01.169801+00:00 app[web.1]: ruby(+0x1622fc)[0x7ff4cddc02fc]
2014-09-28T17:39:01.169826+00:00 app[web.1]: ruby(+0x162d71)[0x7ff4cddc0d71]
2014-09-28T17:39:01.169852+00:00 app[web.1]: ruby(+0x14c875)[0x7ff4cddaa875]
2014-09-28T17:39:01.169877+00:00 app[web.1]: ruby(+0x14e3a0)[0x7ff4cddac3a0]
2014-09-28T17:39:01.169903+00:00 app[web.1]: ruby(+0x15130a)[0x7ff4cddaf30a]
2014-09-28T17:39:01.169928+00:00 app[web.1]: ruby(+0x166d7b)[0x7ff4cddc4d7b]
2014-09-28T17:39:01.169954+00:00 app[web.1]: ruby(+0x15d587)[0x7ff4cddbb587]
2014-09-28T17:39:01.169979+00:00 app[web.1]: ruby(+0x1622fc)[0x7ff4cddc02fc]
2014-09-28T17:39:01.170005+00:00 app[web.1]: ruby(+0x165dad)[0x7ff4cddc3dad]
2014-09-28T17:39:01.170044+00:00 app[web.1]: ruby(+0x165eea)[0x7ff4cddc3eea]
2014-09-28T17:39:01.170062+00:00 app[web.1]: ruby(+0x1777e8)[0x7ff4cddd57e8]
2014-09-28T17:39:01.170086+00:00 app[web.1]: ruby(+0x177a71)[0x7ff4cddd5a71]
2014-09-28T17:39:01.170090+00:00 app[web.1]: /lib/libpthread.so.0(+0x69ca)[0x7ff4cd8259ca]
2014-09-28T17:39:01.170125+00:00 app[web.1]: /lib/libc.so.6(clone+0x6d)[0x7ff4cccb943d]
2014-09-28T17:39:01.170126+00:00 app[web.1]: ======= Memory map: ========
2014-09-28T17:39:01.170197+00:00 app[web.1]: 7ff4c9488000-7ff4c949e000 r-xp 00000000 07:07 8240 /lib/libgcc_s.so.1
2014-09-28T17:39:01.170198+00:00 app[web.1]: 7ff4c949e000-7ff4c969d000 ---p 00016000 07:07 8240 /lib/libgcc_s.so.1
2014-09-28T17:39:01.170199+00:00 app[web.1]: 7ff4c969d000-7ff4c969e000 r--p 00015000 07:07 8240 /lib/libgcc_s.so.1
2014-09-28T17:39:01.170201+00:00 app[web.1]: 7ff4c969e000-7ff4c969f000 rw-p 00016000 07:07 8240 /lib/libgcc_s.so.1
2014-09-28T17:39:01.170202+00:00 app[web.1]: 7ff4c969f000-7ff4c96a0000 ---p 00000000 00:00 0
2014-09-28T17:39:01.170203+00:00 app[web.1]: 7ff4c96a0000-7ff4c98a1000 rw-p 00000000 00:00 0 [stack:6021]
2014-09-28T17:39:01.170205+00:00 app[web.1]: 7ff4c98a1000-7ff4c98b7000 r-xp 00000000 07:07 8276 /lib/libresolv-2.11.1.so
2014-09-28T17:39:01.170206+00:00 app[web.1]: 7ff4c98b7000-7ff4c9ab6000 ---p 00016000 07:07 8276 /lib/libresolv-2.11.1.so
2014-09-28T17:39:01.170207+00:00 app[web.1]: 7ff4c9ab6000-7ff4c9ab7000 r--p 00015000 07:07 8276 /lib/libresolv-2.11.1.so
2014-09-28T17:39:01.170208+00:00 app[web.1]: 7ff4c9ab7000-7ff4c9ab8000 rw-p 00016000 07:07 8276 /lib/libresolv-2.11.1.so
2014-09-28T17:39:01.170210+00:00 app[web.1]: 7ff4c9ab8000-7ff4c9aba000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170213+00:00 app[web.1]: 7ff4c9aba000-7ff4c9abf000 r-xp 00000000 07:07 8255 /lib/libnss_dns-2.11.1.so
2014-09-28T17:39:01.170214+00:00 app[web.1]: 7ff4c9abf000-7ff4c9cbe000 ---p 00005000 07:07 8255 /lib/libnss_dns-2.11.1.so
2014-09-28T17:39:01.170215+00:00 app[web.1]: 7ff4c9cbe000-7ff4c9cbf000 r--p 00004000 07:07 8255 /lib/libnss_dns-2.11.1.so
2014-09-28T17:39:01.170217+00:00 app[web.1]: 7ff4c9cbf000-7ff4c9cc0000 rw-p 00005000 07:07 8255 /lib/libnss_dns-2.11.1.so
2014-09-28T17:39:01.170218+00:00 app[web.1]: 7ff4c9cc0000-7ff4c9cc1000 ---p 00000000 00:00 0
2014-09-28T17:39:01.170219+00:00 app[web.1]: 7ff4c9cc1000-7ff4c9ec2000 rw-p 00000000 00:00 0 [stack:6020]
2014-09-28T17:39:01.170221+00:00 app[web.1]: 7ff4c9ec2000-7ff4c9ec3000 r-xp 00000000 fc:00 32512571 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest/md5.so
2014-09-28T17:39:01.170222+00:00 app[web.1]: 7ff4c9ec3000-7ff4ca0c2000 ---p 00001000 fc:00 32512571 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest/md5.so
2014-09-28T17:39:01.170236+00:00 app[web.1]: 7ff4ca0c2000-7ff4ca0c3000 r--p 00000000 fc:00 32512571 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest/md5.so
2014-09-28T17:39:01.170237+00:00 app[web.1]: 7ff4ca0c3000-7ff4ca0c4000 rw-p 00001000 fc:00 32512571 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest/md5.so
2014-09-28T17:39:01.170241+00:00 app[web.1]: 7ff4ca0c4000-7ff4ca0d0000 r-xp 00000000 07:07 8256 /lib/libnss_files-2.11.1.so
2014-09-28T17:39:01.170242+00:00 app[web.1]: 7ff4ca0d0000
-7ff4ca2cf000 ---p 0000c000 07:07 8256 /lib/libnss_files-2.11.1.so
2014-09-28T17:39:01.170243+00:00 app[web.1]: 7ff4ca2cf000-7ff4ca2d0000 r--p 0000b000 07:07 8256 /lib/libnss_files-2.11.1.so
2014-09-28T17:39:01.170245+00:00 app[web.1]: 7ff4ca2d0000-7ff4ca2d1000 rw-p 0000c000 07:07 8256 /lib/libnss_files-2.11.1.so
2014-09-28T17:39:01.170246+00:00 app[web.1]: 7ff4ca2d1000-7ff4ca2dc000 r-xp 00000000 fc:00 32511269 /app/vendor/bundle/ruby/2.1.0/gems/chess-0.0.4/ext/chess.so
2014-09-28T17:39:01.170247+00:00 app[web.1]: 7ff4ca2dc000-7ff4ca4db000 ---p 0000b000 fc:00 32511269 /app/vendor/bundle/ruby/2.1.0/gems/chess-0.0.4/ext/chess.so
2014-09-28T17:39:01.170248+00:00 app[web.1]: 7ff4ca4db000-7ff4ca4dc000 r--p 0000a000 fc:00 32511269 /app/vendor/bundle/ruby/2.1.0/gems/chess-0.0.4/ext/chess.so
2014-09-28T17:39:01.170250+00:00 app[web.1]: 7ff4ca4dc000-7ff4ca4dd000 rw-p 0000b000 fc:00 32511269 /app/vendor/bundle/ruby/2.1.0/gems/chess-0.0.4/ext/chess.so
2014-09-28T17:39:01.170266+00:00 app[web.1]: 7ff4ca4dd000-7ff4ca4e2000 r-xp 00000000 fc:00 32512558 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/strscan.so
2014-09-28T17:39:01.170267+00:00 app[web.1]: 7ff4ca4e2000-7ff4ca6e1000 ---p 00005000 fc:00 32512558 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/strscan.so
2014-09-28T17:39:01.170268+00:00 app[web.1]: 7ff4ca6e1000-7ff4ca6e2000 r--p 00004000 fc:00 32512558 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/strscan.so
2014-09-28T17:39:01.170270+00:00 app[web.1]: 7ff4ca6e2000-7ff4ca6e3000 rw-p 00005000 fc:00 32512558 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/strscan.so
2014-09-28T17:39:01.170271+00:00 app[web.1]: 7ff4ca6e3000-7ff4ca733000 r-xp 00000000 fc:00 32512634 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/openssl.so
2014-09-28T17:39:01.170272+00:00 app[web.1]: 7ff4ca733000-7ff4ca932000 ---p 00050000 fc:00 32512634 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/openssl.so
2014-09-28T17:39:01.170274+00:00 app[web.1]: 7ff4ca932000-7ff4ca933000 r--p 0004f000 fc:00 32512634 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/openssl.so
2014-09-28
T17:39:01.170275+00:00 app[web.1]: 7ff4ca933000-7ff4ca935000 rw-p 00050000 fc:00 32512634 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/openssl.so
2014-09-28T17:39:01.170276+00:00 app[web.1]: 7ff4ca935000-7ff4ca936000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170279+00:00 app[web.1]: 7ff4ca936000-7ff4ca937000 r-xp 00000000 fc:00 32512650 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/fcntl.so
2014-09-28T17:39:01.170280+00:00 app[web.1]: 7ff4ca937000-7ff4cab36000 ---p 00001000 fc:00 32512650 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/fcntl.so
2014-09-28T17:39:01.170282+00:00 app[web.1]: 7ff4cab36000-7ff4cab37000 r--p 00000000 fc:00 32512650 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/fcntl.so
2014-09-28T17:39:01.170283+00:00 app[web.1]: 7ff4cab37000-7ff4cab38000 rw-p 00001000 fc:00 32512650 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/fcntl.so
2014-09-28T17:39:01.170284+00:00 app[web.1]: 7ff4cab38000-7ff4cab6c000 r-xp 00000000 fc:00 32512644 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/date_core.so
2014-09-28T17:39:01.170285+00:00 app[web.1]: 7ff4cab6c000-7ff4cad6c000 ---p 00034000 fc:00 32512644 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/date_core.so
2014-09-28T17:39:01.170287+00:00 app[web.1]: 7ff4cad6c000-7ff4cad6d000 r--p 00034000 fc:00 32512644 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/date_core.so
2014-09-28T17:39:01.170317+00:00 app[web.1]: 7ff4cad6d000-7ff4cad6e000 rw-p 00035000 fc:00 32512644 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/date_core.so
2014-09-28T17:39:01.170319+00:00 app[web.1]: 7ff4cad6e000-7ff4cad6f000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170320+00:00 app[web.1]: 7ff4cad6f000-7ff4cad76000 r-xp 00000000 fc:00 32512655 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/stringio.so
2014-09-28T17:39:01.170321+00:00 app[web.1]: 7ff4cad76000-7ff4caf76000 ---p 00007000 fc:00 32512655 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/stringio.so
2014-09-28T17:39:01.170322+00:00 app[web.1]: 7ff4caf76000-7ff4caf77000 r--p 00007000 fc:00 32512655 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/stringio.so
2014-09-28T17:39:01.170323+00:00 app[web.1]: 7ff4caf77000-7ff4caf78000 rw-p 0000800
0 fc:00 32512655 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/stringio.so
2014-09-28T17:39:01.170324+00:00 app[web.1]: 7ff4caf78000-7ff4caf87000 r-xp 00000000 fc:00 32512649 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/zlib.so
2014-09-28T17:39:01.170325+00:00 app[web.1]: 7ff4caf87000-7ff4cb186000 ---p 0000f000 fc:00 32512649 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/zlib.so
2014-09-28T17:39:01.170338+00:00 app[web.1]: 7ff4cb186000-7ff4cb187000 r--p 0000e000 fc:00 32512649 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/zlib.so
2014-09-28T17:39:01.170340+00:00 app[web.1]: 7ff4cb187000-7ff4cb188000 rw-p 0000f000 fc:00 32512649 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/zlib.so
2014-09-28T17:39:01.170341+00:00 app[web.1]: 7ff4cb188000-7ff4cb1ae000 r-xp 00000000 fc:00 32512641 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/socket.so
2014-09-28T17:39:01.170342+00:00 app[web.1]: 7ff4cb1ae000-7ff4cb3ae000 ---p 00026000 fc:00 32512641 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/socket.so
2014-09-28T17:39:01.170343+00:00 app[web.1]: 7ff4cb3ae000-7ff4cb3af000 r--p 00026000 fc:00 32512641 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/socket.so
2014-09-28T17:39:01.170344+00:00 app[web.1]: 7ff4cb3af000-7ff4cb3b0000 rw-p 00027000 fc:00 32512641 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/socket.so
2014-09-28T17:39:01.170345+00:00 app[web.1]: 7ff4cb3b0000-7ff4cb3b3000 r-xp 00000000 fc:00 32512565 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest.so
2014-09-28T17:39:01.170346+00:00 app[web.1]: 7ff4cb3b3000-7ff4cb5b3000 ---p 00003000 fc:00 32512565 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest.so
2014-09-28T17:39:01.170371+00:00 app[web.1]: 7ff4cb5b3000-7ff4cb5b4000 r--p 00003000 fc:00 32512565 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest.so
2014-09-28T17:39:01.170372+00:00 app[web.1]: 7ff4cb5b4000-7ff4cb5b5000 rw-p 00004000 fc:00 32512565 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest.so
2014-09-28T17:39:01.170373+00:00 app[web.1]: 7ff4cb5b5000-7ff4cb5cb000 r-xp 00000000 07:07 8292 /lib/libz.so.1.2.3.3
2014-09-28T17:39:01.170375+00:00 app[web.1]: 7ff4cb5cb000-7ff4cb7ca000 ---p 00016000 07:07 8292 /lib/libz.so.1.2.3.3
2014-09-28T17:39:01.170376+00:00 app[web.1]: 7ff4cb7ca000-7ff4cb7cb000 r--p 00015000 07:07 8292 /lib/libz.so.1.2.3.3
2014-09-28T17:39:01.170377+00:00 app[web.1]: 7ff4cb7cb000-7ff4cb7cc000 rw-p 00016000 07:07 8292 /lib/libz.so.1.2.3.3
2014-09-28T17:39:01.170378+00:00 app[web.1]: 7ff4cb7cc000-7ff4cb819000 r-xp 00000000 07:07 8282 /lib/libssl.so.0.9.8
2014-09-28T17:39:01.170379+00:00 app[web.1]: 7ff4cb819000-7ff4cba18000 ---p 0004d000 07:07 8282 /lib/libssl.so.0.9.8
2014-09-28T17:39:01.170380+00:00 app[web.1]: 7ff4cba18000-7ff4cba1a000 r--p 0004c000 07:07 8282 /lib/libssl.so.0.9.8
2014-09-28T17:39:01.170381+00:00 app[web.1]: 7ff4cba1a000-7ff4cba20000 rw-p 0004e000 07:07 8282 /lib/libssl.so.0.9.8
2014-09-28T17:39:01.170402+00:00 app[web.1]: 7ff4cba20000-7ff4cbb88000 r-xp 00000000 07:07 8229 /lib/libcrypto.so.0.9.8
2014-09-28T17:39:01.170404+00:00 app[web.1]: 7ff4cbb88000-7ff4cbd88000 ---p 00168000 07:07 8229 /lib/libcrypto.so.0.9.8
2014-09-28T17:39:01.170405+00:00 app[web.1]: 7ff4cbd88000-7ff4cbd95000 r--p 00168000 07:07 8229 /lib/libcrypto.so.0.9.8
2014-09-28T17:39:01.170406+00:00 app[web.1]: 7ff4cbd95000-7ff4cbdad000 rw-p 00175000 07:07 8229 /lib/libcrypto.so.0.9.8
2014-09-28T17:39:01.170407+00:00 app[web.1]: 7ff4cbdad000-7ff4cbdb1000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170408+00:00 app[web.1]: 7ff4cbdb1000-7ff4cbdb2000 r-xp 00000000 fc:00 32512569 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest/sha1.so
2014-09-28T17:39:01.170410+00:00 app[web.1]: 7ff4cbdb2000-7ff4cbfb1000 ---p 00001000 fc:00 32512569 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest/sha1.so
2014-09-28T17:39:01.170411+00:00 app[web.1]: 7ff4cbfb1000-7ff4cbfb2000 r--p 00000000 fc:00 32512569 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest/sha1.so
2014-09-28T17:39:01.170412+00:00 app[web.1]: 7ff4cbfb2000-7ff4cbfb3000 rw-p 00001000 fc:00 32512569 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/digest/sha1.so
2014-09-28T17:39:01.170438+00:00 app[web.1]: 7ff4cbfb3000-7ff4cbfb6000 r-xp 00000000 fc:00 32512659 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/etc.so
2014-09-28T17:39:01.170439+00:00 app[web.1]: 7ff4cbfb6000-7ff4cc1b5000 ---p 00003000 fc:00 32512659 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/etc.so
2014-09-28T17:39:01.170441+00:00 app[web.1]: 7ff4cc1b5000-7ff4cc1b6000 r--p 00002000 fc:00 32512659 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/etc.so
2014-09-28T17:39:01.170442+00:00 app[web.1]: 7ff4cc1b6000-7ff4cc1b7000 rw-p 00003000 fc:00 32512659 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/etc.so
2014-09-28T17:39:01.170443+00:00 app[web.1]: 7ff4cc1b7000-7ff4cc1ba000 r-xp 00000000 fc:00 32512562 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/io/console.so
2014-09-28T17:39:01.170444+00:00 app[web.1]: 7ff4cc1ba000-7ff4cc3b9000 ---p 00003000 fc:00 32512562 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/io/console.so
2014-09-28T17:39:01.170445+00:00 app[web.1]: 7ff4cc3b9000-7ff4cc3ba000 r--p 00002000 fc:00 32512562 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/io/console.so
2014-09-28T17:39:01.170454+00:00 app[web.1]: 7ff4cc3ba000-7ff4cc3bb000 rw-p 00003000 fc:00 32512562 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/io/console.so
2014-09-28T17:39:01.170457+00:00 app[web.1]: 7ff4cc3bb000-7ff4cc3c2000 r-xp 00000000 fc:00 32512564 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/pathname.so
2014-09-28T17:39:01.170459+00:00 app[web.1]: 7ff4cc3c2000-7ff4cc5c1000 ---p 00007000 fc:00 32512564 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/pathname.so
2014-09-28T17:39:01.170460+00:00 app[web.1]: 7ff4cc5c1000-7ff4cc5c2000 r--p 00006000 fc:00 32512564 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/pathname.so
2014-09-28T17:39:01.170461+00:00 app[web.1]: 7ff4cc5c2000-7ff4cc5c3000 rw-p 00007000 fc:00 32512564 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/pathname.so
2014-09-28T17:39:01.170462+00:00 app[web.1]: 7ff4cc5c3000-7ff4cc5c6000 r-xp 00000000 fc:00 32512643 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/thread.so
2014-09-28T17:39:01.170463+00:00 app[web.1]: 7ff4cc5c6000-7ff4cc7c5000 ---p 00003000 fc:00 32512643 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/thread.so
2014-09-28T17:39:01.170464+00:00 app[web.1]: 7ff4cc7c5000-7ff4cc7c6000 r--p 00002000 fc:00 32512643 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/thread.so
2014-09-28T17:39:01.170488+00:00 app[web.1]: 7ff4cc7c6000-7ff4cc7c7000 rw-p 00003000 fc:00 32512643 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/thread.so
2014-09-28T17:39:01.170490+00:00 app[web.1]: 7ff4cc7c7000-7ff4cc7c9000 r-xp 00000000 fc:00 32512586 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/enc/trans/transdb.so
2014-09-28T17:39:01.170498+00:00 app[web.1]: 7ff4cc7c9000-7ff4cc9c9000 ---p 00002000 fc:00 32512586 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/enc/trans/transdb.so
2014-09-28T17:39:01.170499+00:00 app[web.1]: 7ff4cc9c9000-7ff4cc9ca000 r--p 00002000 fc:00 32512586 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/enc/trans/transdb.so
2014-09-28T17:39:01.170509+00:00 app[web.1]: 7ff4cc9ca000-7ff4cc9cb000 rw-p 00003000 fc:00 32512586 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/enc/trans/transdb.so
2014-09-28T17:39:01.170511+00:00 app[web.1]: 7ff4cc9cb000-7ff4cc9cd000 r-xp 00000000 fc:00 32512575 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/enc/encdb.so
2014-09-28T17:39:01.170512+00:00 app[web.1]: 7ff4cc9cd000-7ff4ccbcc000 ---p 00002000 fc:00 32512575 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/enc/encdb.so
2014-09-28T17:39:01.170513+00:00 app[web.1]: 7ff4ccbcc000-7ff4ccbcd000 r--p 00001000 fc:00 32512575 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/enc/encdb.so
2014-09-28T17:39:01.170516+00:00 app[web.1]: 7ff4ccbcd000-7ff4ccbce000 rw-p 00002000 fc:00 32512575 /app/vendor/ruby-2.1.2/lib/ruby/2.1.0/x86_64-linux/enc/encdb.so
2014-09-28T17:39:01.170524+00:00 app[web.1]: 7ff4ccbce000-7ff4ccd4d000 r-xp 00000000 07:07 8224 /lib/libc-2.11.1.so
2014-09-28T17:39:01.170525+00:00 app[web.1]: 7ff4ccd4d000-7ff4ccf4d000 ---p 0017f000 07:07 8224 /lib/libc-2.11.1.so
2014-09-28T17:39:01.170526+00:00 app[web.1]: 7ff4ccf4d000-7ff4ccf51000 r--p 0017f000 07:07 8224 /lib/libc-2.11.1.so
2014-09-28T17:39:01.170527+00:00 app[web.1]: 7ff4ccf51000-7ff4ccf52000 rw-p 00183000 07:07 8224 /lib/libc-2.11.1.so
2014-09-28T17:39:01.170529+00:00 app[web.1]: 7ff4ccf52000-7ff4ccf57000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170530+00:00 app[web.1]: 7ff4ccf57000-7ff4ccfd9000 r-xp 00000000 07:07 8247 /lib/libm-2.11.1.so
2014-09-28T17:39:01.170531+00:00 app[web.1]: 7ff4ccfd9000-7ff4cd1d8000 ---p 00082000 07:07 8247 /lib/libm-2.11.1.so
2014-09-28T17:39:01.170532+00:00 app[web.1]: 7ff4cd1d8000-7ff4cd1d9000 r--p 00081000 07:07 8247 /lib/libm-2.11.1.so
2014-09-28T17:39:01.170533+00:00 app[web.1]: 7ff4cd1d9000-7ff4cd1da000 rw-p 00082000 07:07 8247 /lib/libm-2.11.1.so
2014-09-28T17:39:01.170534+00:00 app[web.1]: 7ff4cd1da000-7ff4cd1e3000 r-xp 00000000 07:07 8228 /lib/libcrypt-2.11.1.so
2014-09-28T17:39:01.170537+00:00 app[web.1]: 7ff4cd1e3000-7ff4cd3e3000 ---p 00009000 07:07 8228 /lib/libcrypt-2.11.1.so
2014-09-28T17:39:01.170538+00:00 app[web.1]: 7ff4cd3e3000-7ff4cd3e4000 r--p 00009000 07:07 8228 /lib/libcrypt-2.11.1.so
2014-09-28T17:39:01.170540+00:00 app[web.1]: 7ff4cd3e4000-7ff4cd3e5000 rw-p 0000a000 07:07 8228 /lib/libcrypt-2.11.1.so
2014-09-28T17:39:01.170541+00:00 app[web.1]: 7ff4cd3e5000-7ff4cd413000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170542+00:00 app[web.1]: 7ff4cd413000-7ff4cd415000 r-xp 00000000 07:07 8231 /lib/libdl-2.11.1.so
2014-09-28T17:39:01.170543+00:00 app[web.1]: 7ff4cd415000-7ff4cd615000 ---p 00002000 07:07 8231 /lib/libdl-2.11.1.so
2014-09-28T17:39:01.170544+00:00 app[web.1]: 7ff4cd615000-7ff4cd616000 r--p 00002000 07:07 8231 /lib/libdl-2.11.1.so
2014-09-28T17:39:01.170545+00:00 app[web.1]: 7ff4cd616000-7ff4cd617000 rw-p 00003000 07:07 8231 /lib/libdl-2.11.1.so
2014-09-28T17:39:01.170546+00:00 app[web.1]: 7ff4cd617000-7ff4cd61e000 r-xp 00000000 07:07 8277 /lib/librt-2.11.1.so
2014-09-28T17:39:01.170547+00:00 app[web.1]: 7ff4cd61e000-7ff4cd81d000 ---p 00007000 07:07 8277 /lib/librt-2.11.1.so
2014-09-28T17:39:01.170548+00:00 app[web.1]: 7ff4cd81d000-7ff4cd81e000 r--p 00006000 07:07 8277 /lib/librt-2.11.1.so
2014-09-28T17:39:01.170551+00:00 app[web.1]: 7ff4cd81e000-7ff4cd81f000 rw-p 00007000 07:07 8277 /lib/librt-2.11.1.so
2014-09-28T17:39:01.170552+00:00 app[web.1]: 7ff4cd81f000-7ff4cd837000 r-xp 00000000 07:07 8273 /lib/libpthread-2.11.1.so
2014-09-28T17:39:01.170554+00:00 app[web.1]: 7ff4cd837000-7ff4cda36000 ---p 00018000 07:07 8273 /lib/libpthread-2.11.1.so
2014-09-28T17:39:01.170555+00:00 app[web.1]: 7ff4cda36000-7ff4cda37000 r--p 00017000 07:07 8273 /lib/libpthread-2.11.1.so
2014-09-28T17:39:01.170556+00:00 app[web.1]: 7ff4cda37000-7ff4cda38000 rw-p 00018000 07:07 8273 /lib/libpthread-2.11.1.so
2014-09-28T17:39:01.170557+00:00 app[web.1]: 7ff4cda38000-7ff4cda3c000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170558+00:00 app[web.1]: 7ff4cda3c000-7ff4cda5c000 r-xp 00000000 07:07 8215 /lib/ld-2.11.1.so
2014-09-28T17:39:01.170559+00:00 app[web.1]: 7ff4cdb03000-7ff4cdc04000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170560+00:00 app[web.1]: 7ff4cdc04000-7ff4cdc43000 r--p 00000000 07:07 49 /usr/lib/locale/en_US.utf8/LC_CTYPE
2014-09-28T17:39:01.170562+00:00 app[web.1]: 7ff4cdc43000-7ff4cdc48000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170563+00:00 app[web.1]: 7ff4cdc4e000-7ff4cdc4f000 ---p 00000000 00:00 0
2014-09-28T17:39:01.170564+00:00 app[web.1]: 7ff4cdc4f000-7ff4cdc52000 rw-p 00000000 00:00 0 [stack:5977]
2014-09-28T17:39:01.170567+00:00 app[web.1]: 7ff4cdc52000-7ff4cdc59000 r--s 00000000 07:07 98766 /usr/lib/gconv/gconv-modules.cache
2014-09-28T17:39:01.170568+00:00 app[web.1]: 7ff4cdc59000-7ff4cdc5b000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170569+00:00 app[web.1]: 7ff4cdc5b000-7ff4cdc5c000 r--p 0001f000 07:07 8215 /lib/ld-2.11.1.so
2014-09-28T17:39:01.170570+00:00 app[web.1]: 7ff4cdc5c000-7ff4cdc5d000 rw-p 00020000 07:07 8215 /lib/ld-2.11.1.so
2014-09-28T17:39:01.170571+00:00 app[web.1]: 7ff4cdc5d000-7ff4cdc5e000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170572+00:00 app[web.1]: 7ff4cdc5e000-7ff4cded9000 r-xp 00000000 fc:00 32511714 /app/vendor/ruby-2.1.2/bin/ruby
2014-09-28T17:39:01.170574+00:00 app[web.1]: 7ff4ce0d9000-7ff4ce0de000 r--p 0027b000 fc:00 32511714 /app/vendor/ruby-2.1.2/bin/ruby
2014-09-28T17:39:01.170575+00:00 app[web.1]: 7ff4ce0de000-7ff4ce0e0000 rw-p 00280000 fc:00 32511714 /app/vendor/ruby-2.1.2/bin/ruby
2014-09-28T17:39:01.170576+00:00 app[web.1]: 7ff4ce0e0000-7ff4ce104000 rw-p 00000000 00:00 0
2014-09-28T17:39:01.170578+00:00 app[web.1]: 7ff4cf338000-7ff4d08cc000 rw-p 00000000 00:00 0 [heap]
2014-09-28T17:39:01.170579+00:00 app[web.1]: 7fff60f37000-7fff60f58000 rw-p 00000000 00:00 0 [stack]
2014-09-28T17:39:01.170580+00:00 app[web.1]: 7fff60ffe000-7fff61000000 r-xp 00000000 00:00 0 [vdso]
2014-09-28T17:39:01.170581+00:00 app[web.1]: ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
2014-09-28T17:39:01.178241+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path="/" host=whispering-ridge-3974.herokuapp.com request_id=b8a57a56-7fa5-45be-a2ef-ec6621bec93f fwd="50.161.58.150" dyno=web.1 connect=3ms service=20ms status=503 bytes=0
2014-09-28T17:39:01.890664+00:00 heroku[web.1]: State changed from up to crashed
2014-09-28T17:39:01.882421+00:00 heroku[web.1]: Process exited with status 134

Pawn cannot turn into a queen

Hello,

I ran into an issue while playing.
The Chess::IllegalMoveError is raised when the pawn tries to go to the end of the board and become a queen.

Algebraic input

Dear Pioz, does Chess gem have a method that allows the user to enter a move in algebraic format (e.g. Nxf6) and get the ouput in coordinate format (G8F6)? By the way, this gem is great.

PGN is not in a standard format

Hi, sorry for opening so many issues but this is the most downloaded chess gem and I do not understand how there are so many things that seem irregular.

PGN is supposed to be a string that looks something like:

  1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 {This opening is called the Ruy Lopez.}
  2. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3 O-O 9. h3 Nb8 10. d4 Nbd7
  3. c4 c6 12. cxb5 axb5 13. Nc3 Bb7 14. Bg5 b4 15. Nb1 h6 16. Bh4 c5 17. dxe5
    Nxe4 18. Bxe7 Qxe7 19. exd6 Qf6 20. Nbd2 Nxd6 21. Nc4 Nxc4 22. Bxc4 Nb6
  4. Ne5 Rae8 24. Bxf7+ Rxf7 25. Nxf7 Rxe1+ 26. Qxe1 Kxf7 27. Qe3 Qg5 28. Qxg5
    hxg5 29. b3 Ke6 30. a3 Kd6 31. axb4 cxb4 32. Ra5 Nd5 33. f3 Bc8 34. Kf2 Bf5
  5. Ra7 g6 36. Ra6+ Kc5 37. Ke1 Nf4 38. g3 Nxh3 39. Kd2 Kb5 40. Rd6 Kc5 41. Ra6
    Nf2 42. g4 Bd3 43. Re6 1/2-1/2

However, this gem seems to use a custom format (not real PGN) making it incompatible with other tools (chess.js for instance)

I am wrong or is there a way to get the correct PGN string out of a PGN object?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.