OSDN Git Service

Added a benchmark program.
authorDaigo Moriwaki <daigo@debian.org>
Sat, 8 May 2010 04:58:49 +0000 (13:58 +0900)
committerDaigo Moriwaki <daigo@debian.org>
Sat, 8 May 2010 04:58:49 +0000 (13:58 +0900)
ex: time ruby1.9.1 benchmark.rb csa/wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa 10

test/benchmark.rb [new file with mode: 0644]
test/csa/wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa [new file with mode: 0644]

diff --git a/test/benchmark.rb b/test/benchmark.rb
new file mode 100644 (file)
index 0000000..f2067b0
--- /dev/null
@@ -0,0 +1,137 @@
+#!/usr/bin/ruby
+
+require 'socket'
+
+class BenchPlayer
+  def initialize(game_name, name, sente)
+    @game_name = game_name
+    @name = "%s_%s" % [game_name, name]
+    @turn_mark = sente ? "+" : "-"
+    @nmoves = 0
+  end
+  attr_reader :nmoves
+
+  def connect
+    port = 4000
+    @socket = TCPSocket.open("localhost", port)
+    @socket.sync = true
+    @message = ""
+    reader
+  end
+
+  def reader
+    Thread.new do
+      loop do 
+        if r = select([@socket], nil, nil, 10)
+          str = r[0].first.gets
+          if %r!^[\+\-]\d{4}\w{2},T\d+$! =~ str
+            @nmoves += 1
+          end
+          @message << str
+        else
+          raise "timed out"
+        end
+      end
+    end
+  end
+
+  def wait(reg)
+    loop do 
+      break if reg =~ @message
+      sleep 0.1
+    end
+  end
+
+  def wait_nmoves(n)
+    loop do
+      break if @nmoves == n
+      sleep 0.01
+    end
+  end
+
+  def login
+    @socket.puts "LOGIN #{@name} dummy x1"
+    wait %r!^LOGIN!
+  end
+
+  def game
+    @socket.puts "%%GAME #{@game_name}-1500-0 #{@turn_mark}"
+  end
+
+  def agree
+    @socket.puts "AGREE"
+  end
+
+  def move(m)
+    @socket.puts m
+  end
+
+  def toryo
+    @socket.puts "%TORYO"
+  end
+
+  def logout
+    @socket.puts "LOGOUT"
+  end
+
+end
+
+class BenchGame
+  def initialize(game_name, csa)
+    @game_name = game_name
+    @csa = csa
+    @p1 = BenchPlayer.new(@game_name, "bp1", true)
+    @p2 = BenchPlayer.new(@game_name, "bp2", false)
+  end
+
+  def each_player
+    [@p1, @p2].each {|player| yield player}
+  end
+
+  def start
+    each_player {|player| player.connect}
+    each_player {|player| player.login}
+    each_player {|player| player.game}
+    each_player {|player| player.wait %r!^END Game_Summary!}
+    each_player {|player| player.agree}
+    each_player {|player| player.wait %r!^START:!}
+    turn = true # black
+    nmoves = 0
+    @csa.each_line do |line|
+      case line
+      when /^\+\d{4}\w{2}/
+        @p1.wait_nmoves nmoves
+        @p1.move $&
+        turn = false
+        nmoves += 1
+      when /^\-\d{4}\w{2}/
+        @p2.wait_nmoves nmoves
+        @p2.move $&
+        turn = true
+        nmoves += 1
+      when /^%TORYO/
+        turn ? @p1.toryo : @p2.toryo
+      end
+    end
+    each_player {|player| player.logout}
+  end
+end
+
+
+if __FILE__ == $0
+  filepath = ARGV.shift || File.join(File.dirname(__FILE__), "csa", "wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa")
+  csa = File.open(filepath){|f| f.read} 
+
+  nclients = ARGV.shift || 1
+  nclients = nclients.to_i
+  threads = []
+  nclients.times do |i|
+    threads << Thread.new do
+      game = BenchGame.new("b#{i}", csa)
+      game.start
+    end
+  end
+  threads.each {|t| t.join}
+
+end
+
diff --git a/test/csa/wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa b/test/csa/wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa
new file mode 100644 (file)
index 0000000..d742e6d
--- /dev/null
@@ -0,0 +1,493 @@
+V2
+N+gps_normal
+N-gps_l
+$EVENT:wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007
+$START_TIME:2010/05/07 12:00:00
+P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
+P2 * -HI *  *  *  *  * -KA * 
+P3-FU-FU-FU-FU-FU-FU-FU-FU-FU
+P4 *  *  *  *  *  *  *  *  * 
+P5 *  *  *  *  *  *  *  *  * 
+P6 *  *  *  *  *  *  *  *  * 
+P7+FU+FU+FU+FU+FU+FU+FU+FU+FU
+P8 * +KA *  *  *  *  * +HI * 
+P9+KY+KE+GI+KI+OU+KI+GI+KE+KY
++
+'rating:gps_normal+e293220e3f8a3e59f79f6b0efffaa931:gps_l+1dadf572b9a37a29d77f3eb2f812f6f4
++7776FU
+T1
+'** 0
+-3334FU
+T1
++2726FU
+T1
+'** 0
+-4344FU
+T1
++3948GI
+T1
+'** 0
+-8232HI
+T1
++2625FU
+T1
+'** 0
+-2233KA
+T1
++5968OU
+T1
+'** 0
+-3142GI
+T1
++6878OU
+T1
+'** 0
+-5162OU
+T9
+'** 267 +8877KA -6272OU +7888OU -7282OU +9998KY -9192KY +5756FU -8291OU +4857GI -4243GI +8899OU
++5756FU
+T1
+'** 0
+-6272OU
+T1
++4958KI
+T1
+'** 0
+-4152KI
+T1
++9796FU
+T1
+'** 0
+-7282OU
+T9
+'** 128 +8786FU -9192KY +7887OU -8291OU +7978GI -7182GI +4857GI -4243GI +5766GI -6171KI +8879KA
++4857GI
+T1
+'** 0
+-9394FU
+T1
++8877KA
+T1
+'** 0
+-7172GI
+T1
++7888OU
+T1
+'** 0
+-4243GI
+T1
++9998KY
+T1
+'** 0
+-3435FU
+T12
+'** 44 +8899OU -3342KA +2826HI -3234HI +1716FU -5354FU +7988GI -2133KE +1615FU -6364FU +6979KI
++8899OU
+T1
+'** 0
+-3342KA
+T15
+'** 46 +2826HI -4215KA +2616HI -1542KA +7988GI -1314FU +5768GI -3234HI +7766KA -2133KE +6979KI
++6766FU
+T29
+'** -34 -5354FU +7988GI -3536FU +3736FU -4264KA +4746FU -3236HI +0037FU -3634HI +6979KI -6442KA +5867KI -2133KE
+-3536FU
+T11
+'** -58 +3736FU -3236HI +0037FU -3635HI +5746GI -3534HI +7988GI -2133KE +6979KI -5354FU +6665FU
++3736FU
+T11
+'** -31 -3236HI +0037FU -3634HI +7988GI -5354FU +5867KI -2133KE +6979KI -6364FU +1716FU -5263KI %PASS -4445FU
+-3236HI
+T7
+'** -26 +0037FU -3634HI +7988GI -6364FU +6979KI -5354FU +5867KI -2133KE +4746FU -1314FU +1716FU
++0037FU
+T16
+'** -33 -3634HI +7988GI -2133KE +5867KI -6364FU +6979KI -5354FU +7786KA -0036FU +3736FU -3436HI +0037FU -3634HI +1716FU
+-3634HI
+T3
+'** 18 +7988GI -5354FU +6979KI -2133KE +6665FU -4253KA +5868KI -0036FU +3736FU -3436HI +0037FU
++7988GI
+T21
+'** -34 -6364FU +6979KI -2133KE +5867KI -5354FU +1716FU -1314FU +4746FU -5263KI +2838HI -7374FU +3736FU -3325KE
+-2133KE
+T1
+'** -28 +6979KI -5354FU +5867KI -4445FU +6665FU -6364FU +6564FU -4264KA +0065FU
++6979KI
+T38
+'** -46 -6364FU +4746FU -5354FU +5847KI -5263KI +3736FU -1314FU +1716FU -7374FU +7759KA -8173KE +2838HI -3325KE
+-3435HI
+T1
+'** -254 +2524FU -2324FU +5868KI -3345KE +5746GI -3525HI +2825HI -2425FU +6878KI
++7786KA
+T10
+'** -162 -3525HI +2825HI -3325KE +0028HI -2324FU +5859KI %PASS %PASS
+-3525HI
+T15
+'** -656 +2825HI -3325KE +5868KI -0028HI +6878KI -2829RY +5768GI -2919RY +0041HI -2537NK +4111RY
++2825HI
+T22
+'** -250 -3325KE +0028HI -2324FU +5748GI -1314FU +2826HI -4233KA +1716FU -4445FU +5867KI -0049HI +2628HI -3344KA
+-3325KE
+T1
+'** -656 +5868KI -0028HI +6878KI -2829RY +5768GI -2537NK +0041HI -2919RY +4111RY
++0028HI
+T16
+'** -253 -2324FU +5748GI -0038FU +3736FU -4445FU +1716FU -4233KA +8677KA -4344GI +5859KI -6364FU
+-2324FU
+T34
+'** -650 +5748GI -8384FU +3736FU -7283GI +8668KA -6172KI +6665FU -5354FU +5867KI %PASS %PASS
++5748GI
+T1
+'** -240 -1314FU +4746FU -8384FU +6665FU -7283GI +5868KI -4354GI +6564FU -6364FU +8664KA -5263KI
+-8384FU
+T42
+'** -711 +8668KA -7283GI +1716FU -6172KI +6857KA -0038FU +4859GI -5354FU +2826HI -3839TO +5739KA
++2826HI
+T11
+'** -246 -7283GI +5868KI -8485FU +8677KA -2537NK +2937KE
+-7283GI
+T42
+'** -763 +8668KA -5354FU +5859KI -0038FU +2628HI -6172KI +5969KI -4445FU +6824KA -4224KA +2825HI
++2628HI
+T1
+'** -287 -0038FU +6665FU -6172KI +8677KA %PASS %PASS
+-6172KI
+T42
+'** -785 +6665FU -8485FU +8677KA -7374FU +3736FU -5354FU +5655FU -5455FU +7755KA -8173KE +5867KI
++4746FU
+T19
+'** -284 -8485FU +8668KA -5354FU +1716FU -5262KI +3736FU -1314FU +5867KI -4334GI %PASS -4445FU
+-7374FU
+T30
+'** -914 +8668KA -8173KE +6665FU -7365KE +5655FU -8485FU +4645FU -4445FU +5867KI -4344GI +6756KI
++5859KI
+T9
+'** -301 -4334GI +5958KI -8173KE +5867KI -0049HI %PASS -3435GI +8668KA -0036FU
+-0038FU
+T7
+'** -914 +5969KI -8173KE +3736FU -8485FU +8668KA -5354FU +6978KI -0049HI +6857KA
++5958KI
+T13
+'** -541 -3839TO +4839GI -2537NK +2937KE -0036FU +8659KA -0049HI +2838HI -4946RY
+-8485FU
+T7
+'** -906 +8677KA -5354FU +2838HI -0049HI +3839HI -4939RY +4839GI -0049HI +3938GI
++8668KA
+T25
+'** -300 -5354FU +3736FU %PASS +6857KA -8586FU +8786FU -4286KA +0087FU -8642KA %PASS -0086FU
+-5354FU
+T30
+'** -875 +3736FU -4253KA +2838HI -0027HI +0028FU -2726RY +4847GI -0037FU +3848HI -8173KE +6877KA
++3736FU
+T1
+'** -437 -7475FU +7675FU -4275KA +6857KA -5455FU +4645FU -5556FU +5724KA -7564KA +2825HI -6419UM
+-4253KA
+T11
+'** -875 +2838HI -0027HI +0028FU -2726RY +4847GI -0037FU +3848HI -8173KE +6877KA
++6665FU
+T9
+'** -250 -5262KI +4645FU -4445FU +6824KA -8586FU +8786FU -0087FU +8887GI -5344KA
+-5362KA
+T9
+'** -814 +2838HI -0027HI +0028FU -2726RY +6877KA -6284KA +5867KI -0037FU +4837GI
++6857KA
+T9
+'** -268 -8173KE +4645FU -3839TO +4839GI -7365KE +5746KA -6273KA +4673UM -8273OU
+-6273KA
+T8
+'** -827 +2838HI -0027HI +0028FU -0037FU +2937KE -2537NK +4837GI -2725RY +5867KI
++8977KE
+T8
+'** -409 -8586FU +8786FU -4445FU +0026FU -7346KA +5746KA -4546FU +2625FU -3839TO
+-8586FU
+T23
+'** -726 +8786FU -4445FU +7785KE -7346KA +5746KA -4546FU +0033KA -0084FU +3324UM
++8786FU
+T22
+'** -584 -4445FU +3635FU -0087FU +8887GI -7346KA +5746KA -4546FU +0057KA -0049HI +5746KA -0073KA
+-3839TO
+T10
+'** -676 +4839GI -0084FU +3948GI -5455FU +5655FU -7355KA +5867KI -0049HI +0056FU
++4839GI
+T19
+'** -300 -0087FU +8887GI -0049HI +3938GI -7346KA +5746KA -4946RY +3847GI -4645RY +0046FU -4534RY +0022KA
+-5455FU
+T4
+'** -732 +7785KE -7362KA +5655FU -0084FU +0026FU -8485FU +8685FU -6273KA +2625FU
++7785KE
+T23
+'** -456 -7351KA +5766KA -4354GI +0023FU -0084FU +2322TO -8485FU +8685FU -0086KE +8887GI -8698NK
+-7362KA
+T21
+'** -855 +5766KA -4354GI +9695FU -9495FU +0092FU -8292OU +0026FU -0084FU +9895KY -0094FU +0093FU
++5766KA
+T9
+'** -481 -5556FU +0026FU -0087FU +8887GI -0049HI +0059FU -0084FU +2625FU -8485FU
+-4354GI
+T12
+'** -848 +0026FU -0084FU +2625FU -8485FU +8685FU -5556FU +0084KE -7273KI +2524FU
++0026FU
+T28
+'** -522 -0087FU +8887GI -0049HI +9989OU -2537NK +2937KE -5556FU +6564FU -6364FU +0063FU -5263KI
+-0084FU
+T1
+'** -1016 +2625FU -5556FU +8593NK -8193KE +2524FU -0027FU +2827HI -5465GI +6655KA
++2625FU
+T7
+'** -709 -5556FU +2827HI -8485FU +8685FU -5465GI +6655KA -6273KA +5573UM -7273KI
+-5556FU
+T9
+'** -1066 +8593NK -8193KE +3948GI -6273KA +7989KI -0069HI +6644KA -7346KA +2827HI
++2827HI
+T10
+'** -439 -8485FU +8685FU -5465GI +6655KA -6273KA +5573UM -7273KI +8584FU -8384GI +0085FU
+-8485FU
+T11
+'** -1275 +8685FU -5465GI +6655KA -6273KA +5544KA -7346KA +2747HI -4679UM +8879GI
++8685FU
+T8
+'** -690 -5465GI +6655KA -7273KI +8584FU -8384GI +0085FU -8493GI +2524FU -0086FU +0084KE -6576GI
+-5465GI
+T13
+'** -1313 +6655KA -6273KA +5544KA -6576GI +0053FU -5262KI +4411UM -0086FU +0084KY
++6655KA
+T1
+'** -693 -6273KA +5573UM -7273KI +8584FU -8372GI +0021KA -6566GI +0065KE -7384KI
+-6273KA
+T11
+'** -1301 +5573UM -8173KE +3948GI -0086FU +0053FU -5253KI +0084KE -7271KI +0042KA
++5573UM
+T2
+'** -859 -7273KI +0053FU -5253KI +0031KA -0049KA +2728HI -5657TO +5857KI -4976UM
+-8173KE
+T22
+'** -1291 +3948GI -6576GI +8584FU -8384GI +0034KA -5262KI +3443UM
++8584FU
+T17
+'** -899 -8384GI +0083FU -7283KI +0053FU -5253KI +0042KA -0049KA +4253UM -4958UM
+-8384GI
+T22
+'** -1447 +3948GI -0049KA +0061KA -5262KI +6172UM -8272OU +2787HI
++0083FU
+T1
+'** -1109 -8283OU +0034KA -5253KI +0054FU -5354KI +3461UM -0066KE +5859KI -6576GI
+-8283OU
+T7
+'** -1977 +3948GI -0049KA +0034KA -4958UM +3452UM -5848UM +2787HI
++0053FU
+T1
+'** -1362 -5253KI +0042KA -0049KA +2728HI -5364KI +4264UM -6364FU
+-5253KI
+T5
+'** -2212 +2524FU -0086FU +0042KA -0052HI +4253UM -5253HI +5868KI
++0042KA
+T16
+'** -1993 -5364KI +2524FU -0086KE +0087KE -6576GI +4231UM %PASS
+-0064KA
+T10
+'** -2288 +2524FU -0086FU +2767HI -0087KE +9989OU -8779NK +8879GI
++3948GI
+T10
+'** -1678 -0086KE +0068KE -8698NK +9998OU -0087FU +2787HI -0086KY
+-0086FU
+T8
+'** -2261 +9989OU -0087KE +7969KI -6576GI +4251UM -0021HI +5142UM
++9989OU
+T20
+'** -2253 -6576GI +0068KE -7687NG +8887GI -8687TO +2787HI -0086GI +8786HI -0077KE
+-0066KE
+T1
+'** -2273 +5868KI -6576GI +2524FU -0049HI +4253UM -6453KA +0059KI -4929RY +2729HI
++5859KI
+T20
+'** -2115 -6446KA +4253UM -4679UM +8879GI -0087HI +0088KI -8727RY +2937KE -8687TO
+-6576GI
+T13
+'** -2424 +0068KE -7687GI +2767HI -8788NG +7988KI -0087GI +6766HI -8788NG +8988OU
++4224UM
+T6
+'** -2475 -0087HI +2787HI -8687TO +0081HI -0082FU +8191RY -8788TO +7988KI -0087HI
+-0026FU
+T5
+'** -2724 +2747HI -8687TO +8887GI -7687NG +4787HI -0076GI +8747HI
++2747HI
+T14
+'** -2702 -8687TO +8887GI -7687NG +4787HI -0076GI +8737HI -2627TO +3727HI -0087HI
+-8687TO
+T16
+'** -2654 +8887GI -7687NG +4787HI -0076GI +8747HI -0088FU +7988KI -0087FU +4787HI
++8887GI
+T10
+'** -2675 -7687GI +4787HI -0086FU +8788HI -0077GI +0076GI -7788NG
+-7687NG
+T3
+'** -2660 +4787HI -0076GI +8747HI -0088FU +7988KI -0087FU +4787HI -0086FU +8747HI
++4787HI
+T9
+'** -2993 -0086GI +8747HI -0087FU +0078FU -0088HI +7988KI -8788TO +8988OU -0087FU +8879OU
+-0076GI
+T14
+'** -2651 +8747HI -0088FU +7988KI -0087FU +4787HI -7687NG +8887KI
++8737HI
+T6
+'** -3071 -0088FU +7988KI -0087FU +3787HI -7687GI +8887KI -5657TO +4857GI
+-0086FU
+T2
+'** -2666 +0088FU -0028HI +0077FU -2627TO +3747HI
++0088GI
+T12
+'** -2034 -8687TO +8887GI -0077HI +3777HI -7677NG +0088FU -0086FU +0081HI -0082HI
+-8687TO
+T3
+'** -2518 +8887GI -2627TO +3727HI -7687NG +2787HI -0076GI +8727HI
++8887GI
+T13
+'** -2490 -7687NG +3787HI -0076GI +8747HI -0088FU +7988KI -0087FU +4787HI -7687NG +8887KI
+-2627TO
+T1
+'** -2466 +3727HI -7687NG +2787HI -0086FU +8747HI -0087GI +0088FU -8798NG
++3727HI
+T11
+'** -2340 -7687GI +2787HI -0086FU +8737HI -0087GI +0088FU -0078HI +0068GI -7879RY
+-7687NG
+T1
+'** -2443 +2787HI -0076GI +8747HI -0088FU +7988KI -0087FU +4787HI -7687NG
++2787HI
+T13
+'** -2621 -0086GI +8737HI -0088FU +8988OU -7385KE +0065KE -8577NK +3777HI -0087FU
+-0076GI
+T1
+'** -2364 +8784HI -8384OU +0085FU -8485OU +5968KI -0088FU +8988OU
++8727HI
+T7
+'** -2625 -0088FU +7988KI -0087FU +2787HI -7687GI +8887KI -0078HI
+-0088FU
+T4
+'** -2568 +7988KI -0087FU +2787HI -7687NG +8887KI -0088FU +8988OU
++8988OU
+T8
+'** -4481 -0087FU +8899OU -0078HI +5969KI -7848RY +0058FU -0088GI +7988KI -8788TO
+-0086FU
+T3
+'** -2866 +0099KE -5657TO +2757HI -7365KE +5968KI -0049HI
++0099KE
+T5
+'** -2978 -8687TO +9987KE -0086FU +0078GI -6678NK +7978KI -8687TO +7887KI -7687NG +2787HI
+-8687TO
+T4
+'** -2889 +9987KE -0086FU +0078GI -6678NK +7978KI -8687TO
++2787HI
+T1
+'** -2771 -7687NG +9987KE -7385KE +0076GI -0077HI +0078FU -7776RY +0077GI
+-7687NG
+T6
+'** -2611 +9987KE -0086FU +0076GI -0028HI +0065FU -8687TO +8887OU
++9987KE
+T1
+'** -3526 -7385KE +8899OU -0086FU +0076GI -8687TO +7687GI -5657TO +4857GI
+-0086FU
+T3
+'** -2769 +0076GI -8687TO +7687GI -0067KE +7968KI -6759NK
++0076GI
+T1
+'** -3971 -8687TO +7687GI -0067KE +7969KI -6759NK +4859GI -0028HI +0068GI
+-8687TO
+T2
+'** -2930 +7687GI -0075KE +0076GI -7587NK +7687GI
++7687GI
+T3
+'** -3796 -0067KE +0068GI -6779NK +6879GI -7385KE +0089KE -0067HI +0077FU -5657TO
+-0075KE
+T1
+'** -2638 +0076GI -7587NK +7687GI -0067HI +0077FU
++0076GI
+T4
+'** -3541 -7587NK +7687GI -7385KE +0089KE -0086GI +8786GI -6486KA +0087GI -8659UM
+-7587NK
+T1
+'** -2775 +7687GI -7385KE +5968KI -0097GI +8899OU
++7687GI
+T3
+'** -4675 -0067HI +0077KE -0097GI +9897KY -6497UM +8897OU -0099HI +9788OU
+-7385KE
+T1
+'** -2760 +0078FU -0097GI +8899OU -9786NG
++0089KE
+T2
+'** -3643 -0067HI +0077FU -0027HI +2937KE
+-0067HI
+T5
+'** -2945 +0086FU -0077GI +8899OU -7786NG +8786GI
++0077FU
+T1
+'** -5843 -0097GI +9897KY -6497UM +8997KE -8577NK +8899OU -7787NK
+-8577NK
+T2
+'** -3222 +8977KE -0086FU +0099KE -8687TO +9987KE
++8977KE
+T3
+'** -5081 -0086FU +8786GI -6486KA +0078FU -0076GI +8889OU -7677NG
+-0086FU
+T1
+'** -865423 +8786GI -6486KA +0095KE -9495FU
++8786GI
+T3
+'** -372054 -6486KA +0078FU -8677UM +7877FU -0086GI
+-6486KA
+T3
+'** -865461 +0095KE -9495FU
++0075KE
+T2
+'** -373923 -8475GI
+-8475GI
+T5
+'** -867073 +0084FU -8393OU +7785KE -9392OU +8483TO -7283KI +8593NK -9293OU
++0084FU
+T1
+'** -373429 -8382OU
+-8393OU
+T5
+'** -867650 +7785KE -9384OU +2451UM -8485OU +5195UM -8695KA +0086FU -7586GI
++7785KE
+T1
+'** -376835 -9384OU +2451UM -8485OU +5195UM -9495FU
+-9384OU
+T1
+'** -867688 +2451UM -8485OU +5195UM -8695KA +0086FU -7586GI
++2451UM
+T1
+'** -377670 -0073GI +5173UM -7273KI +7978KI -6678NK
+-8485OU
+T4
+'** -867725 +5195UM -8695KA +0086FU -7586GI
++5195UM
+T1
+'** -377635 -9495FU
+-8695KA
+T2
+'** -867763 +0086FU -7586GI
++0086FU
+T1
+'** -377742 -9586KA
+-7586GI
+T1
++7978KI
+T1
+'** -488281 -6678NK
+-0076KE
+T1
+%TORYO
+'P1-KY *  *  *  *  *  *  * -KY
+'P2 *  * -KI *  *  *  *  *  * 
+'P3 *  *  * -FU-KI *  *  * -FU
+'P4-FU * -FU *  * -FU *  *  * 
+'P5-KA-OU *  *  *  *  * +FU * 
+'P6+FU-GI-KE-KE-FU+FU+FU *  * 
+'P7 *  *  * -HI *  *  *  * +FU
+'P8+KY+OU+KI *  * +GI *  *  * 
+'P9 *  *  *  * +KI *  * +KE+KY
+'P+00FU00FU00FU00FU00FU
+'P-00FU00FU00GI00GI00HI00KA00KE
+'+
+'summary:toryo:gps_normal lose:gps_l win
+'$END_TIME:2010/05/07 12:21:52