１二と １四歩 の盤面で １一と すると二歩になる→修正
１二歩を一歩進んで成ると棋譜が "1一と成(12)" になる→修正
アホなCPU同士の対局サンプル生成
WEBインタフェースを追加(でも状態を復元できないのでまともに対戦できない)
Marshal.dump/loadで復帰するテストを書いた(通らない)

diff --git a/examples/sample11.rb b/examples/sample11.rb
new file mode 100644
index 0000000..5e9b8b3
--- /dev/null
+++ b/examples/sample11.rb
@@ -0,0 +1,17 @@
+# -*- coding: utf-8 -*-
+# 盤面の復元
+
+begin
+  require_relative "../lib/bushido"
+rescue LoadError
+  require File.expand_path(File.join(File.dirname(__FILE__), "../lib/bushido"))
+end
+
+include Bushido
+
+frame = LiveFrame.basic_instance
+frame.piece_plot
+frame.execute("７六歩")
+frame.execute("３四歩")
+frame.execute("２二角成")
+puts frame
diff --git a/lib/bushido/player.rb b/lib/bushido/player.rb
index 285dde6..a42fff6 100644
--- a/lib/bushido/player.rb
+++ b/lib/bushido/player.rb
@@ -446,12 +446,12 @@ module Bushido
         if @player.piece_fetch(@piece)
           @put_on_trigger = true
           if @promoted
-            raise PromotedPiecePutOnError, "成った状態の駒を打つことはできません : #{@source.inspect}"
+            raise PromotedPiecePutOnError, "成った状態の駒を打つことはできません : '#{@source.inspect}'"
           end
           @player.put_on_at2(@point, Soldier.new(@player, @player.pick_out(@piece), @promoted))
           @done = true
         else
-          raise MovableSoldierNotFound, "#{@point.name}に移動できる#{@piece.name}がありません。#{@source.inspect} の指定が間違っているのかもしれません"
+          raise MovableSoldierNotFound, "#{@point.name}に移動できる#{@piece.name}がありません。'#{@source}' の入力が間違っているのかもしれません"
         end
       end