--- /dev/null
+How to run test cases
+=====================
+
+1. Run the server with port 4000
+
+$ cd ../shogi-server
+$ ./shogi-server hoge 4000
+
+You can use any server name.
+
+2. Run the test cases
+
+./TC_ALL.rb
+
+
--- /dev/null
+require 'TC_functional.rb'
+require 'TC_jishogi_kachi.rb'
+require 'TC_oute_sennichite.rb'
+require 'TC_not_sennichite.rb'
+require 'TC_uchifuzume.rb'
+require 'TC_rating.rb'
+require 'test_board.rb'
+require 'TC_login.rb'
+require 'TC_player.rb'
+require 'TC_floodgate.rb'
+require 'TC_league.rb'
--- /dev/null
+require 'test/unit'
+load '../shogi-server/shogi-server'
+require '../shogi-server/pairing'
+
+class MockLogger
+ def debug(str)
+ end
+ def info(str)
+ # puts str
+ end
+ def warn(str)
+ end
+ def error(str)
+ end
+end
+
+$logger = MockLogger.new
+
+class TestFloodgate < Test::Unit::TestCase
+ def setup
+ @fg = ShogiServer::League::Floodgate.new(nil)
+ end
+
+ def teardown
+
+ end
+
+ def test_game_name
+ assert(ShogiServer::League::Floodgate.game_name?("floodgate-900-0"))
+ assert(ShogiServer::League::Floodgate.game_name?("floodgate-0-10"))
+ assert(!ShogiServer::League::Floodgate.game_name?("floodgat-900-0"))
+ end
+
+end
+
+class TestPairing < Test::Unit::TestCase
+ def setup
+ @pairing= ShogiServer::Pairing.new
+ @a = ShogiServer::BasicPlayer.new
+ @a.win = 1
+ @a.loss = 2
+ @a.rate = 0
+ @b = ShogiServer::BasicPlayer.new
+ @b.win = 10
+ @b.loss = 20
+ @b.rate = 1500
+ @c = ShogiServer::BasicPlayer.new
+ @c.win = 100
+ @c.loss = 200
+ @c.rate = 1000
+ end
+
+ def test_delete_most_playing_player
+ players = [@a, @b, @c]
+ @pairing.delete_most_playing_player(players)
+ assert_equal([@a,@b], players)
+ end
+
+ def test_delete_least_rate_player
+ players = [@a, @b, @c]
+ @pairing.delete_least_rate_player(players)
+ assert_equal([@b,@c], players)
+ end
+end
+
+class TestRandomPairing < Test::Unit::TestCase
+ def setup
+ @pairing= ShogiServer::RandomPairing.new
+ $called = 0
+ def @pairing.start_game(p1,p2)
+ $called += 1
+ end
+ @a = ShogiServer::BasicPlayer.new
+ @a.win = 1
+ @a.loss = 2
+ @b = ShogiServer::BasicPlayer.new
+ @b.win = 10
+ @b.loss = 20
+ @c = ShogiServer::BasicPlayer.new
+ @c.win = 100
+ @c.loss = 200
+ end
+
+ def test_random_match_1
+ players = [@a]
+ @pairing.match(players)
+ assert_equal(0, $called)
+ end
+
+ def test_random_match_2
+ players = [@a,@b]
+ @pairing.match(players)
+ assert_equal(1, $called)
+ end
+
+ def test_random_match_3
+ players = [@a, @b, @c]
+ @pairing.match(players)
+ assert_equal(1, $called)
+ end
+end
+
+class TestSwissPairing < Test::Unit::TestCase
+ def setup
+ @pairing= ShogiServer::SwissPairing.new
+ $pairs = []
+ def @pairing.start_game(p1,p2)
+ $pairs << [p1,p2]
+ end
+ @a = ShogiServer::BasicPlayer.new
+ @a.name = "a"
+ @a.win = 1
+ @a.loss = 2
+ @a.rate = 0
+ @a.last_game_win = false
+ @b = ShogiServer::BasicPlayer.new
+ @b.name = "b"
+ @b.win = 10
+ @b.loss = 20
+ @b.rate = 1500
+ @b.last_game_win = true
+ @c = ShogiServer::BasicPlayer.new
+ @c.name = "c"
+ @c.win = 100
+ @c.loss = 200
+ @c.rate = 1000
+ @c.last_game_win = true
+ @d = ShogiServer::BasicPlayer.new
+ @d.name = "d"
+ @d.win = 1000
+ @d.loss = 2000
+ @d.rate = 1800
+ @d.last_game_win = true
+ end
+
+ def sort(players)
+ return players.sort{|a,b| a.name <=> b.name}
+ end
+
+ def test_include_newbie
+ assert(@pairing.include_newbie?([@a]))
+ assert(!@pairing.include_newbie?([@b]))
+ assert(@pairing.include_newbie?([@b,@a]))
+ assert(!@pairing.include_newbie?([@b,@c]))
+ end
+
+ def test_match_1
+ @pairing.match([@a])
+ assert_equal(0, $pairs.size)
+ end
+
+ def test_match_2
+ @pairing.match([@b])
+ assert_equal(0, $pairs.size)
+ end
+
+ def test_match_3
+ @pairing.match([@a,@b])
+ assert_equal(1, $pairs.size)
+ assert_equal(sort([@a,@b]), sort($pairs.first))
+ end
+
+ def test_match_4
+ @pairing.match([@c,@b])
+ assert_equal(1, $pairs.size)
+ assert_equal(sort([@b,@c]), sort($pairs.first))
+ end
+
+ def test_match_5
+ @pairing.match([@c,@b,@a])
+ assert_equal(1, $pairs.size)
+ assert_equal(sort([@b,@c]), sort($pairs.first))
+ end
+
+ def test_match_6
+ @pairing.match([@c,@b,@a,@d])
+ assert_equal(2, $pairs.size)
+ assert_equal(sort([@b,@d]), sort($pairs.first))
+ assert_equal(sort([@a,@c]), sort($pairs.last))
+ end
+end
+
+class TestExcludeSacrifice < Test::Unit::TestCase
+ class Dummy
+ attr_reader :players
+ def match(players)
+ @players = players
+ end
+ end
+
+ def setup
+ @dummy = Dummy.new
+ @obj = ShogiServer::ExcludeSacrifice.new(@dummy)
+ @a = ShogiServer::BasicPlayer.new
+ @a.player_id = "a"
+ @a.name = "a"
+ @a.win = 1
+ @a.loss = 2
+ @a.rate = 0
+ @a.last_game_win = false
+ @b = ShogiServer::BasicPlayer.new
+ @b.player_id = "gps500+e293220e3f8a3e59f79f6b0efffaa931"
+ @b.name = "b"
+ @b.win = 10
+ @b.loss = 20
+ @b.rate = 1500
+ @b.last_game_win = true
+ @c = ShogiServer::BasicPlayer.new
+ @c.player_id = "c"
+ @c.name = "c"
+ @c.win = 100
+ @c.loss = 200
+ @c.rate = 1000
+ @c.last_game_win = true
+ end
+
+ def test_match_1
+ @obj.match([@a])
+ assert_equal(1, @dummy.players.size)
+ end
+
+ def test_match_2
+ @obj.match([@b])
+ assert_equal(0, @dummy.players.size)
+ end
+
+ def test_match_3
+ @obj.match([@a, @b])
+ assert_equal(2, @dummy.players.size)
+ end
+
+ def test_match_4
+ @obj.match([@a, @b, @c])
+ assert_equal(2, @dummy.players.size)
+ end
+
+ def test_match_5
+ @obj.match([@a, @c])
+ assert_equal(2, @dummy.players.size)
+ end
+end
+
--- /dev/null
+require "baseclient"
+require "kconv"
+
+class TestClientAtmark < BaseClient
+ # login with trip
+ def login
+ cmd "LOGIN testsente@p1 dummy x1"
+ cmd "%%GAME testcase-1500-0 +"
+
+ cmd2 "LOGIN testgote@p2 dummy2 x1"
+ cmd2 "%%CHALLENGE testcase-1500-0 -"
+ end
+
+ def test_toryo
+ result, result2 = handshake do
+ cmd "%TORYO"
+ end
+ assert(/#LOSE/ =~ result)
+ assert(/#WIN/ =~ result2)
+ end
+end
+
+
+class TestComment < BaseClient
+ def test_toryo
+ result, result2 = handshake do
+ cmd "%TORYO"
+ end
+ assert(/#LOSE/ =~ result)
+ assert(/#WIN/ =~ result2)
+ end
+
+ def test_inline_comment
+ result, result2 = handshake do
+ cmd "+2625FU,'comment"
+ cmd2 "-2233KA"
+ cmd "%TORYO"
+ end
+ assert(/#LOSE/ =~ result)
+ assert(/#WIN/ =~ result2)
+ end
+
+ def test_inline_comment_ja_euc
+ result, result2 = handshake do
+ cmd "+2625FU,'\93ú\96{\8cêEUC"
+ cmd2 "-2233KA"
+ cmd "%TORYO"
+ end
+ assert(/#LOSE/ =~ result)
+ assert(/#WIN/ =~ result2)
+ end
+
+ def test_inline_comment_ja_utf8
+ result, result2 = handshake do
+ cmd "+2625FU,'\93ú\96{\8cêUTF8".toutf8
+ cmd2 "-2233KA"
+ cmd "%TORYO"
+ end
+ assert(/#LOSE/ =~ result)
+ assert(/#WIN/ =~ result2)
+ end
+end
+
+
+class TestWhiteMovesBlack < BaseClient
+ def test_white_moves_black
+ result, result2 = handshake do
+ cmd "+9796FU"
+ cmd2 "+1716FU"
+ sleep 0.5
+ end
+ assert(/#ILLEGAL_MOVE/ =~ result)
+ assert(/#WIN/ =~ result)
+ assert(/#ILLEGAL_MOVE/ =~ result2)
+ assert(/#LOSE/ =~ result2)
+ end
+end
+
+
+class CSABaseClient < BaseClient
+ ##
+ # In CSA mode, the server decides sente or gote at random; and sockets are closed
+ # just after the game ends (i.e. %TORYO is sent)
+ #
+ def handshake
+ login
+
+ sleep 0.5 # wait for game matching
+
+ str = cmd "AGREE"
+ str2 = cmd2 "AGREE"
+
+ if /Your_Turn:\+/ =~ str
+ @sente = "cmd"
+ @sente_socket = @socket1
+ @gote = "cmd2"
+ @gote_socket = @socket2
+ else
+ @sente = "cmd2"
+ @sente_socket = @socket2
+ @gote = "cmd"
+ @gote_socket = @socket1
+ end
+
+ yield if block_given?
+
+ result = read_nonblock(@sente_socket)
+ result2 = read_nonblock(@gote_socket)
+ [result, result2]
+ end
+
+ def sente_cmd(str)
+ eval "#{@sente} \"#{str}\""
+ end
+
+ def gote_cmd(str)
+ eval "#{@gote} \"#{str}\""
+ end
+end
+
+class TestLoginCSAWithoutTripGoodGamename < CSABaseClient
+ def login
+ cmd "LOGIN wo_trip_p1 testcase-1500-0"
+ cmd2 "LOGIN wo_trip_p2 testcase-1500-0"
+ end
+
+ def test_toryo
+ result, result2 = handshake do
+ sente_cmd("%TORYO")
+ end
+ assert(/#LOSE/ =~ result)
+ assert(/#WIN/ =~ result2)
+ end
+end
+
+class TestLoginCSAWithTripGoodGamename < CSABaseClient
+ def login
+ cmd "LOGIN w_trip_p1 testcase-1500-0,atrip"
+ cmd2 "LOGIN w_trip_p2 testcase-1500-0,anothertrip"
+ end
+
+ def test_toryo
+ result, result2 = handshake do
+ sente_cmd "%TORYO"
+ sleep 0.5
+ end
+ assert(/#LOSE/ =~ result)
+ assert(/#WIN/ =~ result2)
+ end
+end
+
+class TestChallenge < CSABaseClient
+ def login
+ cmd "LOGIN w_trip_p1 testcase-1500-0,atrip"
+ cmd2 "LOGIN w_trip_p2 testcase-1500-0,anothertrip"
+ end
+
+ def test_toryo
+ result, result2 = handshake do
+ sente_cmd "CHALLENGE"
+ gote_cmd "CHALLENGE"
+ end
+ assert_match(/CHALLENGE ACCEPTED/, result)
+ assert_match(/CHALLENGE ACCEPTED/, result2)
+ end
+end
+
+class TestFloodgateGame < BaseClient
+ def login
+ classname = self.class.name
+ gamename = "floodgate-900-0"
+ cmd "LOGIN sente#{classname} dummy x1"
+ cmd "%%GAME #{gamename} *"
+
+ cmd2 "LOGIN gote#{classname} dummy2 x1"
+ cmd2 "%%GAME #{gamename} *"
+ end
+
+ def test_game_wait
+ login
+ assert(true)
+ end
+end
+
+class TestFloodgateGameWrongTebam < BaseClient
+ def login
+ classname = self.class.name
+ gamename = "floodgate-900-0"
+ cmd "LOGIN sente#{classname} dummy x1"
+ cmd("%%GAME #{gamename} +")
+ end
+
+ def test_game_wait
+ login
+ sleep 1
+ reply = read_nonblock(@socket1)
+ assert_match(/##\[ERROR\] You are not allowed/m, reply)
+ end
+end
+
+class TestDuplicatedMoves < BaseClient
+ def test_defer
+ result, result2 = handshake do
+ cmd "+7776FU"
+ cmd "+8786FU" # defer
+ cmd "+9796FU" # defer
+ cmd2 "-7374FU"
+ cmd2 "-8384FU"
+ cmd2 "%TORYO" # defer
+ sleep 1
+ end
+ assert(/#WIN/ =~ result)
+ assert(/#LOSE/ =~ result2)
+ end
+
+ def test_defer2
+ result, result2 = handshake do
+ cmd "+7776FU"
+ cmd "+8786FU" # defer
+ cmd "%TORYO" # defer
+ cmd2 "-7374FU"
+ cmd2 "-8384FU"
+ sleep 1
+ end
+ assert(/#LOSE/ =~ result)
+ assert(/#WIN/ =~ result2)
+ end
+
+ def test_defer3
+ result, result2 = handshake do
+ cmd "+7776FU"
+ cmd "+8786FU" # defer
+ cmd2 "-7374FU"
+ cmd2 "-8384FU"
+ cmd "%TORYO" # defer
+ sleep 1
+ end
+ assert(/#LOSE/ =~ result)
+ assert(/#WIN/ =~ result2)
+ end
+end
+
--- /dev/null
+require "baseclient"
+include Socket::Constants
+
+class JishogiTest < ReadFileClient
+ def test_jishogi_kachi
+ csa = File.open(filepath("jishogi_kachi.csa")) {|f| f.read}
+ handshake(csa)
+ cmd2 "%KACHI"
+ sleep 1
+ result1 = read_nonblock(@socket1)
+ result2 = read_nonblock(@socket2)
+ logout12
+ assert_match(/#JISHOGI.#LOSE/m, result1)
+ assert_match(/#JISHOGI.#WIN/m, result2)
+ end
+end # Client class
--- /dev/null
+require 'test/unit'
+load '../shogi-server/shogi-server'
+require 'fileutils'
+
+class TestPersistent < Test::Unit::TestCase
+ def setup
+ @filename = File.join(".", "test.yaml")
+ if File.exists?(@filename)
+ FileUtils.rm(@filename)
+ end
+ @persistent = ShogiServer::League::Persistent.new(@filename)
+ @p = ShogiServer::BasicPlayer.new
+ @p.name = "gps_normal"
+ @p.player_id = "gps_normal_dummy_id"
+ @p.last_game_win = true
+ end
+
+ def test_save_player
+ @persistent.save(@p)
+
+ p2 = ShogiServer::BasicPlayer.new
+ p2.player_id = @p.player_id
+
+ @persistent.load_player(p2)
+ assert_equal(p2.last_game_win, false)
+ end
+
+ def test_empty_yaml
+ count = 0
+ @persistent.each_group do |group, players|
+ count += 1
+ end
+ assert_equal(count, 0)
+ FileUtils.rm(@filename)
+ count = 0
+ @persistent.each_group do |group, players|
+ count += 1
+ end
+ assert_equal(count, 0)
+ end
+
+ def test_load_player
+ filename = File.join(".", "players.yaml")
+ persistent = ShogiServer::League::Persistent.new(filename)
+ p = ShogiServer::BasicPlayer.new
+ p.player_id = "gps_normal+e293220e3f8a3e59f79f6b0efffaa931"
+ persistent.load_player(p)
+
+ assert_equal(p.name, "gps_normal")
+ assert_equal(p.rate, -1752.0)
+ assert_equal(p.modified_at.to_s, "Thu May 08 23:50:54 +0900 2008")
+ assert_equal(p.rating_group, 0)
+ assert_equal(p.win, 3384.04877829976)
+ assert_equal(p.loss, 906.949084230512)
+ end
+
+ def test_get_players
+ filename = File.join(".", "players.yaml")
+ persistent = ShogiServer::League::Persistent.new(filename)
+ players = persistent.get_players
+ assert_equal(players.size, 295)
+ end
+end
+
+
+class TestLeague < Test::Unit::TestCase
+ def setup
+ @league = ShogiServer::League.new
+ @league.dir = "."
+ @league.setup_players_database
+
+ @p = ShogiServer::BasicPlayer.new
+ @p.name = "test_name"
+ end
+
+ def teardown
+ @league.shutdown
+ end
+
+ def test_add_player
+ assert(!@league.find(@p.name))
+ @league.add(@p)
+ assert(@league.find(@p.name))
+ @league.delete(@p)
+ assert(!@league.find(@p.name))
+ end
+
+ def test_reload
+ @league.reload
+ assert(true)
+ end
+end
--- /dev/null
+require 'test/unit'
+load '../shogi-server/shogi-server'
+
+class ShogiServer::BasicPlayer
+ attr_accessor :protocol
+end
+
+
+class TestLogin < Test::Unit::TestCase
+ def setup
+ @p_csa = ShogiServer::BasicPlayer.new
+ @p_csa.name = "hoge"
+ @p_x1 = ShogiServer::BasicPlayer.new
+ @p_x1.name = "hoge"
+ @csa = ShogiServer::LoginCSA.new(@p_csa,"floodgate-900-0,xyz")
+ @x1 = ShogiServer::Loginx1.new(@p_x1, "xyz")
+ end
+
+ def test_player_id
+ assert(@p_x1.player_id == @p_csa.player_id)
+ end
+
+ def test_login_factory_x1
+ player = ShogiServer::BasicPlayer.new
+ player.name = "hoge"
+ login = ShogiServer::Login::factory("LOGIN hoge xyz x1", player)
+ assert_equal(@p_x1.player_id, player.player_id)
+ end
+
+ def test_login_factory_csa
+ player = ShogiServer::BasicPlayer.new
+ player.name = "hoge"
+ login = ShogiServer::Login::factory("LOGIN hoge floodagate-900-0,xyz", player)
+ assert_equal(@p_csa.player_id, player.player_id)
+ end
+
+end
--- /dev/null
+require "baseclient"
+include Socket::Constants
+
+class NotSennichiteTest < ReadFileClient
+ def test_oute_sennichite
+ csa = File.open(filepath("not_sennichite.csa")) {|f| f.read}
+ handshake(csa)
+ #cmd2 "%KACHI"
+ sleep 1
+ result1 = read_nonblock(@socket1)
+ result2 = read_nonblock(@socket2)
+ logout12
+ assert_no_match(/#DRAW/m, result1)
+ assert_no_match(/#DRAW/m, result2)
+ end
+end # Client class
+
--- /dev/null
+require "baseclient"
+include Socket::Constants
+
+class OuteSennichiteTest < ReadFileClient
+ def test_oute_sennichite
+ csa = File.open(filepath("oute_sennichite.csa")) {|f| f.read}
+ handshake(csa)
+ #cmd2 "%KACHI"
+ sleep 1
+ result1 = read_nonblock(@socket1)
+ result2 = read_nonblock(@socket2)
+ logout12
+ assert_match(/#OUTE_SENNICHITE.#LOSE/m, result1)
+ assert_match(/#OUTE_SENNICHITE.#WIN/m, result2)
+ end
+end # Client class
+
--- /dev/null
+require 'test/unit'
+load '../shogi-server/shogi-server'
+
+class TestPlayer < Test::Unit::TestCase
+ def setup
+ @p = ShogiServer::BasicPlayer.new
+ end
+
+ def test_without_password
+ @p.name = "hoge"
+ @p.set_password(nil)
+ assert_nil(@p.player_id)
+ end
+
+ def test_set_password
+ @p.name = "hoge"
+ @p.set_password("abc")
+ assert(@p.player_id)
+ end
+
+ def test_name_atmark
+ @p.name = "hoge@p1"
+ @p.set_password("abc")
+ assert_match(/@/, @p.player_id)
+ end
+
+ def test_rating_group
+ assert_nothing_raised {@p.rating_group = 1}
+ end
+end
+
--- /dev/null
+load '../shogi-server/mk_rate'
+require 'test/unit'
+
+class RatingTest < Test::Unit::TestCase
+ def test_rating1
+ wl = GSL::Matrix[[0,3,9],
+ [1,0,3],
+ [1,1,0]]
+ rating = Rating.new(wl)
+ rating.rating
+ rating.average!
+ rating.integer!
+ assert( rating.rate[0] > rating.rate[1])
+ assert( rating.rate[1] > rating.rate[2])
+ end
+
+ def test_rating2
+ wl = GSL::Matrix[ # \e$B=54)>-4}\e(B2001\e$BG/\e(B9\e$B7n\e(B12\e$BF|9f$N%G!<%?\e(B
+ [ 0, 59, 52, 39, 29, 12], # \e$BL>?M$*$h$S\e(BA\e$B5i\e(B
+ [ 40, 0, 37, 29, 27, 10], # B\e$B5i\e(B1\e$BAH\e(B
+ [ 33, 35, 0, 50, 92, 41], # B\e$B5i\e(B2\e$BAH\e(B
+ [ 21, 19, 51, 0, 140, 80], # C\e$B5i\e(B1\e$BAH\e(B
+ [ 5, 21, 82, 103, 0, 124], # C\e$B5i\e(B2\e$BAH\e(B
+ [ 2, 6, 9, 34, 44, 0], # \e$B%U%j!<%/%i%9\e(B
+ ]
+ rating = Rating.new(wl)
+ assert_nothing_raised {rating.rating}
+ rating.integer!
+ p1, p2, p3, p4, p5, p6 = rating.rate.to_a
+ assert(p1 > p2)
+ assert(p2 > p3)
+ assert(p3 > p4)
+ assert(p4 > p5)
+ assert(p5 > p6)
+ end
+
+ def test_rating3
+ wl = GSL::Matrix[[0, 3, 18],
+ [1, 0, 14],
+ [10, 39, 0]]
+ rating = Rating.new(wl)
+ assert_nothing_raised {rating.rating}
+ rating.integer!
+ p1, p2, p3 = rating.rate.to_a
+ assert( p1 > p2 )
+ assert( p3 > p2 )
+ end
+
+ def test_rank2
+ wl = GSL::Matrix[[0, 3],
+ [1, 0]]
+ rating = Rating.new(wl)
+ rating.rating
+ p1 = rating.rate[0]
+ p2 = rating.rate[1]
+ rating.integer!
+ assert( (180..200).include?(p1 - p2), rating.rate.to_a.inspect )
+ end
+
+ def test_rank3
+ wl = GSL::Matrix[[0, 30, 0],
+ [10, 0, 30],
+ [0, 10, 0]]
+ rating = Rating.new(wl)
+ rating.rating
+ rating.average!
+ rating.integer!
+ p1 = rating.rate[0]
+ p2 = rating.rate[1]
+ rating.integer!
+ assert( rating.rate[0] > rating.rate[1])
+ assert( rating.rate[1] > rating.rate[2])
+ end
+end
+
+
+class TestWinLossMatrix < Test::Unit::TestCase
+ def setup
+ keys = ['a', 'b', 'c']
+ win_loss = GSL::Matrix[[0,2,3],[1,0,1],[1,1,0]]
+ @matrix = WinLossMatrix.new(keys, win_loss)
+ end
+
+ def test_delete_row
+ new_matrix = @matrix.delete_row(1)
+ assert_equal(3, @matrix.size)
+ assert_equal(2, new_matrix.size)
+ assert_equal(['a','c'], new_matrix.keys)
+ assert_equal(GSL::Matrix[[0,3],[1,0]], new_matrix.matrix)
+ end
+
+ def test_delete_rows
+ $deleted = []
+ def @matrix.delete_row(index)
+ $deleted << index
+ self
+ end
+ @matrix.delete_rows([0,1])
+ assert_equal([1,0], $deleted)
+ end
+
+ def test_connected_subsets
+ array = %w!
+ 0 0 0 0 0 2 9 74 0 0 0
+ 0 0 0 0 21 0 0 0 0 0 0
+ 0 0 0 0 19 0 0 0 0 0 0
+ 0 0 0 0 13 0 0 0 0 0 0
+ 0 19 20 27 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 0 0 5
+ 1 0 0 0 0 0 0 0 0 0 9
+ 5 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 6
+ 0 0 0 0 0 0 0 0 0 0 1
+ 0 0 0 0 0 1 1 0 28 1 0!.map{|v| v.to_i}
+ keys = ["gps+11648e4e66e7ed6a86cb7f1d0cf604fe",
+ "gps1_wPrBn_hand+cf51828e1e4351eea9a70e754b8e5edc",
+ "gps1_wPrBn_simple+d6c7d5e4acfb4a21072824d3be07c6dc",
+ "gps1_woPrBn+ea563881afd2e56d3dd715538d2da850",
+ "gps2_wPrBn_mem+dbd8165c47a193b7e76fa9adb3b4e445",
+ "gps32+aa0ba6bfbd84caa7ef1cda34562ce90c",
+ "gps500+0706915e56798d393c9aec4749789b2f",
+ "guest+068b4eb12b042a72e1c7791344175d82",
+ "guest+471a3f6aea2804130b5b967e8a42ea3c",
+ "kaneko+4cee2e6a81fea84316b13626e705e431",
+ "yowai_gps+95908f6c18338f5340371f71523fc5e3"]
+ win_loss = GSL::Matrix.alloc(array, 11, 11)
+ obj = WinLossMatrix.new(keys, win_loss)
+ objs = obj.connected_subsets
+ assert_equal(2, objs.size)
+ end
+end
+
+# vim: ts=2 sw=2 sts=0
+
--- /dev/null
+require "baseclient"
+include Socket::Constants
+
+class UchifuzumeTest < ReadFileClient
+ def test_uchifuzume
+ csa = File.open(filepath("uchifuzume.csa")) {|f| f.read}
+ handshake(csa)
+ cmd2 "-0064FU"
+ cmd "%TORYO"
+ sleep 1
+ result1 = read_nonblock(@socket1)
+ result2 = read_nonblock(@socket2)
+ logout12
+ assert_match(/#ILLEGAL_MOVE.*#WIN/m, result1)
+ assert_match(/#ILLEGAL_MOVE.*#LOSE/m, result2)
+ end
+
+ def est_not_uchifuzume
+ csa = File.open(filepath("not_uchifuzume.csa")) {|f| f.read}
+ handshake(csa)
+ cmd2 "-0092FU"
+ cmd "%TORYO"
+ sleep 1
+ result1 = read_nonblock(@socket1)
+ result2 = read_nonblock(@socket2)
+ logout12
+ assert_match(/#LOSE/m, result1)
+ assert_match(/#WIN/m, result2)
+ end
+end # Client class
+
--- /dev/null
+require 'socket'
+require 'stringio'
+require 'test/unit'
+
+class BaseClient < Test::Unit::TestCase
+ def setup
+ port = 4000
+ params = {"Host" => "localhost", "Port" => port, "Prompt" => //}
+ @socket1 = TCPSocket.open("localhost", port)
+ @socket2 = TCPSocket.open("localhost", port)
+ end
+
+ def teardown
+ @socket1.close
+ @socket2.close
+ end
+
+ def login
+ classname = self.class.name
+ cmd "LOGIN sente#{classname} dummy x1"
+ cmd "%%GAME test#{classname}-1500-0 +"
+
+ cmd2 "LOGIN gote#{classname} dummy2 x1"
+ cmd2 "%%CHALLENGE test#{classname}-1500-0 -"
+ end
+
+ def agree
+ cmd "AGREE"
+ sleep 0.5
+ cmd2 "AGREE"
+ end
+
+ def handshake
+ login
+
+ sleep 2 # to wait for game matching
+
+ agree
+
+ cmd "+2726FU"
+ cmd2 "-3334FU"
+
+ yield if block_given?
+ sleep 2
+ result = cmd "LOGOUT"
+ result2 = cmd2 "LOGOUT"
+ result += read_nonblock(@socket1)
+ result2 += read_nonblock(@socket2)
+ [result, result2]
+ end
+
+ def read_nonblock(io)
+ sleep 0.05
+ str = ""
+ begin
+ loop do
+ str << io.read_nonblock(64)
+ end
+ rescue Errno::EAGAIN
+ # do nothing
+ rescue EOFError
+ # do nothing
+ end
+ str
+ end
+
+ def cmd(s)
+ # read the previous return
+ str = read_nonblock(@socket1)
+ @socket1.puts s if s && ! @socket1.closed?
+ str
+ end
+
+ def cmd2(s)
+ # read the previous return
+ str = read_nonblock(@socket2)
+ @socket2.puts s if s && ! @socket2.closed?
+ str
+ end
+
+ def logout12
+ cmd "LOGOUT"
+ cmd2 "LOGOUT"
+ sleep 1
+ end
+
+ def logout21
+ cmd2 "LOGOUT"
+ cmd "LOGOUT"
+ sleep 1
+ end
+
+ def test_dummy
+ assert true
+ end
+end
+
+
+class ReadFileClient < BaseClient
+ def filepath(csa_file_name)
+ return File.join(File.dirname(__FILE__), "csa", csa_file_name)
+ end
+
+ def handshake(csa)
+ login
+ sleep 1
+ agree
+ sleep 1
+
+ csa_io = StringIO.new(csa)
+ while line = csa_io.gets do
+ case line
+ when /^\+\d{4}\w{2}/
+ cmd $&
+ when /^\-\d{4}\w{2}/
+ cmd2 $&
+ end
+ end
+ end
+end # ReadFileClient
--- /dev/null
+V2
+N+gps9_p
+N-gps8_pgsklp
+$EVENT:wdoor+pgsklp_32-0-30+gps9_p+gps8_pgsklp+20060428070035
+$START_TIME:2006/04/28 07:00:35
+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
++
++7776FU
+T2
+'** 0
+-8384FU
+T1
+'** 0
++7968GI
+T1
+'** 0
+-3334FU
+T1
+'** 0
++6766FU
+T1
+'** 0
+-7162GI
+T1
+'** 0
++5756FU
+T1
+'** 0
+-5354FU
+T1
+'** 0
++3948GI
+T1
+'** 0
+-3142GI
+T1
+'** 0
++4958KI
+T1
+'** 0
+-4132KI
+T1
+'** 0
++6978KI
+T1
+'** 0
+-5141OU
+T1
+'** 0
++5969OU
+T1
+'** 0
+-6152KI
+T1
+'** 0
++6877GI
+T1
+'** 0
+-4233GI
+T1
+'** 0
++8879KA
+T1
+'** 0
+-2231KA
+T1
+'** 0
++3736FU
+T1
+'** 0
+-4344FU
+T1
+'** 0
++5867KI
+T1
+'** 0
+-7374FU
+T1
+'** 0
++4837GI
+T1
+'** 0
+-3164KA
+T1
+'** 0
++7968KA
+T1
+'** 0
+-5243KI
+T1
+'** 0
++6979OU
+T1
+'** 0
+-4131OU
+T1
+'** 0
++2726FU
+T23
+'** 9 -3122OU +1716FU -6253GI +4746FU -9394FU +7988OU -8485FU +2625FU
+-3122OU
+T23
+'** 9 +7988OU -8173KE +2625FU -7385KE +7786GI -9394FU +4746FU -6473KA
++4746FU
+T24
+'** 0 -8173KE +7988OU -6442KA +2625FU -6364FU +1716FU -9394FU +7786GI
+-8173KE
+T24
+'** -28 +7988OU -6442KA +3748GI -6364FU +2937KE -6263GI +1716FU -9394FU
++1716FU
+T24
+'** 0 -9394FU +7988OU -9495FU +2625FU -6442KA +1615FU -8485FU %PASS
+-6442KA
+T11
+'** -31 +1615FU -6364FU +2625FU -6465FU +6665FU -7365KE +7766GI -0064FU
++1615FU
+T18
+'** -3 -6364FU +7988OU -6263GI +2625FU -8485FU +3726GI %PASS
+-6364FU
+T5
+'** -28 +2625FU -6465FU +6665FU %PASS
++2625FU
+T15
+'** -6 -9394FU +3726GI -6263GI +9796FU %PASS
+-6465FU
+T16
+'** -34 +6665FU %PASS
++6665FU
+T15
+'** 31 -8485FU +7766GI -9394FU +3726GI %PASS
+-9394FU
+T23
+'** -67 +6766KI -6263GI +3726GI -9495FU +7786GI -8485FU +8677GI -8252HI
++3726GI
+T1
+'** 34 %PASS
+-9495FU
+T23
+'** 156 +7766GI -8485FU +7988OU -6263GI %PASS
++6766KI
+T23
+'** 140 -9193KY +7675FU -6263GI +6857KA -9596FU +9796FU -8292HI +7786GI
+-9193KY
+T13
+'** 156 %PASS
++7675FU
+T23
+'** 137 -6263GI +6857KA -2231OU +7776GI -8292HI +7574FU -6374GI +0075FU
+-8292HI
+T1
+'** 165 +7969OU -6263GI +7776GI -8485FU +6979OU -7475FU +6675KI -9596FU
++8786FU
+T14
+'** 165 -6263GI +7776GI -4231KA +7574FU -6374GI +0075FU -7483GI
+-6263GI
+T18
+'** 187 +7776GI %PASS
++7776GI
+T6
+'** 187 -4231KA +7988OU -3142KA %PASS
+-4253KA
+T24
+'** 112 +7988OU -5342KA +7887KI -4253KA +7574FU -6374GI +0075FU -7483GI
++7988OU
+T25
+'** 206 %PASS
+-2231OU
+T1
+'** 228 +7887KI -5342KA +6857KA %PASS
++7574FU
+T22
+'** 253 -6374GI +0075FU -7463GI +7687GI -0074FU +6857KA -5342KA %PASS
+-6374GI
+T23
+'** 259 +0075FU -7463GI +5655FU -5455FU +6655KI -9596FU +9796FU -0098FU
++0075FU
+T1
+'** 153 -7483GI +5655FU -9596FU +9796FU -5455FU +6655KI -5342KA +7887KI
+-7463GI
+T25
+'** 256 +2937KE -0064FU +6564FU -5364KA +8685FU -9596FU +9796FU -7385KE
++7887KI
+T1
+'** 228 -3122OU +6857KA -0064FU +6564FU -5364KA +0065FU -6453KA +3635FU
+-0064FU
+T24
+'** 243 +6564FU -5364KA +0065FU -6453KA +8977KE -0064FU +6564FU -5364KA
++6564FU
+T23
+'** 268 -5364KA +2937KE -6442KA +6667KI -2324FU +2524FU -3324GI +0025FU
+-5364KA
+T1
+'** 379 +0065FU -6453KA +8977KE
++0065FU
+T22
+'** 71 -6442KA +8878OU -0074FU +7574FU -6374GI +0075FU -7463GI +6857KA
+-6453KA
+T1
+'** 231 +8977KE -0064FU +6564FU -5364KA +0065FU -6453KA +8878OU -0064FU
++6857KA
+T24
+'** 237 -3122OU +2818HI -1314FU +5768KA -1415FU +2615GI -1115KY +1815HI
+-3122OU
+T13
+'** 231 +3635FU -3435FU +8685FU -7385KE +0086FU -8597NK +8797KI -3334GI
++8977KE
+T23
+'** 221 -5342KA +8878OU -0064FU +6564FU -4264KA +0065FU -6453KA
+-0064FU
+T1
+'** 221 +6564FU -5364KA +8685FU -7385KE +7785KE -8485FU +0084FU -6372GI
++6564FU
+T19
+'** 203 -5364KA +0065FU -6442KA +2838HI -0074FU +7574FU -6374GI +0075FU
+-5364KA
+T1
+'** 409 +2848HI -6453KA +0065FU -0074FU +7574FU -6374GI +0075FU -7463GI
++8685FU
+T24
+'** 268 -7385KE +7785KE -8485FU +0084FU -8586FU +8786KI -9282HI +0083KE
+-8485FU
+T19
+'** 193 +0065FU -6431KA +7785KE -7385KE +7685GI %PASS
++0065FU
+T25
+'** 81 -6442KA +0084FU -9282HI +7785KE -7385KE +7685GI -0073KE +0074KE
+-6431KA
+T1
+'** 190 +7785KE -7385KE +7685GI -0083FU %PASS
++7785KE
+T22
+'** 215 -7385KE +7685GI -9282HI +0086FU -0084FU +8576GI -8292HI +8878OU
+-7385KE
+T1
+'** 275 +7685GI -9282HI +0086FU -0084FU +8576GI
++7685GI
+T23
+'** 194 -9282HI +0086FU -0084FU +8576GI -8292HI %PASS
+-9282HI
+T1
+'** 240 +0086FU -0084FU +8574GI -6374GI +7574FU -8485FU +0071GI -8272HI
++0086FU
+T23
+'** 181 -0084FU +8576GI -8292HI +0077KE -0073FU +8685FU -8485FU +7785KE
+-0084FU
+T1
+'** 212 +8574GI -6374GI +7574FU -8485FU +7473TO -8586FU +8777KI -0087GI
++8576GI
+T24
+'** 186 -3153KA +8878OU -8292HI +2818HI -1112KY +0067KE -0064FU +6564FU
+-0064FU
+T23
+'** 228 +6564FU -3164KA +7665GI -8485FU +8685FU -6453KA +6576GI -5364KA
++6564FU
+T23
+'** 207 -3164KA +7665GI -6442KA
+-6364GI
+T1
+'** 439 +7574FU -0065FU +7665GI -8485FU +8685FU -6465GI +6665KI -8285HI
++1917KY
+T23
+'** 209 -8292HI +2818HI %PASS
+-6473GI
+T15
+'** 296 +2818HI -3142KA +0065FU %PASS
++2818HI
+T23
+'** 268 -8292HI +3635FU -3435FU +0047KE -0064FU +4735KE -4353KI +0034FU
+-8262HI
+T24
+'** 282 +2937KE -6292HI +4645FU -4445FU +3745KE -3344GI +0046FU -7382GI
++1514FU
+T22
+'** 290 -1314FU +0065FU -3153KA +0013FU -1113KY %PASS
+-1314FU
+T23
+'** 153 %PASS
++0065FU
+T1
+'** 117 -3142KA +6667KI -6292HI +6777KI %PASS
+-6272HI
+T18
+'** 121 +0015FU -1415FU +2615GI -0014FU +1526GI %PASS
++2637GI
+T24
+'** 123 -0064FU +0026KE -3142KA +6564FU -7364GI +0065FU -6453GI %PASS
+-3153KA
+T1
+'** 172 +3748GI %PASS
++6667KI
+T22
+'** 228 -7292HI %PASS
+-0064FU
+T24
+'** 181 +0026KE -6465FU +7665GI -0064FU +6576GI -0065KE +5768KA -7292HI
++6777KI
+T17
+'** 181 -6465FU +7574FU -7374GI +5784KA -0075FU +7667GI -6566FU +6766GI
+-6465FU
+T24
+'** 120 +7574FU -7374GI +5784KA -0075FU +7667GI -0076KE +8878OU -6566FU
++7574FU
+T24
+'** 268 -7374GI +5784KA -0075FU +7667GI -6566FU +6766GI -7576FU +8776KI
+-7374GI
+T1
+'** 226 +5784KA -0075KE +8493UM -7587NK +7787KI -0075FU +7667GI -0083KI
++5784KA
+T23
+'** 168 -6566FU +0012FU -1112KY +8493UM -0075FU +7685GI -7485GI +8685FU
+-0075FU
+T1
+'** 295 +7667GI -6566FU +6766GI -0065FU +6657GI -7576FU +8776KI -0075FU
++7667GI
+T24
+'** 208 -6566FU +6766GI -0065FU +6657GI -7576FU +7776KI -0075KE +8777KI
+-0081KE
+T1
+'** 146 +0012FU -1112KY +8451UM -7271HI +5152UM -7576FU +6776GI -3242KI
++8451UM
+T16
+'** 107 -7271HI +5184UM -0083FU +0072FU -7172HI +0073FU -8384FU +7372TO
+-9596FU
+T19
+'** 428 +9796FU -7271HI +5152UM -3242KI +5253UM -4353KI %PASS
++5161UM
+T24
+'** 422 -9697TO +9997KY -9397NY +8797KI -7292HI +0084KE -9293HI +0094FU
+-9697TO
+T23
+'** 661 +9997KY -9397NY +8797KI -7576FU +7776KI -7292HI +1714KY -1114KY
++9997KY
+T1
+'** 168 -9397NY +8797KI -7292HI +0084KE -9293HI +0094KY -9363HI
+-9397NY
+T15
+'** 570 +8797KI -7292HI +0094KY -9282HI +1714KY -1114KY +1814HI -0013KY
++8797KI
+T1
+'** 115 -7282HI +2524FU -3324GI +0026KY -2413GI +1828HI -4333KI +0025KE
+-7292HI
+T24
+'** 570 +0084KE -9293HI +0094KY -9363HI +6172UM -0096FU +9796KI -0097FU
++0094KY
+T1
+'** 212 -0093FU +0084KE -9242HI +8472NK -9394FU +7281NK
+-9242HI
+T20
+'** 259 +9491NY -8173KE +9181NY -0066KY +7766KI -6566FU +6766GI -0065FU
++9491NY
+T24
+'** 346 -8173KE +6151UM -5362KA +5142UM -3342GI +0064HI -0063KA +0012FU
+-8173KE
+T1
+'** 251 +6151UM -0076KY +6776GI -7576FU +7776KI -7475GI +7677KI -7566GI
++0026KE
+T23
+'** 181 -0076KY +7787KI -7677KY +8777KI
+-0076KY
+T23
+'** 143 +6776GI -7576FU +7776KI
++7787KI
+T1
+'** -15 -4241HI +6152UM -4191HI +1714KY -9197RY +8897OU -0094KY +0096FU
+-6566FU
+T23
+'** 96 +6766GI -7465GI +6657GI -4241HI +6172UM -0066FU +7263UM -4191HI
++6766GI
+T1
+'** -268 -7465GI +6665GI -7365KE +2614KE -1114KY +1714KY -0013FU +0077FU
+-7465GI
+T24
+'** 3 +6657GI -4241HI +6172UM -0066FU +7273UM -6667TO +7383UM -4191HI
++6657GI
+T1
+'** -194 -0066FU +5768GI -6556GI +0077FU -6667TO +1714KY -1114KY +2614KE
+-0066FU
+T24
+'** -236 +1714KY -0013FU +0074FU -4241HI +6152UM -4191HI +8776KI -0087FU
++0074FU
+T1
+'** -415 -6667TO +7473TO -4241HI +6183UM -6757TO +8365UM -0079GI +8898OU
+-6667TO
+T14
+'** -565 +7473TO -4241HI +6183UM -6777TO +8777KI -7677NY +8877OU -6576GI
++7473TO
+T23
+'** -631 -4241HI +6183UM -7677NY +8777KI -6777TO +8877OU -6576GI +7788OU
+-4241HI
+T1
+'** -553 +6183UM -4191HI +0092FU -7677NY +8777KI -6777TO +8877OU -6576GI
++6183UM
+T24
+'** -766 -7677NY +8777KI -6777TO +8877OU -6576GI +7788OU -0077KI +8899OU
+-7677NY
+T1
+'** -746 +8777KI -6777TO +8877OU -6576GI +7788OU -0077KI +8899OU -0096FU
++8777KI
+T18
+'** -931 -6777TO +8877OU -6576GI +7788OU -0077KI +8899OU -0096FU +9798KI
+-6777TO
+T1
+'** -818 +8877OU -6576GI +7788OU -0077KI +8899OU
++8877OU
+T14
+'** -858 -6576GI +7788OU -0077KI +8879OU -0087FU +0069KE -4191HI +0092FU
+-6576GI
+T23
+'** -806 +7788OU -0077KI +8899OU
++7788OU
+T1
+'** -815 -0077KI +8879OU -0087FU +0089KE -8788TO +1888HI -4191HI +0092FU
+-0077KI
+T24
+'** -828 +8899OU -4191HI +0092FU -0095KY +0098KY -9597NY +9897KY -0088KI
++8879OU
+T1
+'** -1091 -0087FU +0089KE -8788TO +1888HI -4191HI +0092FU -0087FU +8898HI
+-0087FU
+T24
+'** -912 +0069KE -4191HI +0093KY -9181HI +8372UM
++0089KE
+T23
+'** -1125 -8788TO +1888HI -7788KI +7988OU -0087FU +9787KI -7687NG +8887OU
+-8788TO
+T20
+'** -1218 +1888HI -7788KI +7988OU -0087FU +9787KI -7687NG +8887OU -0067HI
++7969OU
+T23
+'** -1357 -8889TO +6958OU -4191HI +0092FU -9181HI +7382TO -8151HI +5848OU
+-8889TO
+T1
+'** -1218 +6959OU -4191HI +0092FU -9171HI +7363TO -5331KA +1714KY -1114KY
++6958OU
+T13
+'** -1425 -0065KE +5748GI -4191HI +0092FU -9181HI +8372UM -8151HI +5849OU
+-4191HI
+T20
+'** -1300 +0092FU -9181HI +8372UM -8171HI +2614KE -1114KY +1714KY -0013FU
++0092FU
+T13
+'** -1186 -9181HI +8372UM -8171HI +7271UM -7667NG +5848OU -5371KA +0041HI
+-9181HI
+T7
+'** -1121 +8372UM -7667NG +5848OU -6757NG +4857OU -0027GI +1858HI -0065KE
++8372UM
+T23
+'** -1099 -8171HI +7271UM -7667NG +5848OU -5371KA +0041HI -0079KA +4171RY
+-8171HI
+T1
+'** -1043 +7271UM -7667NG +5848OU -5371KA +0051HI -0079KA +5171RY -6757NG
++7271UM
+T12
+'** -953 -7667NG +5848OU -5371KA +0051HI -7193KA +2614KE -1114KY +1714KY
+-5371KA
+T23
+'** -856 +0061HI -7667NG +5847OU -0079KA +0068FU -7997UM +6867FU -0027KI
++0051HI
+T24
+'** -953 -7667NG +5848OU -0079KA +0068FU -0065KE +6867FU -7957UM +4838OU
+-0065KE
+T18
+'** -877 +5171RY -0027KA +0052KA -2718UM +1714KY -6557NK
++5766GI
+T13
+'** -1102 -7767KI +5848OU -6766KI +2614KE -2213OU +5121RY
+-7767KI
+T24
+'** -868 +5848OU -6766KI +1714KY -0047KY +4839OU -0027KA +3928OU -2718UM
++5848OU
+T1
+'** -1214 -6766KI +2614KE -1114KY +1714KY -0013FU +1413NY -2113KE +0014FU
+-6766KI
+T15
+'** -928 +1714KY -0013FU +5171RY -1314FU +4838OU -6656KI %PASS
++2614KE
+T23
+'** -1456 -1114KY +1714KY -0013FU +1413NY -2113KE +5171RY -6557NK +4839OU
+-1114KY
+T24
+'** -1075 +1714KY -0013FU +1413KY -2113KE +0014FU -0011KY +5171RY -6557NK
++1714KY
+T1
+'** -1704 -0013FU
+-6557NK
+T23
+'** -1018 +4839OU -0013FU +1413NY -2113KE +0014KY -3324GI +5171RY
++4838OU
+T23
+'** -1225 -0047GI +3828OU -0013FU +1413NY -2113KE +5171RY -6656KI +0011KA
+-0047GI
+T12
+'** -197 +3828OU -0027KY +2827OU -0013FU +1413NY -2113KE +1813RY -2213OU
++3827OU
+T23
+'** -459 -0013FU
+-0016FU
+T1
+'** -185 +1816HI -0038KA +2726OU -0011KY +1411NY -3816UM +2616OU -2211OU
++1816HI
+T24
+'** -375 -3324GI +5171RY -0038KA +2718OU -3233KI +2524FU -3816UM +0031KA
+-0038KA
+T24
+'** -179 +2726OU -3231KI +5171RY -6656KI +0013FU -0011FU +1312TO -1112FU
++2726OU
+T24
+'** -379 -3231KI +5171RY -6656KI +1412NY -2232OU +0052KA -4342KI +5263UM
+-3324GI
+T1
+'** -343 +2524FU -2324FU +0023FU -3223KI +1412NY -2233OU +5131RY -0032KY
++2524FU
+T15
+'** -240 -3816UM +2616OU -2233OU
+-2324FU
+T7
+'** 118 +5171RY -0025KY +2615OU -3816UM +1516OU -0013FU +0026FU -1314FU
++0023FU
+T14
+'** -59 -3223KI +1412NY -2233OU +5131RY -0032KY +3121RY
+-3223KI
+T23
+'** -25 +1412NY -2233OU +5131RY -0032KE +2617OU -0025KY +0028FU -7667NG
++1412NY
+T2
+'** -865 -2233OU +5131RY -0032KE +0022GI -2322KI +3122RY
+-2233OU
+T23
+'** -218 +5131RY -0032KE +2617OU -3816UM +1716OU -0018HI +0017GI -0015FU
++5131RY
+T1
+'** -1029 -0032KE +0027FU -2425FU +2617OU -0015FU +1615HI -0014KY +1514HI
+-0032KE
+T23
+'** -293 +0022GI -2322KI +3122RY -3342OU +0052KI -4252OU +2232RY -5253OU
++0022GI
+T1
+'** -1702 -2322KI +3122RY -3342OU +1615HI -0025KY +1525HI
+-2322KI
+T1
+'** -364 +3122RY -3342OU +0052KI -4252OU +2232RY -5253OU +0017KE
++3122RY
+T19
+'** -2293 -3342OU +0027FU -0025GI +2617OU -4445FU +0053KY -7153KA +0035KY
+-3342OU
+T1
+'** -476 +2917KE -0025KY +1725KE -2425FU
++0025FU
+T23
+'** -1320 -2425FU +2625OU -0024GI +2514OU -3816UM +1221NY
+-2425FU
+T23
+'** -1640 +2625OU -0024GI +2224RY -3816UM +2516OU -3224KE
++2625OU
+T1
+'** -1682 -0024GI +2514OU -3816UM +0052KI -4252OU +2232RY -0042KY +0064KE
+-0024GI
+T13
+'** -1671 +2224RY -3816UM +2516OU -3224KE
++2514OU
+T23
+'** -2271 -3816UM +0052KI -4252OU +2232RY -0042KI +0064KE -5253OU +3221RY
+-3816UM
+T1
+'** -2219 +0026KI -4333KI +2616KI -0013FU +1213NY -2413GI +2213RY -0024HI
++0052KI
+T14
+'** -2479 -4252OU +2232RY -0042KI +0064KE -5253OU +3221RY -5364OU +2171RY
+-4252OU
+T1
+'** 15081406 +2232RY
++2232RY
+T23
+'** -2479 -0042KI +0064KE -5253OU +1423OU -4738NG +9291TO %PASS
+-0042KY
+T1
+'** -3512 +0064KE -5253OU +1423OU -0033KI +2322OU -3332KI
++0064KE
+T19
+'** -3676 -5253OU +1423OU -0033KI +2322OU -3332KI +2232OU -5364OU +0072FU
+-5253OU
+T4
+'** -1992 +3221RY -4333KI +2151RY -5364OU +5161RY -6473OU +6171RY -7363OU
++1423OU
+T23
+'** -3659 -0033KI +3233RY -4333KI +2322OU -5364OU
+-0033KI
+T24
+'** -3893 +3233RY -4333KI +2322OU -5364OU +0019KY -1649UM +0072KI -0023HI
++3233RY
+T1
+'** -3790 -4333KI +2322OU -5364OU +0072FU -0032HI +2211OU -7193KA +0063KI
+-4333KI
+T24
+'** -3742 +2322OU -5364OU +0072FU -7193KA +7383TO -0067HI +8393TO -6797RY
++2322OU
+T1
+'** -3921 -5364OU +0072FU -0051HI +7271TO -5171HI +0063KI
+-5364OU
+T17
+'** -937 +0072FU -7193KA +7383TO -0067HI +9796KI -6787RY
++0072FU
+T6
+'** -3458 -7153KA +0063KI -6465OU +6353KI -6556OU +5342KI %PASS
+-7193KA
+T23
+'** -1031 +7383TO -3435FU +0025FU -0032HI +2211OU -1625UM
++7383TO
+T1
+'** -3302 -0032HI +2211OU -3435FU +0025FU -3536FU +8393TO
+-3435FU
+T24
+'** -3217 +3635FU -0036FU +3728GI -0027FU +2817GI -1643UM
++3635FU
+T24
+'** -3483 -1643UM +2211OU -3332KI +8393TO -4333UM +0022KA
+-0036FU
+T14
+'** -3320 +8393TO -3637TO +7271TO
++8393TO
+T24
+'** -3339 -1643UM +2211OU -3637TO +0014FU -0032GI +2937KE
+-3637TO
+T1
+'** -3518 +0025FU -0032HI +2211OU -2435GI
++2211OU
+T23
+'** -3596 -6465OU +0022FU -6556OU +2221TO
+-0023GI
+T13
+'** -3458 +1222NY -6465OU
++0022KI
+T6
+'** -3443 -1643UM +2937KE -0036FU +1221NY
+-2312GI
+T24
+'** -3282 +2212KI -5756NK +0082KA -6453OU
++2212KI
+T1
+'** -3447 -4756NG
+-0099HI
+T23
+'** -3117 +0022FU -9997RY +2221TO -6465OU
++0098KY
+T22
+'** -3256 -0096FU +0022FU -9697TO +2221TO
+-0096FU
+T24
+'** -3478 %PASS
++0022FU
+T12
+'** -3903 -9697TO +2221TO -9998RY +2937KE
+-1643UM
+T6
+'** -3759 +9796KI -9998RY %PASS
++0067FU
+T16
+'** -3626 -7667NG +2221TO -9697TO +9897KY
+-5767NK
+T14
+'** -3978 +9796KI -9998RY %PASS
++0068FU
+T23
+'** -3912 -6768NK +2221TO -9697TO +9897KY -9997RY +2937KE
+-6768NK
+T19
+'** -4254 +9796KI -9998RY +1221KI -9896RY
++2221TO
+T24
+'** -4400 -9697TO +0034KY -9998RY +3433NY -4333UM +0022GI
+-9697TO
+T18
+'** -4212 +9291TO
++0034KY
+T5
+'** -4434 -6465OU +3433NY -2433GI +0083KA -0074KY +2937KE
+-9998RY
+T22
+'** -4401 +2937KE
++3433NY
+T1
+'** -4456 -4333UM +0022GI -3332UM +0034KI
+-2433GI
+T24
+'** -4584 +0084KI %PASS
++0084KI
+T15
+'** -4282 %PASS
+-0063KI
+T19
+'** -4064 +9291TO -6656KI +2937KE -6455OU
++2937KE
+T23
+'** -3978 -4756NG +0034GI -3334GI +3534FU -4334UM +0026KE
+-6465OU
+T1
+'** -4145 +0041KA -6556OU %PASS
++0025KA
+T13
+'** -4594 -6556OU +2543UM -4243KY +0041KA -5646OU +4163UM
+-6556OU
+T24
+'** -4596 +2543UM -4243KY +0041KA -6353KI +4123UM -5646OU +2333UM -4637OU
++2543UM
+T1
+'** -4590 -4243KY +0041KA -6353KI +4132UM -5646OU +3233UM
+-4243KY
+T19
+'** -4651 +0032KA -6353KI +3223UM -5646OU +2333UM -4637OU
++0041KA
+T1
+'** -4656 -6353KI +4123UM -5646OU +2333UM
+-0062HI
+T13
+'** -4453 +4123UM -5646OU +2333UM -0078KA
++0051GI
+T13
+'** -3906 -6261HI +4152UM -6151HI +5251UM
+-6261HI
+T23
+'** -4187 +4123UM -5646OU +2333UM -4637OU +7271TO -6171HI +9382TO -7161HI
++4123UM
+T1
+'** -4301 -5646OU +2333UM -4637OU +0052GI -6181HI +5263NG
+-5646OU
+T24
+'** -3770 +2333UM -4637OU +7271TO -6171HI +9382TO -7151HI +3351UM -3748OU
++2333UM
+T1
+'** -4378 -4637OU +0052GI %PASS
+-4637OU
+T24
+'** -3706 +7271TO -6171HI +9382TO -7151HI +3351UM -3748OU
++0052GI
+T1
+'** -3828 -0041KE +3315UM -3736OU +5261NG
+-6181HI
+T24
+'** -3859 +5263NG -8184HI +3343UM -0038FU +7271TO -3839TO
++5263GI
+T1
+'** -3862 -3738OU +9291TO -8184HI +3343UM
+-8184HI
+T12
+'** -3879 +3343UM -8486HI +9291TO
++3343UM
+T11
+'** -4073 -3748OU +7271TO -0023KI +2122TO
+-8486HI
+T23
+'** -3865 +3534FU -8687RY +9291TO -3748OU
++6354NG
+T1
+'** -3808 -7667NG +9291TO -8688RY +7271TO
+-0053FU
+T13
+'** -3811 +4344UM -7667NG
++5453NG
+T10
+'** -3675 -8688RY +7271TO -8884RY +0029KY
+-0057FU
+T12
+'** -3682 +9291TO -8688RY
++3534FU
+T23
+'** -3637 %PASS
+-5758TO
+T23
+'** -3568 +3433TO -3748OU +4344UM -4756NG
++4344UM
+T1
+'** -3533 -4756NG +3433TO -8688RY +4435UM
+-4756NG
+T23
+'** -3687 +7271TO -3748OU +4426UM -4857OU
++9291TO
+T1
+'** -3665 -8687RY +4454UM -3738OU +3433TO
+-8687RY
+T23
+'** -3789 +3433TO -3748OU +4426UM -0037KA
++7271TO
+T12
+'** -3810 -8784RY +5343NG -7667NG +3433TO
+-8784RY
+T23
+'** -3888 +3433TO -8444RY +3343TO -4435RY +5162NG -3746OU
++0064FU
+T1
+'** -4045 -8493RY +6463TO -9391RY +5162NG %PASS
+-8493RY
+T20
+'** -3964 +6463TO -9391RY +3433TO -9171RY
++7181TO
+T1
+'** -3937 %PASS
+-0046FU
+T16
+'** -3935 +6463TO -4647TO +3433TO -3748OU
++3433TO
+T23
+'** -3859 -0041KE +6463TO -4647TO +5354NG -9394RY +6364TO
+-3748OU
+T13
+'** -3906 +4426UM -4857OU +6463TO -4647TO
++6463TO
+T24
+'** -3968 -4647TO +5142NG -0018FU +4426UM -4857OU +2635UM
+-4647TO
+T18
+'** -3993 +5142NG -0038FU +4426UM -4857OU +2635UM -5748OU
++0024FU
+T5
+'** -4012 -0038FU +2423TO -3839TO +0042FU %PASS
+-0037FU
+T23
+'** -4024 +0039FU -9384RY +0054FU -0027FU +4426UM -2728TO
++4426UM
+T24
+'** -4023 -4857OU +2635UM -5767OU +2423TO -3738TO +3534UM
+-4857OU
+T15
+'** -3915 +2635UM -5767OU +2423TO -3738TO %PASS
++2635UM
+T8
+'** -4004 -5767OU +2423TO -3738TO +0014FU -0048FU +0042FU -4849TO +1413TO
+-5748OU
+T23
+'** -4018 +2423TO -3738TO +0042FU -0027FU +3526UM -4737TO +4241TO -2728TO
++3526UM
+T23
+'** 0
+-0025FU
+T1
+'** 0 +2615UM -0017KA +2423TO -0041KE +5354NG -1726UM
++2615UM
+T22
+'** -3968 -0041KE +5354NG -0027KA +5464NG -2736UM +2423TO -3626UM +1526UM
+-0017KA
+T1
+'** -3884 +2423TO -1726UM +1526UM -2526FU +0028FU -3738TO +0071KA -9383RY
++2423TO
+T20
+'** -3840 -1726UM +1526UM -2526FU +0061KA -9396RY +6116UM -3738TO +5142NG
+-1726UM
+T2
+'** -3918 +1526UM -2526FU +0061KA -0083FU +6116UM -3738TO +5162NG -7687NG
++1526UM
+T13
+'** -3987 -2526FU +0061KA -9384RY +6116UM -3738TO +0044FU -4857OU +4443TO
+-2526FU
+T10
+'** -3597 +0061KA -0083FU +6116UM -3738TO +5142NG -7667NG +1626UM -4857OU
++0061KA
+T13
+'** -3979 -9384RY +6116UM -3738TO +1626UM -4857OU +2635UM -5767OU +3525UM
+-0041KI
+T15
+'** -3795 +0042KI -0052FU +0094FU -9384RY +6352TO -4142KI
++5142NG
+T22
+'** -3773 -4142KI +3342TO -9384RY +1122OU -0034KA +6172UM -8444RY +0033KI
+-4142KI
+T15
+'** -3615 +3342TO -9384RY +0094KI -8444RY %PASS
++3342TO
+T7
+'** -3867 -9384RY +1122OU -0034KA +6134UM -8434RY +0033KI -3444RY +0043KI
+-9384RY
+T10
+'** -3662 +6125UM -0044KA +0033KY -2627TO +4243TO -4417UM
++1122OU
+T13
+'** -3772 -0034KA +6172UM -3738TO +0033KI -3425KA +4243TO
+-2627TO
+T20
+'** -3815 +6116UM -0044KA +0033FU -2726TO +0049FU
++6116UM
+T12
+'** -3748 -3738TO
+-0026FU
+T23
+'** -3748 +0034FU -3738TO +3433TO -7667NG +0062FU -7576FU +6261TO -7677TO
++0034FU
+T24
+'** -3880 -3738TO +3433TO -8414RY +0015FU -1444RY +1634UM -4446RY +3425UM
+-3738TO
+T24
+'** -3737 +3433TO -8444RY +0052FU -0018FU +4243TO -4435RY +5251TO -1819TO
++3433TO
+T14
+'** -3845 -8414RY +0015FU -1444RY +1634UM -4446RY +3425UM
+-7667NG
+T9
+'** -3731 +0052FU -0018FU +0062FU -7576FU +5251TO -1819TO +6261TO -7677TO
++0052FU
+T23
+'** -3725 -7576FU +0062FU -0036FU +5251TO -7677TO +6261TO -3637TO +1625UM
+-7576FU
+T1
+'** -3750 +0073FU -7677TO +7372TO -0017FU +5251TO -1718TO +7261TO -1817TO
++0062FU
+T24
+'** -3778 -0036FU +2232OU -7677TO +6261TO -8414RY +0015KY -1474RY +5251TO
+-0036FU
+T22
+'** -3750 +5251TO -7677TO +2232OU -3637TO +4243TO -8414RY +0015KY -1484RY
++2232OU
+T1
+'** -3787 -7677TO +6261TO -9888RY %PASS
+-8414RY
+T14
+'** -3753 +0015KY -1444RY +5251TO -7677TO +6261TO -3637TO
++0015KY
+T19
+'** -3784 -1474RY +5251TO -3637TO +1222KI -7677TO +6261TO -0087KA +3241OU
+-1444RY
+T4
+'** -3781 +5251TO -7677TO +6261TO -4445RY +1513NY -3637TO +3241OU -0015KY
++5251TO
+T24
+'** -3775 -3637TO +6261TO -4435RY +1513NY -7677TO +5343NG -0015GI +1634UM
+-3637TO
+T1
+'** -3771 +6261TO -7677TO +3241OU -4446RY +1625UM -9888RY +1513NY
++1513NY
+T21
+'** -3831 -7677TO +6261TO -0087KA +3241OU -8796UM +1643UM -4445RY +4398UM
+-4446RY
+T16
+'** -3864 +6261TO -2717TO +1625UM -7677TO %PASS
++3241OU
+T23
+'** -4006 -2717TO +1643UM -7677TO +6261TO -2627TO +4398UM -9798TO
+-7677TO
+T23
+'** -4087 +1643UM -9888RY +1322NY -0087KA +2232NY -2717TO +6261TO -8743UM
++6261TO
+T23
+'** -4081 -2728TO +1222KI -2627TO +1615UM -4635RY +1314NY -3565RY +1516UM
+-2728TO
+T13
+'** -4090 +1625UM -2627TO +8171TO -0087KA +2524UM -4645RY +2414UM -8796UM
++1615UM
+T9
+'** -4093 -2627TO +1524UM -4645RY +4243TO -4565RY +4152OU -6574RY +5242OU
+-2627TO
+T14
+'** -4098 +8182TO -9887RY +9181TO -8785RY +1514UM -8565RY +0059KE -5859TO
++4243TO
+T10
+'** -4131 -4635RY +1314NY -0017KA +2324TO -1726UM +1526UM -2726TO +0083KA
+%KACHI
+'P1+TO+TO * +TO+TO+OU * +TO *
+'P2 * * * * * * * * +KI
+'P3 * * * +TO+NG+TO+TO+TO+NY
+'P4 * * * * * * * * *
+'P5 * * * * * * * * +UM
+'P6 * * * -KI-NG-RY * * *
+'P7-TO * -TO-NG * -TO-TO-TO *
+'P8-RY * * -NK-TO-OU-TO-TO *
+'P9 * -TO * * * * * * *
+'P+00KE00KI00KI
+'P-00GI00KA00KE00KE00KY00KY00KY
+'+
+'summary:illegal kachi:gps8_pgsklp lose:gps9_p win
+'$END_TIME:2006/04/28 08:11:15
--- /dev/null
+V2
+N+garyu
+N-coredump
+$EVENT:wdoor+floodgate-900-0+garyu+coredump+20080316040009
+$START_TIME:2008/03/16 04:00:07
+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
++
++7776FU
+T1
+-8384FU
+T1
++7968GI
+T1
+-3334FU
+T1
++6877GI
+T1
+-7162GI
+T1
++2726FU
+T1
+-3142GI
+T1
++3948GI
+T1
+-5354FU
+T1
++5756FU
+T1
+-4132KI
+T1
++6978KI
+T1
+-5141OU
+T1
++5969OU
+T1
+-6152KI
+T1
++4958KI
+T1
+-4131OU
+T17
++2625FU
+T20
+-2233KA
+T1
++6766FU
+T20
+-4344FU
+T19
++8879KA
+T12
+-3122OU
+T3
++7968KA
+T20
+-4243GI
+T10
++6979OU
+T4
+-6253GI
+T13
++3736FU
+T16
+-7374FU
+T3
++4837GI
+T20
+-8173KE
+T19
++5867KI
+T20
+-5364GI
+T1
++7788GI
+T30
+-9394FU
+T19
++9796FU
+T15
+-8281HI
+T19
++1716FU
+T18
+-5455FU
+T19
++2524FU
+T14
+-2324FU
+T19
++5655FU
+T1
+-4445FU
+T18
++5554FU
+T1
+-4354GI
+T11
++0025FU
+T20
+-2425FU
+T14
++2825HI
+T5
+-0023FU
+T14
++0024FU
+T6
+-2324FU
+T18
++6824KA
+T1
+-3324KA
+T17
++2524HI
+T2
+-0023FU
+T16
++2428HI
+T3
+-5443GI
+T14
++0024FU
+T20
+-2324FU
+T15
++2824HI
+T4
+-0023FU
+T14
++2428HI
+T5
+-5242KI
+T14
++0072KA
+T20
+-8151HI
+T12
++0057FU
+T2
+-4354GI
+T13
++7283UM
+T11
+-5181HI
+T4
++8374UM
+T15
+-4243KI
+T1
++0024FU
+T10
+-2324FU
+T16
++2824HI
+T1
+-0023FU
+T16
++2428HI
+T1
+-8182HI
+T18
++0024FU
+T11
+-2324FU
+T14
++2824HI
+T1
+-0023FU
+T12
++2428HI
+T2
+-8281HI
+T16
++0024FU
+T15
+-2324FU
+T9
++2824HI
+T6
+-0023FU
+T13
++2428HI
+T2
+'P1-KY-HI * * * * * -KE-KY
+'P2 * * * * * * -KI-OU *
+'P3 * * -KE-FU * -KI * -FU-FU
+'P4-FU-FU+UM-GI-GI * -FU+HI *
+'P5 * * * * * -FU * * *
+'P6+FU * +FU+FU * * +FU * +FU
+'P7 * +FU * +KI+FU+FU+GI * *
+'P8 * +GI+KI * * * * * *
+'P9+KY+KE+OU * * * * +KE+KY
+'P+00FU
+'P-00FU00FU00KA
+'+
+'summary:sennichite:garyu draw:coredump draw
+'rating:#<ShogiServer::GameResultDraw:0xb70be548>
+'$END_TIME:2008/03/16 04:14:42
--- /dev/null
+V2
+N+usapyon-on-note
+N-gps_normal
+$EVENT:wdoor+floodgate-900-0+usapyon-on-note+gps_normal+20080215133008
+$START_TIME:2008/02/15 13:30:05
+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
++
++2726FU
+T1
+'** 0 joseki
+-8384FU
+T1
+'** 0
++2625FU
+T1
+'** 0 joseki
+-8485FU
+T1
+'** 0
++6978KI
+T1
+'** 0 joseki
+-4132KI
+T1
+'** 0
++2524FU
+T1
+'** 0 joseki
+-2324FU
+T1
+'** 0
++2824HI
+T1
+'** 0 joseki
+-0023FU
+T1
+'** 0
++2426HI
+T1
+'** 0 joseki
+-7172GI
+T1
+'** 0
++9796FU
+T1
+'** 0 joseki
+-9394FU
+T1
+'** 0
++3938GI
+T1
+'** 0 joseki
+-6364FU
+T1
+'** 0
++1716FU
+T1
+'** 0 joseki
+-1314FU
+T1
+'** 0
++7776FU
+T1
+'** 0 joseki
+-8586FU
+T1
+'** 0
++8786FU
+T1
+'** 0 joseki
+-8286HI
+T1
+'** 0
++0087FU
+T1
+'** 0 joseki
+-8684HI
+T1
+'** 0
++3736FU
+T9
+'** 205 h-3736\95à H-3334\95à S08822\8ap\90¬\8ap\8eæ H-3122\8bâ \94n\8eæ H-75\8ap\91Å H-8474\94ò H-5756\95à
+-0086FU
+T53
+'** 0 +8786FU -8486HI +0024FU -2324FU +2624HI -5152OU +2426HI -3334FU +2937KE -2288UM +7988GI -0023FU +0087FU
++8786FU
+T10
+'** -42 H-8786\95à \95à\8eæ H-8486\94ò \95à\8eæ h-87\95à\91Å H-8676\94ò \95à\8eæ SQ2937\8cj H-7674\94ò H-24\95à\91Å H-7484\94ò H-2423\95à\90¬\95à\8eæ
+-8486HI
+T5
+'** -15 +0024FU -2324FU +2624HI -5152OU +7877KI -8685HI +0086FU -8584HI +2425HI -0023FU +8685FU -8482HI
++3635FU
+T4
+'** -61 h-3635\95à H-8684\94ò H-87\95à\91Å H-6465\95à h-6766\95à H-2213\8ap H-2636\94ò H-8464\94ò
+-2213KA
+T27
+'** -82 +2636HI -8685HI +1615FU -0086FU +1514FU -8687TO +7887KI -8587RY +1413TO -1113KY +1913NY
++2656HI
+T10
+'** -85 h-2656\94ò S36152\8bà H-87\95à\91Å H-8685\94ò H-3534\95à h-3142\8bâ h-3433\95à\90¬\95à\8eæ at4233\8bâ \94n\8eæ
+-1335KA
+T14
+'** -53 +0036FU -8688RY +7988GI -3544KA +0082FU -0087FU +8887GI -4499UM +5653RY -0052KY +5364RY
++0087FU
+T7
+'** 176 h-87\95à\91Å S28682\94ò h-36\95à\91Å S33524\8ap H-5653\94ò\90¬\95à\8eæ S16152\8bà S55355\97³ H-53\95à\91Å
+-8685HI
+T11
+'** 171 +8997KE -8582HI +0036FU -3526KA +3837GI -2637UM +2937KE -0054GI +7968GI -7263GI +5969OU
++0036FU
+T9
+'** 461 H-36\95à\91Å S33524\8ap H-5653\94ò\90¬\95à\8eæ S16152\8bà F-5354\97³ H-53\95à\91Å F-5424\97³ \8ap\8eæ H-2324\95à \97³\8eæ F-8997\8cj
+-3526KA
+T11
+'** -156 +5958OU -3142GI +5655HI -8555HI +8855KA -2644KA +5544KA -4344FU +8977KE -5141OU %PASS
++3837GI
+T11
+'** 393 H-3837\8bâ h-2637\8ap\90¬\8bâ\8eæ at2937\8cj \94n\8eæ S33142\8bâ SJ46\8ap\91Å S265\8bâ\91Å H-5655\94ò H-86\95à\91Å H-8786\95à \95à\8eæ
+-8525HI
+T7
+'** -303 +4939KI -3142GI +5968OU -2637UM +2937KE -2527RY +8855KA -0065GI +5564KA -6556GI +5756FU
++4939KI
+T13
+'** 294 SX4939\8bà S83142\8bâ h-3726\8bâ \8ap\8eæ H-2526\94ò \8bâ\8eæ S348\8ap\91Å H-2627\94ò\90¬ F-4837\8ap
+-2637UM
+T23
+'** -490 +2937KE -2527RY +3745KE -0038GI +0085KA -3142GI +4553NK -4253GI +0028FU -3839NG +2827FU -0052FU
++2937KE
+T15
+'** -999999999 H-2937\8cj \94n\8eæ H-2527\94ò\90¬ H-3745\8cj H-2747\97³ \95à\8eæ S24553\8cj \95à\8eæ H-6162\8bà H-71\8ap\91Å F-6263\8bà
+-2527RY
+T22
+'** -168 +3745KE -0038GI +4553NK -0052FU +0085KA -3242KI +3938KI -2738RY +0049GI -3849RY +5949OU
++3745KE
+T1
+'** -56 H-3745\8cj H-2747\97³ \95à\8eæ h-4553\8cj\90¬\95à\8eæ F-52\95à\91Å H-5354NK h-6465\95à
+-2747RY
+T11
+'** -221 +4553KE -6162KI +0048FU -4737RY +0028KA -3727RY +2864KA -7263GI +6446KA
++5653RY
+T3
+'** -46 H-5653\94ò\90¬\95à\8eæ S052\95à\91Å S35354\97³ H-44\8bâ\91Å H-56\8ap\91Å H-4757\97³ \95à\8eæ S058\95à\91Å H-5737\97³ H-3949\8bà F-3736\97³ \95à\8eæ
+-0052FU
+T40
+'** -387 +5354RY -4736RY +3948KI -0037GI +4837KI -3637RY +5968OU -3739RY +5464RY -0063KI +6466RY
++5354RY
+T1
+'** -257 H-5354\97³ H-44\8bâ\91Å H-56\8ap\91Å H-4737\97³ h-3948\8bà F-3736\97³ \95à\8eæ S38844\8ap \8bâ\8eæ H-4344\95à \8ap\8eæ mc5444\97³ \95à\8eæ
+-4736RY
+T18
+'** -258 +0038FU -0044GI +0018KA -4445GI +1836KA -4536GI +3948KI -3627NG +5464RY
++0038FU
+T11
+'** -92 H-38\95à\91Å SB3647\97³ H-5456\97³ H-58\8bâ\91Å S05968\89¤
+-0065GI
+T9
+'** -175 +5455RY -3634RY +5968OU -6554GI +5564RY -0063FU +6484RY -0083FU +8485RY
++5455RY
+T15
+'** 153 H-5455\97³ S53634\97³ SI5968\89¤ H-6554\8bâ H-4533\8cj\90¬\95à\8eæ H-2133\8cj NK\8eæ F-5564\97³ \95à\8eæ
+-3634RY
+T12
+'** -217 +0018KA -3142GI +5968OU -5141OU +6766FU -6574GI +7675FU -7463GI +6665FU -6465FU +5565RY
++5968OU
+T2
+'** -143 H-5968\89¤ H-6554\8bâ H-4533\8cj\90¬\95à\8eæ H-2133\8cj NK\8eæ H-5564\97³ \95à\8eæ S263\95à\91Å H-6466\97³
+-6554GI
+T23
+'** -119 +5564RY -5445GI +6434RY -4534GI +8897KA -0042KE %PASS %PASS
++5564RY
+T1
+'** -999999999 H-5564\97³ \95à\8eæ S063\95à\91Å S56484\97³ h-83\95à\91Å h-8475\97³ H-5445\8bâ \8cj\8eæ S022\95à\91Å at3122\8bâ \95à\8eæ H-18\8ap\91Å
+-0063FU
+T7
+'** -175 +6475RY -5445GI +3948KI -6171KI +3837FU -4546GI +0026KA -0044KE +0045FU
++4533KE
+T5
+'** -416 H-4533\8cj \95à\8eæ h-3233\8bà \8cj\8eæ S56484\97³ S347\8cj\91Å S18833\8ap\90¬\8bà\8eæ at2133\8cj \94n\8eæ H-56\8ap\91Å
+-2133KE
+T8
+'** -447 +6475RY -3436RY +3948KI -0064KE +8866KA -3626RY +4837KI -2629RY +0018KA
++6466RY
+T15
+'** -579 H-6466\97³ H-36\95à\91Å H-3949\8bà H-3637\95à\90¬ H-3837\95à \82Æ\8eæ S83345\8cj H-3736\95à mc4537\8cj\90¬
+-0027KE
+T24
+'** -468 +3948KI -2719NK +0082KA -9193KY +8291UM -1918NK +5756FU -1828NK +9182UM -2838NK +4847KI
++3929KI
+T13
+'** -850 H-3929\8bà H-2719\8cj\90¬\8d\81\8eæ H-2919\8bà NK\8eæ H-3438\97³ \95à\8eæ S56877\89¤ h-64\8d\81\91Å H-6675\97³ H-5465\8bâ
+-2719NK
+T26
+'** -753 +2919KI -3438RY +6877OU -0017KY +0034FU -1719NY +3433TO -3833RY +0034FU -3334RY +0046KE
++2919KI
+T1
+'** -841 H-2919\8bà NK\8eæ H-3438\97³ \95à\8eæ S56877\89¤ S517\8d\81\91Å S356\8ap\91Å H-3858\97³ H-7868\8bà
+-3438RY
+T7
+'** -865 +6877OU -8193KE +8786FU -0017KY +0034FU -1719NY +3433TO -3233KI +0034FU
++6877OU
+T3
+'** -811 H-6877\89¤ H-64\8d\81\91Å S56626\97³ H-85\95à\91Å S027\8ap\91Å h-3839\97³ H-2754\8ap \8bâ\8eæ H-3919\97³ \8bà\8eæ
+-0064KY
+T8
+'** -872 +6646RY -5445GI +4655RY -3847RY +8897KA -4546GI +5556RY -4757RY +5657RY
++6646RY
+T6
+'** -672 S06646\97³ h-85\95à\91Å H-8786\95à F-5445\8bâ S24626\97³ H-3858\97³ F-7968\8bâ
+-8193KE
+T15
+'** -693 +8786FU -5445GI +4655RY -3858RY +7968GI -5869RY +0059KE %PASS +0082KA
++0082KA
+T10
+'** -425 SA82\8ap\91Å SR3839\97³ S31918\8bà H-9385\8cj S07786\89¤ H-9192\8d\81 mc8685\89¤ \8cj\8eæ
+-9385KE
+T20
+'** -1514 +7786OU -6467NY +0062FU -6162KI +7867KI -3888RY +7988GI -0064KA +0075KY -6446KA +0071HI
++7786OU
+T15
+'** -187 7786\89¤ H-84\95à\91Å S742\95à\91Å S73839\97³ F-8291\8ap\90¬\8d\81\8eæ H-3919\97³ \8bà\8eæ F-34\95à\91Å
+-6467NY
+T1
+'** -1550 +0062FU -6162KI +7867KI -3888RY +7988GI -0064KA +0075KY -6446KA +0071HI
++0062FU
+T14
+'** -1346 H-62\95à\91Å H-6162\8bà \95à\8eæ H-7867\8bà \88Ç\8eæ H-3888\97³ \8ap\8eæ H-7988\8bâ \97³\8eæ H-64\8ap\91Å S375\94ò\91Å S281\95à\91Å H-8291\8ap\90¬\8d\81\8eæ mc6446\8ap \97³\8eæ mc7585\94ò \8cj\8eæ me19\8bà\8eæ
+-6162KI
+T9
+'** -1590 +7867KI -3888RY +7988GI -0064KA +0075KY -6446KA +1929KI -0069HI +0071HI
++7867KI
+T2
+'** -1667 H-7867\8bà \88Ç\8eæ H-3888\97³ \8ap\8eæ H-7988\8bâ \97³\8eæ H-64\8ap\91Å S07675\95à H-6446\8ap \97³\8eæ H-18\94ò\91Å S166\94ò\91Å
+-3888RY
+T5
+'** -1877 +7988GI -0064KA +7675FU -6446KA +0071HI -7261GI +0056KY -5465GI +8291UM
++7988GI
+T8
+'** -1801 H-7988\8bâ \97³\8eæ H-64\8ap\91Å S375\94ò\91Å H-6446\8ap \97³\8eæ H-7585\94ò \8cj\8eæ F-81\94ò\91Å
+-0064KA
+T5
+'** -1934 +7675FU -6446KA +1918KI -0069HI +0079KE -6967RY +7967KE -4657UM +0071HI
++8685OU
+T10
+'** -999999999 S48685\89¤ \8cj\8eæ H-6446\8ap \97³\8eæ H-71\94ò\91Å S06261\8bà H-7191\94ò\90¬\8d\81\8eæ h-4619\8ap\90¬\8bà\8eæ SG62\95à\91Å H-65\94ò\91Å S38594\89¤ \95à\8eæ
+-0084FU
+T20
+'** -3343 +8584OU -6446KA +8291UM -4619UM +0083KY -0069HI +0034FU -1929UM +6756KI -6989RY +3433TO
++8584OU
+T12
+'** 2123 8584\89¤ \95à\8eæ h-6446\8ap \97³\8eæ H-71\94ò\91Å S06261\8bà H-7161\94ò\90¬ at7261\8bâ H-8291\8ap\90¬\8d\81\8eæ h-4619\8ap\90¬ S88493\89¤ H-69\94ò\91Å
+-6446KA
+T1
+'** -3253 +8291UM -0083HI +8494OU -4619UM +0085KY -0093FU +9495OU -1964UM +0086KE
++0071HI
+T12
+'** -2129 H-71\94ò\91Å S06261\8bà H-7161\94ò\90¬ at7261\8bâ H-8291\8ap\90¬\8d\81\8eæ S369\94ò\91Å H-79\8cj\91Å mc6919\94ò\90¬\8bà\8eæ mc8494\89¤ \95à\8eæ me16\95à\8eæ
+-6261KI
+T1
+'** -3335 +7191RY -4619UM +0075KE -0081KI +0062FU -0064HI +8493OU -6162KI +0066KY
++7191RY
+T15
+'** -999999999 H-7191\94ò\90¬\8d\81\8eæ SB4619\8ap\90¬\8bà\8eæ S39194\97³ \95à\8eæ S264\94ò\91Å S38495\89¤ H-83\8bà\91Å
+-4619UM
+T4
+'** -3014 +0075KE -0081KI +9181RY -7281GI +8291UM -8172GI +8493OU -1955UM +0084KE
++0075KE
+T8
+'** -2554 ST75\8cj\91Å SA69\94ò\91Å S362\95à\91Å H-5162\89¤ \95à\8eæ SL66\8cj\91Å H-5465\8bâ mc8494\89¤ \95à\8eæ mc6967\94ò\90¬\8bà\8eæ
+-0081KI
+T12
+'** -3031 +9181RY -7281GI +8291UM -8172GI +0066KE -0064HI +0074KY -7374FU +6654KE
++9181RY
+T11
+'** -2516 h-9181\97³ \8bà\8eæ H-7281\8bâ \97³\8eæ H-8291\8ap\90¬ S569\94ò\91Å a29181\94n \8bâ\8eæ H-64\94ò\91Å S48493\89¤
+-7281GI
+T20
+'** -3284 +8291UM -6171KI +0066KY -8182GI +9182UM -7182KI +8485OU -7374FU +8586OU
++8291UM
+T1
+'** -999999999 H-8291\8ap\90¬ h-64\94ò\91Å S38493\89¤ a26467\94ò\90¬\8bà\8eæ H-9181\94n \8bâ\8eæ H-71\8bà\91Å
+-8172GI
+T7
+'** -3171 +0056KY -1964UM +8494OU -0069HI +5654KY -6967RY +0056KY
++8493OU
+T10
+'** -2820 S58493\89¤ S718\94ò\91Å H-8897\8bâ H-7374\95à H-9119\94n \94n\8eæ
+-0069HI
+T6
+'** -3053 +0084KE -6967RY +0082KI -0071KI +8472NK -6172KI +7583NK
++0034FU
+T15
+'** -2697 H-34\95à\91Å H-3345\8cj H-79\8cj\91Å SJ78\94ò\91Å S43433\95à\90¬ H-3233\8bà \82Æ\8eæ SF9394\89¤ \95à\8eæ
+-6967RY
+T4
+'** -3325 +3433TO -3233KI +0034FU -3334KI +0084KE -0081KI +8472NK -8172KI +0084KE
++3433TO
+T15
+'** -2718 H-3433\95à\90¬\8cj\8eæ H-3233\8bà \82Æ\8eæ S336\8d\81\91Å h-34\95à\91Å H-21\8bà\91Å Es3132\8bâ H-2131\8bà \8bâ\8eæ
+-3233KI
+T4
+'** -3077 +0084KE -0081KI +8472NK -8191KI +7261NK -5142OU +0051GI -4232OU +0082KI -9182KI
++0056KY
+T5
+'** -2693 SF56\8d\81\91Å SE6764\97³ S336\8d\81\91Å H-34\95à\91Å H-9392\89¤
+-0081KI
+T6
+'** -4481 +9181UM -7281GI +7583NK -6764RY +5654KY -0071KA +0082KI
++9181UM
+T11
+'** -3376 H-9181\94n \8bà\8eæ H-7281\8bâ \94n\8eæ H-5654\8d\81 \8bâ\8eæ H-92\94ò\91Å S09384\89¤
+-7281GI
+T9
+'** -4840 +7583NK -0091HI +0092KI -8192GI +8392NK -0084KA +9383OU -1964UM +0075GI -6465UM
++0084KE
+T1
+'** -4178 Sg84\8cj\91Å H-91\94ò\91Å S092\8d\81\91Å H-71\8ap\91Å S19394\89¤ \95à\8eæ
+-0071KA
+T11
+'** -5200 +9394OU -6776RY +0083KI -0092FU +8492NK -7675RY +0085KI
++9394OU
+T15
+'** -999999999 H-9394\89¤ \95à\8eæ S091\94ò\91Å S092\8d\81\91Å H-8192\8bâ at8492\8cj\90¬ H-9192\94ò \8d\81\8eæ S39483\89¤
+-6776RY
+T1
+'** -6246 +7583NK -0093FU +8393NK -0092FU +8492NK -8192GI +0085KE
++7583NK
+T15
+'** -5428 H-7583\8cj\90¬ h-93\95à\91Å at8393NK \95à\8eæ at7193\8ap NK\8eæ SJ83\8d\81\91Å H-82\8cj\91Å at8382\8d\81\90¬\8cj\8eæ
+-0093FU
+T7
+'** -7743 +8393NK -7193KA +0082KY -8182GI +0085KI -9384KA +8584KI
++8393NK
+T7
+'** -999999999 H-8393NK \95à\8eæ H-7193\8ap NK\8eæ H-83\8d\81\91Å H-82\8cj\91Å at8382\8d\81\90¬ H-7674\97³ H-95\8bà\91Å H-8182\8bâ \88Ç\8eæ mc5654\8d\81 \8bâ\8eæ mc9384\8ap \8cj\8eæ me84\8ap\8eæ
+-7193KA
+T2
+'** -246840 +9493OU -0092FU +8492NK -7685RY +0083KA -6172KI +8372UM -8172GI
++9493OU
+T11
+'** -51230 S09493\89¤ \8ap\8eæ H-92\95à\91Å at8492\8cj\90¬ SO7674\97³ H-41\8bà\91Å S05141\89¤ \8bà\8eæ
+-7674RY
+T9
+'** -374948 +0041KI -5141OU +0042FU -3142GI
++0094KI
+T15
+'** -999999999 H-94\8bà\91Å h-92\95à\91Å at8492\8cj\90¬\95à\8eæ at8192\8bâ NK\8eæ S09392\89¤ \8bâ\8eæ H-7494\97³ \8bà\8eæ S393\8bâ\91Å H-6171\8bà H-41\8bà\91Å
--- /dev/null
+V2
+N+test
+N-gps
+$EVENT:wdoor+gps-1500-0+test+gps+20070822031740
+$START_TIME:2007/08/22 03:17:40
+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
++
++7776FU
+T1
+-3334FU
+T1
+'** 0
++2726FU
+T1
+-8384FU
+T1
+'** 0
++2625FU
+T1
+-8485FU
+T1
+'** 0
++6978KI
+T1
+-4132KI
+T1
+'** 0
++2524FU
+T1
+-2324FU
+T1
+'** 0
++2824HI
+T1
+-8586FU
+T1
+'** 0
++8786FU
+T1
+-8286HI
+T1
+'** 0
++2434HI
+T1
+-2233KA
+T1
+'** 0
++3436HI
+T1
+-3122GI
+T1
+'** 0
++0087FU
+T1
+-8685HI
+T1
+'** 0
++3626HI
+T1
+-5141OU
+T1
+'** 0
++5968OU
+T1
+-7162GI
+T1
+'** 0
++3938GI
+T1
+-6151KI
+T1
+'** 0
++3736FU
+T1
+-7374FU
+T1
+'** 0
++2937KE
+T1
+-8173KE
+T1
+'** 0
++4746FU
+T1
+-0086FU
+T22
+'** 59 +2624HI -8687TO +0023FU -3388UM +7888KI -8788TO +2322TO -3233KI +0023FU -3324KI
++8786FU
+T1
+-8586HI
+T29
+'** 249 +8833UM -2133KE +0087FU -8676HI +3635FU -0025FU +3725KE -3325KE +0077FU -7675HI
++3745KE
+T35
+-3388UM
+T17
+'** 153 +7988GI -0044KA +0087FU -8676HI +0077FU -7646HI +2625HI -7365KE
++7988GI
+T1
+-0044KA
+T36
+'** -19 +0087FU -8676HI +2625HI -0037FU +3847GI -4488UM +8977KE -8878UM
++0087FU
+T45
+-8676HI
+T1
+'** -185 +0035KA -4488UM +7888KI -0079GI +6858OU -7988NG +4553NK -4131OU
++0035KA
+T37
+-0037FU
+T21
+'** -240 +3847GI -4488UM +0077FU -8889UM +7776FU -0044GI +0023FU -2231GI
++3544KA
+T47
+-4344FU
+T15
+'** -321 +0066KA -3738TO +0023FU -3849TO +5756FU -0095KA +6677KA -0025FU
++3837GI
+T1
+-4445FU
+T37
+'** -333 +0077FU -7675HI +0023FU -2223GI +0043KA -0031KE +6869OU -0047KA +6979OU -4765UM
++8877GI
+T37
+-7675HI
+T15
+'** -387 +0066KA -0023FU +6675KA -7475FU +0081HI -4546FU +3746GI -0034KE
++0066KA
+T1
+-0023FU
+T18
+'** -439 +6675KA -7475FU +0081HI -4546FU +3746GI -0034KE +8191RY -3426KE
++6675KA
+T37
+-7475FU
+T31
+'** -521 +0081HI -4546FU +3746GI -0034KE +8191RY -3426KE %PASS -4152OU
++0081HI
+T1
+-4546FU
+T19
+'** -687 +3746GI -0034KE +2625HI -2133KE +2575HI -3446KE +6879OU -0076FU
++0074FU
+T41
+-7365KE
+T17
+'** -991 +7473TO -6273GI +8191RY -4647TO +3728GI -6577NK +7877KI -0076KE
++7473TO
+T1
+-6273GI
+T21
+'** -1008 +8191RY -4647TO +3728GI -6577NK +7877KI -0076KE
++8191RY
+T1
+-4647TO
+T36
+'** -1168 +3728GI -6577NK +7877KI -0076KE +7776KI -7576FU +0074FU -4757TO
++0035KY
+T1
+-0033FU
+T34
+'** -1812 +3748GI -0046KA +0074FU -7362GI +4847GI -6557NK
++7766GI
+T41
+-0076KE
+T22
+'** -2268 +6869OU -4737TO %PASS -0047KA
++6879OU
+T47
+-6557NK
+T14
+'** -2706 +2628HI -0048FU +4959KI -0068KA
++6657GI
+T49
+-4757TO
+T15
+'** -4264 +2628HI -0088KA
++4959KI
+T1
+-0088GI
+T17
+'** -4342 +7888KI -0068KA +7978OU -6859UM
++7969OU
+T25
+-0047KA
+T132
+'** -7093 +0058KE -8889GI +0074FU -8978NG
++0058FU
+T39
+-8889GI
+T66
+'** -5593 +0042FU -3242KI +9151RY -4151OU +0077KI -8978NG
++0042FU
+T1
+-3242KI
+T15
+'** -248084 +7877KI -0056KE +7776KI -0078KA +6979OU -7887UM
++7877KI
+T2
+-0055KA
+T52
+'** -250796 +0034KE -3334FU +7776KI -7576FU +9151RY -4151OU +0061KI -5161OU
++0043KE
+T65
+-4243KI
+T16
+'** -251150 +9151RY -4151OU +0061KI -5152OU +6162KI -7362GI
++9151RY
+T1
+-4151OU
+T13
+'** -251337 +0052KI -5152OU
++0042KI
+T5
+-5142OU
+T1
+'** -254340 +3533NY -4333KI +0043FU -4232OU +2623RY -2223GI +4342TO -3242OU +0043FU -3343KI
++3533NY
+T64
+-4333KI
+T1
+'** -255125 +0043FU -4232OU +2623RY -3223OU +0024FU -2334OU +3635FU -3435OU +3726GI -3536OU +2637GI -5537UM
++0043FU
+T64
+-4232OU
+T1
+'** -254931 +2623RY -3223OU +0024FU -2334OU +3635FU -3435OU +3726GI -3546OU +2635GI -4635OU
++2623RY
+T64
+-3223OU
+T1
+'** -255125 +0024FU -2334OU +3635FU -3435OU +3726GI -3524OU +2615GI -2415OU +1716FU -1524OU
++0024FU
+T62
+-2334OU
+T1
+'** -255412 +3635FU -3445OU +3736GI -4544OU +3645GI -4435OU +4544GI -3524OU +4435GI -2423OU +3534GI -3334KI
++3635FU
+T62
+-3435OU
+T1
+'** -256221 +3726GI -3546OU +2635GI -4637OU +5948KI -5748TO +3526GI -3728OU +2637GI -5537KA
++3726GI
+T62
+-3546OU
+T1
+'** -256221 +2635GI -4637OU +5948KI -5748TO +3546GI -3726OU +4635GI -2635OU
++2637GI
+T56
+-4635OU
+T1
+'** -488281
++3726GI
+T57
+-3546OU
+T1
+'** -488281
++2637GI
+T57
+-4635OU
+T1
+'** -488281
++3746GI
+T34
+-3526OU
+T1
+'** -256337 +4635GI -2637OU +5948KI -5748TO +3526GI -3728OU +2637GI -5537UM
++4635GI
+T34
+-2637OU
+T1
+'** -257278 +5948KI -5748TO +3546GI -3728OU +4637GI -2819OU +3728GI -5528UM
++3526GI
+T34
+-3746OU
+T1
+'** -488281
++2637GI
+T34
+-4635OU
+T1
+'P1 * * * * * * * -KE-KY
+'P2 * * * * * * * -GI *
+'P3-FU * -GI-FU-FU+FU-KI * -FU
+'P4 * * * * * * * +FU *
+'P5 * * -FU * -KA * * * *
+'P6 * * -KE * * -OU * * *
+'P7+FU+FU+KI+FU-TO-KA+GI * +FU
+'P8 * * * * +FU * * * *
+'P9+KY-GI * +OU+KI * * * +KY
+'P-00FU00FU00FU00FU00FU00HI00HI00KE00KE00KI00KY
+'+
+'summary:sennichite:gps draw:test draw
+'$END_TIME:2007/08/22 03:51:08
--- /dev/null
+V2
+N+usapyon-on-note
+N-KShogi900
+$EVENT:wdoor+floodgate-900-0+usapyon-on-note+KShogi900+20080217020012
+$START_TIME:2008/02/17 02:00:08
+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
++
++2726FU
+T1
+'** 0 joseki
+-4132KI
+T1
+'** 0
++7776FU
+T1
+'** 0 joseki
+-3334FU
+T1
+'** 0
++6978KI
+T1
+'** 0 joseki
+-5354FU
+T1
+'** 0
++2625FU
+T1
+'** 0 joseki
+-5455FU
+T1
+'** 0
++3948GI
+T1
+'** 0 joseki
+-2233KA
+T1
+'** 0
++7968GI
+T1
+'** 0 joseki
+-7162GI
+T1
+'** 0
++5969OU
+T1
+'** 0 joseki
+-6253GI
+T1
+'** 0
++4958KI
+T1
+'** 0 joseki
+-5354GI
+T1
+'** 0
++6766FU
+T1
+'** 0 joseki
+-3142GI
+T1
+'** 0
++4746FU
+T1
+'** 0 joseki
+-8384FU
+T1
+'** 0
++4847GI
+T1
+'** 0 joseki
+-8485FU
+T1
+'** 0
++6867GI
+T1
+'** 0 joseki
+-8586FU
+T1
+'** 0
++8786FU
+T1
+'** 0 joseki
+-8286HI
+T1
+'** 0
++0087FU
+T1
+'** 0 joseki
+-8682HI
+T1
+'** 0
++3736FU
+T1
+'** 0 joseki
+-4344FU
+T1
+'** 0
++2937KE
+T1
+'** 0 joseki
+-4243GI
+T1
+'** 0
++9796FU
+T1
+'** 0 joseki
+-6364FU
+T1
+'** 0
++6979OU
+T1
+'** 0 joseki
+-5141OU
+T1
+'** 0
++1716FU
+T1
+'** 0 joseki
+-1314FU
+T1
+'** 0
++5868KI
+T1
+'** 0 joseki
+-7374FU
+T15
+'** -21 -7374FU +8877KA -8173KE +2858HI -7385KE +7795KA -8283HI +5756FU -9394FU +9586KA -3342KA
++5756FU
+T15
+'** 95 H-5756\95à H-5556\95à \95à\8eæ H-8897\8ap F-3342\8ap S26756\8bâ \95à\8eæ H-5463\8bâ S54758\8bâ
+-5556FU
+T15
+'** -30 -5556FU +8877KA -8173KE +6756GI -0055FU +5667GI -7385KE +7795KA -6162KI +9586KA -6263KI +6869KI -9394FU
++2858HI
+T1
+'** 32 H-2858\94ò F-3342\8ap H-8877\8ap H-4131\89¤ H-4756\8bâ \95à\8eæ S288\95à\91Å
+-1415FU
+T34
+'** -13 -1415FU +8897KA -1516FU +9764KA -8292HI +0018FU -6152KI +6497KA -3342KA +9742UM -5242KI +4756GI -9394FU
++1615FU
+T15
+'** -999999999 H-1615\95à \95à\8eæ h-9394\95à F-8897\8ap H-3342\8ap S24756\8bâ \95à\8eæ F-4131\89¤
+-0016FU
+T25
+'** 4 -0016FU +4756GI -1115KY +0018FU -3435FU +0055FU -5463GI +5647GI -3536FU +4736GI -8173KE
++8897KA
+T10
+'** 205 h-8897\8ap H-3315\8ap \95à\8eæ H-1916\8d\81 \95à\8eæ H-1537\8ap\90¬\8cj\8eæ H-1611\8d\81\90¬\8d\81\8eæ H-3747\94n \8bâ\8eæ H-1121\88Ç \8cj\8eæ S84151\89¤ H-9764\8ap \95à\8eæ mc4758\94n \94ò\8eæ mc6758\8bâ \94n\8eæ
+-3342KA
+T30
+'** 68 -3342KA +1916KY -9394FU +0053FU -8262HI +5818HI -9495FU +1514FU -9596FU
++1916KY
+T15
+'** -999999999 H-1916\8d\81 \95à\8eæ S24352\8bâ F-5856\94ò \95à\8eæ S23243\8bà H-5658\94ò H-8173\8cj
+-9394FU
+T12
+'** 47 -9394FU +0053FU -8262HI +4756GI -3435FU +5647GI -3536FU +4736GI -9495FU +4645FU -9596FU
++4756GI
+T15
+'** 456 S24756\8bâ \95à\8eæ SR3435\95à S55647\8bâ F-3536\95à \95à\8eæ H-4736\8bâ \95à\8eæ H-4131\89¤
+-9495FU
+T16
+'** 71 -9495FU +0053FU -0088FU +9788KA -9596FU +4645FU -4253KA +7969OU -6152KI +0055FU -5463GI
++6665FU
+T15
+'** 435 H-6665\95à SZ3435\95à S85647\8bâ h-3536\95à \95à\8eæ H-4736\8bâ \95à\8eæ F-88\95à\91Å mc9788\8ap \95à\8eæ mc9596\95à \95à\8eæ
+-9596FU
+T20
+'** -49 -9596FU +9764KA -4264KA +6564FU -9697TO +9997KY -9197NY +8997KE -0096FU +0086KY -0083KY +8683NY -9697TO
++9764KA
+T15
+'** 529 H-9764\8ap \95à\8eæ H-4264\8ap \8ap\8eæ at6564\95à \8ap\8eæ H-27\8ap\91Å h-6463\95à\90¬ H-57\95à\91Å H-5857\94ò \95à\8eæ
+-4264KA
+T2
+'** -56 -4264KA +6564FU -9697TO +9997KY -9197NY +8997KE -0096FU +0055FU -9697TO +5554FU -9787TO +0063KA -4131OU +0088FU -8778TO
++6564FU
+T12
+'** 90 H-6564\95à \8ap\8eæ H-49\8ap\91Å S238\8ap\91Å H-4958\8ap\90¬\94ò\8eæ H-6758\8bâ \94n\8eæ S119\94ò\91Å S05849\8bâ mc1115\8d\81 \95à\8eæ mc6463\95à\90¬ me63\82Æ\8eæ
+-0049KA
+T23
+'** -1 -0049KA +0055FU -4958UM +6858KI -9697TO +8997KE -0057FU +5859KI -9197NY
++5859HI
+T1
+'** 133 S85859\94ò H-4938\8ap\90¬ H-55\95à\91Å S788\95à\91Å f-5554\95à \8bâ\8eæ S18889\95à\90¬\8cj\8eæ S07989\89¤ \82Æ\8eæ H-3837\94n \8cj\8eæ
+-4938UM
+T13
+'** -17 -4938UM +0055FU -3837UM +5957HI -3746UM +0042FU -3242KI +5554FU -0088FU +0063KA
++0055FU
+T1
+'** 111 H-55\95à\91Å H-88\95à\91Å S27988\89¤ H-3837\94n \8cj\8eæ F-5554\95à \8bâ\8eæ h-3759\94n \94ò\8eæ H-5453\95à\90¬ H-18\94ò\91Å
+-3837UM
+T16
+'** -58 -3837UM +5957HI -3748UM +5554FU -0086FU +8786FU -4857UM +6857KI -4354GI +0055FU
++5957HI
+T15
+'** -999999999 H-5957\94ò H-3746\94n \95à\8eæ H-5554\95à \8bâ\8eæ H-4657\94n \94ò\8eæ S342\95à\91Å at3242\8bà \95à\8eæ H-6857\8bà \94n\8eæ F-4354\8bâ \95à\8eæ
+-3748UM
+T2
+'** -43 -3748UM +5554FU -0086FU +8786FU -4857UM +6857KI -4354GI +0055FU -0049HI +7968OU -0066FU +6758GI -4989RY +5554FU -8286HI +5453TO -8676HI
++5554FU
+T15
+'** -223 H-5554\95à \8bâ\8eæ H-4857\94n \94ò\8eæ at6857\8bà \94n\8eæ S219\94ò\91Å S569\8bâ\91Å H-88\95à\91Å H-63\8ap\91Å S04352\8bâ
+-0086FU
+T2
+'** 35 -0086FU +8786FU -4354GI +0055FU -4857UM +6857KI -0049HI +0069GI -0068FU +7968OU -8286HI +5554FU -4948RY +5758KI
++5453TO
+T13
+'** 10 S35453\95à\90¬ H-8687\95à\90¬\95à\8eæ h-63\8ap\91Å S152\95à\91Å a25343\82Æ \8bâ\8eæ H-3243\8bà \82Æ\8eæ
+-8687TO
+T12
+'** -263 -8687TO +0085FU -4857UM +6857KI -0059HI +7968OU -5989RY +0063KA -0052FU +7879KI -8999RY +6374UM -9998RY +0078GI -8778TO
++5343TO
+T1
+'** 416 S75343\82Æ \8bâ\8eæ H-3243\8bà \82Æ\8eæ H-6463\95à\90¬ mc9697\95à\90¬ mc8997\8cj \82Æ\8eæ me97\8cj\8eæ
+-8778TO
+T23
+'** -351 -8778TO +7978OU -0088KI +7869OU -3243KI +2524FU -8889KI +5758HI -4858UM +6958OU -0038HI +0048GI -0057FU +5857OU -8288RY +0063KA -4132OU +6374UM -3836RY
++6778GI
+T15
+'** -999999999 H-6778\8bâ \82Æ\8eæ H-88\8bà\91Å S07969\89¤ H-3243\8bà \82Æ\8eæ H-6463\95à\90¬ F-8889\8bà \8cj\8eæ
+-0088KI
+T18
+'** -500 -0088KI +7969OU -3243KI +0063KA -4131OU +0054GI -4857UM +6857KI -8878KI +6978OU -0088HI +7867OU -8287RY +8977KE -8878RY
++7969OU
+T1
+'** 1730 7969\89¤ H-3243\8bà \82Æ\8eæ H-6463\95à\90¬ S066\8cj\91Å H-7867\8bâ S08287\94ò\90¬
+-3243KI
+T24
+'** -487 -3243KI +0063KA -0052FU +0054GI -0087KE +7887GI -8287RY +0032GI -4132OU
++6463TO
+T1
+'** -1350 H-6463\95à\90¬ S386\8cj\91Å H-52\8bâ\91Å at6152\8bà \8bâ\8eæ
+-4857UM
+T15
+'** -701 -4857UM +6857KI -8878KI +6978OU -0088HI +7867OU -8287RY +0077GI -0068GI +0052GI -6152KI +6352TO -4152OU +0064KA -8778RY +6766OU -6857GI +6657OU
++6857KI
+T13
+'** -2519 h-6857\8bà \94n\8eæ H-79\94ò\91Å S06958\89¤ H-7978\94ò\90¬\8bâ\8eæ S068\95à\91Å S38287\94ò\90¬ H-67\8ap\91Å mc7889\97³ \8cj\8eæ mc6789\8ap \97³\8eæ me89\8ap\8eæ
+-8878KI
+T1
+'** -656 -8878KI +6978OU -0088HI +7867OU -8287RY +0077GI -0068GI +0052GI -6152KI +6352TO -4152OU +0064KA -8778RY +6766OU -6857GI +6657OU
++6978OU
+T15
+'** -999999999 H-6978\89¤ \8bà\8eæ S788\94ò\91Å S07867\89¤ h-8287\94ò\90¬ S077\8bà\91Å H-8889\94ò\90¬\8cj\8eæ H-68\8bâ\91Å
+-0088HI
+T1
+'** -654 -0088HI +7869OU -0067FU +5667GI -8889RY +6958OU -8288RY +0078GI -0055KE
++7867OU
+T10
+'** -1181 H-7867\89¤ H-8287\94ò\90¬ S077\8bà\91Å h-78\8bâ\91Å S16766\89¤ S054\8cj\91Å S16655\89¤ H-8785\97³ S17675\95à
+-8287RY
+T17
+'** -641 -8287RY +0077KI -8878RY +6766OU -7868RY +5767KI -0065FU +5665GI -8777RY
++0077KI
+T1
+'** -1600 H-77\8bà\91Å S38878\94ò\90¬ S06766\89¤ S054\8cj\91Å S06655\89¤ H-8785\97³ S065\95à\91Å
+-8878RY
+T17
+'** -595 -8878RY +6766OU -7868RY +5767KI -0065FU +5665GI -8777RY +8977KE -0057GI +6656OU -0055FU
++6766OU
+T1
+'** 971 6766\89¤ SB7869\97³ S35767\8bà H-54\8cj\91Å S16657\89¤
+-7868RY
+T17
+'** -594 -7868RY +7767KI -0054KE +6655OU -6857RY +6757KI -8757RY +0052GI -6152KI
++5767KI
+T12
+'** -1232 H-5767\8bà H-57\8bâ\91Å S16665\89¤ H-8785\97³ S175\8bâ\91Å H-6869\97³
+-0057GI
+T14
+'** -722 -0057GI +6665OU -0073KE +6373TO -8173KE +6574OU -6867RY +0086FU -6756RY +0032GI -4132OU +7787KI -5665RY +7473OU
++6655OU
+T1
+'** -48138 H-6655\89¤ H-8777\97³ \8bà\8eæ S252\8ap\91Å S34142\89¤ H-5243\8ap\90¬\8bà\8eæ S76152\8bà
+-0054FU
+T14
+'** -1493 -0054FU +5564OU -8783RY +0052GI -6152KI +6352TO -4152OU +0061GI -5261OU
++5565OU
+T13
+'** -3584 H-5565\89¤ H-8785\97³ S275\8ap\91Å H-7475\95à at7675\95à \95à\8eæ S174\8ap\91Å S06564\89¤ mc7463\8ap \82Æ\8eæ mc6463\89¤ \8ap\8eæ me89\8cj\8eæ
+-8785RY
+T1
+'** -30000 -8785RY +0075GI -6867RY +7767KI -0064FU +6364TO -0073KE +6473TO -8173KE +6564OU -0063FU +6473OU
++0075GI
+T14
+'** -999999999 H-75\8bâ\91Å H-6867\97³ \8bà\8eæ at7767\8bà \97³\8eæ S173\8cj\91Å S16564\89¤ H-7475\95à \8bâ\8eæ H-52\8bâ\91Å
+-6867RY
+T1
+'** -30000 -6867RY +7767KI -0064FU +6364TO -0073KE +6473TO -8173KE +6564OU -0063FU +6473OU
++0066KA
+T14
+'** -9874260 S566\8ap\91Å S064\95à\91Å
+-0064FU
+T1
+'** -30000 -0064FU +6364TO -5766NG +7766KI -0073KE +6473TO -8173KE +6564OU -0053KI +6473OU
++6564OU
+T1
+'** -9874802 H-6564\89¤ \95à\8eæ
+-0072KE
+T1
+'** -30000 -0072KE +6372TO -0053KI +6465OU -0064FU +7564GI
++6372TO
+T1
+'** -9874786 H-6372\82Æ \8cj\8eæ
+-0053KI
+T1
+'** -30000 -0053KI +6465OU -5766NG +7766KI -0064FU +7564GI
++6465OU
+T15
+'** 377 6465\89¤ H-6777\97³ \8bà\8eæ H-32\8bâ\91Å S04132\89¤ H-24\8cj\91Å mc6766\97³ \8bà\8eæ mc7261\82Æ \8bà\8eæ me75\8bâ\8eæ
+-5766NG
+T1
+'** -30000 -5766NG +7766KI -0064FU +7564GI
++7766KI
+T1
+'** -2810 7766\8bà \91S\8eæ
+'P1-KY-KE * -KI * -OU * -KE-KY
+'P2 * * +TO * * * * * *
+'P3 * * * * -KI-KI * -FU *
+'P4 * * -FU * -FU-FU-FU * *
+'P5 * -RY+GI+OU * * * +FU+FU
+'P6-FU * +FU+KI+GI+FU+FU * +KY
+'P7 * * * -RY * * * * *
+'P8 * * * * * * * * *
+'P9+KY+KE * * * * * * *
+'P+00FU00FU00FU00FU00FU00GI00GI00KA00KE
+'P-00FU00KA
+'+
+'summary:uchifuzume:KShogi900 lose:usapyon-on-note win
+'rating:usapyon-on-note+0c6049789d5fa11db9785155258b93b5:KShogi900+d0426ce2e69157611ba5e225f4a92d11
+'$END_TIME:2008/02/17 02:12:10
--- /dev/null
+---
+players:
+ 5:
+ gps2_rg+6a8be1bf7a75b6f75ee31f8c1c0c489a:
+ last_modified: 2008-05-04 12:19:51 +09:00
+ name: gps2_rg
+ rate: 1051.0
+ win: 12.0
+ loss: 8.0
+ rating_group: 5
+ gps2+2dd0aa2d841f508edc69bb113f70642b:
+ last_modified: 2008-05-04 12:19:51 +09:00
+ name: gps2
+ rate: 981.0
+ win: 45.8602477491377
+ loss: 51.7974713434314
+ rating_group: 5
+ gps2_k7p+5426a28d8a75cd7ed662b2090ca881c9:
+ last_modified: 2008-05-01 03:37:26 +09:00
+ name: gps2_k7p
+ rate: 1051.0
+ win: 11.8352784293642
+ loss: 7.89360618372286
+ rating_group: 5
+ gps2_k7p4+e5f61cad57b66e6483b0ac3933564168:
+ last_modified: 2008-05-03 08:03:56 +09:00
+ name: gps2_k7p4
+ rate: 897.0
+ win: 8.0
+ loss: 13.0
+ rating_group: 5
+ gps2_k7p2+fc2919b6df6578ce4b4a6a449fd73346:
+ last_modified: 2008-05-01 23:28:07 +09:00
+ name: gps2_k7p2
+ rate: 1036.0
+ win: 10.9621929140671
+ loss: 7.96664156541485
+ rating_group: 5
+ gps2_k7p3+2ee3afcc1fda4ce87023a575102da0b5:
+ last_modified: 2008-05-02 15:35:04 +09:00
+ name: gps2_k7p3
+ rate: 981.0
+ win: 9.0
+ loss: 9.0
+ rating_group: 5
+ 11:
+ gps3_p+dea40e920b32ad920881f840ca1fecf0:
+ last_modified: 2008-05-04 23:45:59 +09:00
+ name: gps3_p
+ rate: 926.0
+ win: 6.0
+ loss: 14.0
+ rating_group: 11
+ gps3_pke7+a8472716b65c248d7283308f8b085acc:
+ last_modified: 2008-05-04 23:45:59 +09:00
+ name: gps3_pke7
+ rate: 1073.0
+ win: 14.0
+ loss: 6.0
+ rating_group: 11
+ 0:
+ gps_effect5x3func7+57ddcc5f075d66a422fc7037f92e91a1:
+ last_modified: 2008-04-11 23:58:09 +09:00
+ name: gps_effect5x3func7
+ rate: 2894.0
+ win: 14.1843881597541
+ loss: 13.386632664677
+ rating_group: 0
+ gps_ppa2+6c5dc86d68f9130735e60b0fe9a2ea96:
+ last_modified: 2008-05-02 13:11:30 +09:00
+ name: gps_ppa2
+ rate: 2840.0
+ win: 13.9897623400963
+ loss: 17.9879456013727
+ rating_group: 0
+ gps_do2+11648e4e66e7ed6a86cb7f1d0cf604fe:
+ last_modified: 2008-05-03 20:38:24 +09:00
+ name: gps_do2
+ rate: 2912.0
+ win: 53.986531798629
+ loss: 45.9909614051652
+ rating_group: 0
+ gps_cpu2+7641d40a2d4d4af7ddc9def42529ea9b:
+ last_modified: 2008-04-02 16:29:35 +09:00
+ name: gps_cpu2
+ rate: 3114.0
+ win: 30.0789895320084
+ loss: 23.2771098034858
+ rating_group: 0
+ gps_cc3+9aff337746cbc96eccaef09f45a17765:
+ last_modified: 2008-04-28 00:53:35 +09:00
+ name: gps_cc3
+ rate: 2936.0
+ win: 21.8292497973772
+ loss: 16.1510769520277
+ rating_group: 0
+ gps_lt3b+70dddf5a3ebd35efa71468c2e5e53691:
+ last_modified: 2008-03-08 03:11:48 +09:00
+ name: gps_lt3b
+ rate: 2893.0
+ win: 10.5484879004933
+ loss: 10.0211511265367
+ rating_group: 0
+ spearCSA2008+417e7849a8ac94c94202e7d821db9b7e:
+ last_modified: 2008-05-08 23:50:54 +09:00
+ name: spearCSA2008
+ rate: -2019.0
+ win: 27.0
+ last_game_win: true
+ loss: 12.0
+ rating_group: 0
+ tomi900+ff3ccfad330a8731a7a1100d2c081489:
+ last_modified: 2008-02-14 23:24:09 +09:00
+ name: tomi900
+ rate: -2376.0
+ win: 8.10630245430416
+ loss: 13.8584073745703
+ rating_group: 0
+ gps_qtseeplus+223748d30f3f8b7efa3423de12a6bd96:
+ last_modified: 2008-04-08 16:51:59 +09:00
+ name: gps_qtseeplus
+ rate: 2918.0
+ win: 16.7028105818679
+ loss: 13.6749889028838
+ rating_group: 0
+ Lesserkai+d800b2b8e356f4559ea3ba4519f11eff:
+ last_modified: 2008-04-12 18:08:04 +09:00
+ name: Lesserkai
+ rate: -3035.0
+ win: 1.36585588490053
+ loss: 93.0862283848441
+ rating_group: 0
+ gps_qtseemc+1706abae91c059ba3ffed3dc9c9cfe1d:
+ last_modified: 2008-04-05 15:57:36 +09:00
+ name: gps_qtseemc
+ rate: 2763.0
+ win: 8.07708612911955
+ loss: 16.1424457840462
+ rating_group: 0
+ gps_pr8+5592a0e99b70a051fedcdbf5810334ef:
+ last_modified: 2008-03-24 02:45:16 +09:00
+ name: gps_pr8
+ rate: 2950.0
+ win: 13.9539803665413
+ loss: 9.51999326841611
+ rating_group: 0
+ gps_normal+e293220e3f8a3e59f79f6b0efffaa931:
+ last_modified: 2008-05-08 23:50:54 +09:00
+ name: gps_normal
+ rate: -1752.0
+ win: 3384.04877829976
+ loss: 906.949084230512
+ rating_group: 0
+ usapyon-on-note+0c6049789d5fa11db9785155258b93b5:
+ last_modified: 2008-04-23 20:45:22 +09:00
+ name: usapyon-on-note
+ rate: -2375.0
+ win: 229.550829494412
+ loss: 672.106457095826
+ rating_group: 0
+ gps_cc+503016c7f3e9d55687099f632e7b7dff:
+ last_modified: 2008-04-25 13:43:00 +09:00
+ name: gps_cc
+ rate: 2802.0
+ win: 9.23774550873844
+ loss: 14.8077130398311
+ rating_group: 0
+ gps_pp+1e5a182134af18b0c64843196e2b4e81:
+ last_modified: 2008-05-07 22:52:24 +09:00
+ name: gps_pp
+ rate: 2866.0
+ win: 19.0
+ loss: 21.0
+ rating_group: 0
+ ssp+21f52837bcc36952291e3ca14b75c1e8:
+ last_modified: 2008-04-30 20:48:33 +09:00
+ name: ssp
+ rate: -2535.0
+ win: 50.2719100204888
+ loss: 249.512660733661
+ rating_group: 0
+ imai+81dc9bdb52d04dc20036dbd8313ed055:
+ last_modified: 2008-05-08 22:36:40 +09:00
+ name: imai
+ rate: -2301.0
+ last_game_win: false
+ win: 6.0
+ loss: 20.0
+ rating_group: 0
+ gps_tm+83f57ee9b210d4247a5ceb2e20bfbff8:
+ last_modified: 2008-02-26 23:49:17 +09:00
+ name: gps_tm
+ rate: 2883.0
+ win: 8.89521993921137
+ loss: 8.90554984628389
+ rating_group: 0
+ gps_cpu4rs+b0530c15c38c0d10e4d1e3ac00dba352:
+ last_modified: 2008-04-10 15:49:03 +09:00
+ name: gps_cpu4rs
+ rate: 3236.0
+ win: 15.5527424717879
+ loss: 14.7893992317924
+ rating_group: 0
+ gps_small_step_1+3eacd3587c056e61f7a34ac81b25f3a1:
+ last_modified: 2008-04-28 23:22:30 +09:00
+ name: gps_small_step_1
+ rate: 2873.0
+ win: 15.352514288629
+ loss: 16.3427595653383
+ rating_group: 0
+ gps_newopening6_2dan+11648e4e66e7ed6a86cb7f1d0cf604fe:
+ last_modified: 2008-05-03 20:55:08 +09:00
+ name: gps_newopening6_2dan
+ rate: 2921.0
+ win: 56.9834509073819
+ loss: 45.987385502195
+ rating_group: 0
+ gps_kachi3+d4a19b7839aea28259fbb1071b5b352c:
+ last_modified: 2008-04-29 20:47:48 +09:00
+ name: gps_kachi3
+ rate: 2910.0
+ win: 20.3186016436094
+ loss: 17.4368835954953
+ rating_group: 0
+ gps_mc+226caf236915aa9ae9a98b16514f9871:
+ last_modified: 2008-04-03 19:11:21 +09:00
+ name: gps_mc
+ rate: 2939.0
+ win: 15.7890995446369
+ loss: 11.4835823075585
+ rating_group: 0
+ gps_kh+f034f70ba869796cd6f953d84e85b9b8:
+ last_modified: 2008-05-02 10:22:31 +09:00
+ name: gps_kh
+ rate: 2872.0
+ win: 13.9825518506586
+ loss: 14.9874986816353
+ rating_group: 0
+ gps+11648e4e66e7ed6a86cb7f1d0cf604fe:
+ last_modified: 2008-05-08 23:31:31 +09:00
+ name: gps
+ rate: 2884.0
+ win: 1175.66739199111
+ loss: 1203.22715879058
+ rating_group: 0
+ gps_newopening4+11648e4e66e7ed6a86cb7f1d0cf604fe:
+ last_modified: 2008-04-30 12:38:10 +09:00
+ name: gps_newopening4
+ rate: 2810.0
+ win: 57.3861518936011
+ loss: 87.4893233925526
+ rating_group: 0
+ gps_qtsee2+076ea545a9d74230e053400d043993d9:
+ last_modified: 2008-04-06 01:02:34 +09:00
+ name: gps_qtsee2
+ rate: 2973.0
+ win: 18.4240146179166
+ loss: 11.0372650659614
+ rating_group: 0
+ usa_test+0c6049789d5fa11db9785155258b93b5:
+ last_modified: 2008-05-02 16:15:29 +09:00
+ name: usa_test
+ rate: -2303.0
+ win: 596.726845953427
+ loss: 1486.33022716432
+ rating_group: 0
+ Kakinoki-Test+89704a19dfaea78d699800e63bef0dea:
+ last_modified: 2008-05-08 23:16:21 +09:00
+ name: Kakinoki-Test
+ rate: -1781.0
+ last_game_win: false
+ win: 1502.51399278973
+ loss: 570.847036100743
+ rating_group: 0
+ YSS+707d4f98d9d2620cdaab58f19d02a2e4:
+ last_modified: 2008-04-07 08:51:42 +09:00
+ name: YSS
+ rate: -1529.0
+ win: 1012.14413170938
+ loss: 121.533527986877
+ rating_group: 0
+ Nanoha2008+667f27d411182c654c12a55edc01460b:
+ last_modified: 2008-05-08 23:36:36 +09:00
+ name: Nanoha2008
+ rate: -2786.0
+ win: 3.0
+ last_game_win: false
+ loss: 62.0
+ rating_group: 0
+ misaki900+d9ffaac630ab2ae0e93674c1b505f1aa:
+ last_modified: 2008-05-08 20:20:50 +09:00
+ name: misaki900
+ rate: -2293.0
+ win: 915.676971193636
+ loss: 1742.47270086152
+ rating_group: 0
+ tacos+282db3bc7edc88e4f182382c8b5cc147:
+ last_modified: 2008-05-08 09:39:25 +09:00
+ name: tacos
+ rate: -1818.0
+ win: 657.754164439212
+ loss: 355.565692600649
+ rating_group: 0
+ gps_qtseeapp+ca8836c54b39c7fef557966e19a45c4b:
+ last_modified: 2008-04-09 21:08:37 +09:00
+ name: gps_qtseeapp
+ rate: 2901.0
+ win: 16.1716844095597
+ loss: 14.6247159019338
+ rating_group: 0
+ KShogi900+d0426ce2e69157611ba5e225f4a92d11:
+ last_modified: 2008-04-27 09:49:56 +09:00
+ name: KShogi900
+ rate: -1768.0
+ win: 387.398787408915
+ loss: 145.420571829785
+ rating_group: 0
+ gps_kh2+73cb40740074cde329b31fb6f7b0a2d1:
+ last_modified: 2008-05-04 00:33:13 +09:00
+ name: gps_kh2
+ rate: 2839.0
+ win: 17.0
+ loss: 22.0
+ rating_group: 0
+ aleag1tst+3123059c1c816471780539f6b6b738dc:
+ last_modified: 2008-05-01 20:10:26 +09:00
+ name: aleag1tst
+ rate: -2463.0
+ win: 9.48524456819644
+ loss: 29.9907372901062
+ rating_group: 0
+ coredump+8c0b2e8281d25adfb3a6bd4fdcae6e57:
+ last_modified: 2008-05-02 11:00:08 +09:00
+ name: coredump
+ rate: -1984.0
+ win: 459.776797445082
+ loss: 337.429375313976
+ rating_group: 0
+ tomi900+fc9505d3dd1ebdd726ad7d2d1fc17c42:
+ last_modified: 2008-02-17 18:24:33 +09:00
+ name: tomi900
+ rate: -2394.0
+ win: 16.6734844869228
+ loss: 41.0136210133544
+ rating_group: 0
+ gps_effect5x3const16+1268f1e5638290288bce86eabe09826c:
+ last_modified: 2008-04-10 18:44:22 +09:00
+ name: gps_effect5x3const16
+ rate: 2904.0
+ win: 14.0017416718463
+ loss: 12.4685158739091
+ rating_group: 0
+ garyu+2e31d52fa05194cf8f2ad023ac572f09:
+ last_modified: 2008-05-03 01:49:54 +09:00
+ name: garyu
+ rate: -2592.0
+ win: 97.261418788048
+ loss: 706.624377702383
+ rating_group: 0
+ gps1000+e293220e3f8a3e59f79f6b0efffaa931:
+ last_modified: 2008-02-11 02:11:19 +09:00
+ name: gps1000
+ rate: -1837.0
+ win: 33.513467493493
+ loss: 12.472413919018
+ rating_group: 0
+ gps_exp5o8+ee125a193a2ba9c1bf4f662a87494c2e:
+ last_modified: 2008-05-01 11:54:17 +09:00
+ name: gps_exp5o8
+ rate: 2873.0
+ win: 15.8338481766278
+ loss: 16.814632622013
+ rating_group: 0
+ yowai_gps+95908f6c18338f5340371f71523fc5e3:
+ last_modified: 2008-05-08 02:10:38 +09:00
+ name: yowai_gps
+ rate: -2507.0
+ win: 225.669212529662
+ loss: 290.616556759499
+ rating_group: 0
+ MyMove900+94a2fb7f864ae656bdf9ed1d1dae3a3c:
+ last_modified: 2008-05-08 23:53:26 +09:00
+ name: MyMove900
+ rate: -2253.0
+ last_game_win: true
+ win: 1360.66968921526
+ loss: 2363.83249839534
+ rating_group: 0
+ gps_newopening+11648e4e66e7ed6a86cb7f1d0cf604fe:
+ last_modified: 2008-03-24 12:46:27 +09:00
+ name: gps_newopening
+ rate: 2885.0
+ win: 286.317698576181
+ loss: 283.546448297247
+ rating_group: 0
+ YSS-1s+707d4f98d9d2620cdaab58f19d02a2e4:
+ last_modified: 2008-02-25 12:10:26 +09:00
+ name: YSS-1s
+ rate: -1794.0
+ win: 65.3391219828853
+ loss: 10.0415273195652
+ rating_group: 0
+ gps800+e293220e3f8a3e59f79f6b0efffaa931:
+ last_modified: 2008-02-20 11:45:21 +09:00
+ name: gps800
+ rate: -2037.0
+ win: 154.968017134351
+ loss: 112.015983590553
+ rating_group: 0
+ gps_pr8nrc+9c818a715439bb58038ea13860fa67a4:
+ last_modified: 2008-03-28 03:28:28 +09:00
+ name: gps_pr8nrc
+ rate: 2983.0
+ win: 15.2870195536467
+ loss: 8.6458627298524
+ rating_group: 0
+ gps_s3+11648e4e66e7ed6a86cb7f1d0cf604fe:
+ last_modified: 2008-05-06 21:30:22 +09:00
+ name: gps_s3
+ rate: 2910.0
+ win: 63.0
+ loss: 54.0
+ rating_group: 0
+ gps_q5p30_2+b46f4b3b73dd9fe02be65a13fea11267:
+ last_modified: 2008-05-01 13:31:31 +09:00
+ name: gps_q5p30_2
+ rate: 2923.0
+ win: 9.91954762752418
+ loss: 7.93089563712773
+ rating_group: 0
+ gps_pp2+1028f7b380e75bd54a5adb6de266e90d:
+ last_modified: 2008-05-08 16:07:05 +09:00
+ name: gps_pp2
+ rate: 2825.0
+ win: 10.0
+ loss: 14.0
+ rating_group: 0
+ gps_newopening5_2dan+11648e4e66e7ed6a86cb7f1d0cf604fe:
+ last_modified: 2008-05-01 15:33:32 +09:00
+ name: gps_newopening5_2dan
+ rate: 2978.0
+ win: 30.7005284346696
+ loss: 17.8061733102248
+ rating_group: 0
+ cat18_on_note+1a3871214cdb95f2f7f9e2910c4cf3bb:
+ last_modified: 2008-04-20 14:23:15 +09:00
+ name: cat18_on_note
+ rate: -2385.0
+ win: 158.469804422715
+ loss: 474.828163150174
+ rating_group: 0
+ gps_lt3+a62314b60359500f4974c756b04d98e8:
+ last_modified: 2008-03-06 20:40:07 +09:00
+ name: gps_lt3
+ rate: 2876.0
+ win: 10.9114049440672
+ loss: 11.4125817038391
+ rating_group: 0
+ gps_ce2l+970196b4e4c872321da146e7afe8f298:
+ last_modified: 2008-03-29 16:53:13 +09:00
+ name: gps_ce2l
+ rate: 2833.0
+ win: 8.12683984375216
+ loss: 10.8520014353578
+ rating_group: 0
+ gps_exp3o4+3066c53d1daa02af64e5590a2b0fc0d2:
+ last_modified: 2008-05-01 11:45:01 +09:00
+ name: gps_exp3o4
+ rate: 2873.0
+ win: 14.8469848849175
+ loss: 15.8286221375783
+ rating_group: 0
+ misaki-on-note+d9ffaac630ab2ae0e93674c1b505f1aa:
+ last_modified: 2008-02-18 13:45:41 +09:00
+ name: misaki-on-note
+ rate: -2409.0
+ win: 7.6867985801868
+ loss: 13.6426899212265
+ rating_group: 0
+ gps_qtsee2mc3+d891620d5f4f4e770f726dbbe471d04c:
+ last_modified: 2008-04-07 03:52:09 +09:00
+ name: gps_qtsee2mc3
+ rate: 2919.0
+ win: 16.4187162582884
+ loss: 13.4225518156186
+ rating_group: 0
+ cat10+4bf1d145889d0e2410b76cefb149a404:
+ last_modified: 2008-04-05 18:46:36 +09:00
+ name: cat10
+ rate: -2387.0
+ win: 149.082727062101
+ loss: 315.274052558195
+ rating_group: 0
+ gps_see+243d91f6c72383cf5892a6f8fbb434c1:
+ last_modified: 2008-03-14 23:33:43 +09:00
+ name: gps_see
+ rate: 2902.0
+ win: 11.410682224614
+ loss: 10.2861901919957
+ rating_group: 0
+ gps_cpu4+1990ca8a73acba0401f325228d8c4f96:
+ last_modified: 2008-04-29 06:53:19 +09:00
+ name: gps_cpu4
+ rate: 3227.0
+ win: 47.9581993943147
+ loss: 33.4593638353841
+ rating_group: 0
+ gps_open25+4d56adee9881b46fb4afbbd012927f77:
+ last_modified: 2008-03-25 14:06:12 +09:00
+ name: gps_open25
+ rate: 2919.0
+ win: 14.200925757193
+ loss: 11.615577284037
+ rating_group: 0
+ gps_qtseeareaplus+5b9d8f9e83727e96205e14dadd591991:
+ last_modified: 2008-04-08 13:24:48 +09:00
+ name: gps_qtseeareaplus
+ rate: 2954.0
+ win: 18.1971584089735
+ loss: 12.1262337391889
+ rating_group: 0
+ gps_kh3+d2663672168f8bb0598d79995b007685:
+ last_modified: 2008-05-04 05:08:19 +09:00
+ name: gps_kh3
+ rate: 2884.0
+ win: 20.0
+ loss: 20.0
+ rating_group: 0
+ gps_np+3c3ed5c337e39d047bc524e8d8eb0c6b:
+ last_modified: 2008-04-17 13:34:11 +09:00
+ name: gps_np
+ rate: 2864.0
+ win: 14.3060572181627
+ loss: 15.9983548226445
+ rating_group: 0
+ gps_so+a143c0e9135d136d05f8f6c63953a3a3:
+ last_modified: 2008-04-11 16:53:45 +09:00
+ name: gps_so
+ rate: 2784.0
+ win: 7.09254352512512
+ loss: 12.6087468546625
+ rating_group: 0
+ gps_ka8+13f69316942a7bb10b33769f4f6513c9:
+ last_modified: 2008-05-02 10:16:23 +09:00
+ name: gps_ka8
+ rate: 2780.0
+ win: 10.9888205042163
+ loss: 19.9828527944161
+ rating_group: 0
+ gps_kachi2+aab2d27a867ba2a63a1f92ce999845f3:
+ last_modified: 2008-04-28 02:24:26 +09:00
+ name: gps_kachi2
+ rate: 2918.0
+ win: 20.8983310934689
+ loss: 17.1026689105532
+ rating_group: 0
+ gps_mc3+5cef59cf3430503dacd5d71122802791:
+ last_modified: 2008-04-06 23:50:56 +09:00
+ name: gps_mc3
+ rate: 2907.0
+ win: 29.0023324106828
+ loss: 25.2929762134241
+ rating_group: 0
+ yowa_usa+0c6049789d5fa11db9785155258b93b5:
+ last_modified: 2008-05-08 23:36:36 +09:00
+ name: yowa_usa
+ rate: -2724.0
+ win: 10.8629800426498
+ last_game_win: true
+ loss: 161.737929496205
+ rating_group: 0
+ gps_step_100+69a935e4287879be46f83b2817b46f85:
+ last_modified: 2008-05-02 22:06:19 +09:00
+ name: gps_step_100
+ rate: 2884.0
+ win: 16.9991860852941
+ loss: 16.9976980786016
+ rating_group: 0
+ gps_pfo+eafbd3c8c3c02fbc307b9ee9be81dd3d:
+ last_modified: 2008-05-05 19:14:12 +09:00
+ name: gps_pfo
+ rate: -2473.0
+ win: 269.0
+ loss: 221.0
+ rating_group: 0
+ gps_open25_20+d70e3f7b088ccfd310962bb37fc975ac:
+ last_modified: 2008-03-26 16:27:46 +09:00
+ name: gps_open25_20
+ rate: 2931.0
+ win: 13.7364342241624
+ loss: 10.4680907249845
+ rating_group: 0
+ kiri-test+f6e396dc8eb6a1123ed65d7ddcc78243:
+ last_modified: 2008-04-27 13:50:45 +09:00
+ name: kiri-test
+ rate: -2092.0
+ win: 40.5473992591258
+ loss: 37.9301462747398
+ rating_group: 0
+ gps_mc2+ef32e1eeadb591be032ffd87fa8f3aab:
+ last_modified: 2008-04-04 17:11:44 +09:00
+ name: gps_mc2
+ rate: 2804.0
+ win: 8.7152292056957
+ loss: 13.7960054306812
+ rating_group: 0
+ gps_cc2+e178cc4ceb7f69ca039aa46c746f18bf:
+ last_modified: 2008-04-26 21:59:53 +09:00
+ name: gps_cc2
+ rate: 2866.0
+ win: 17.7971465882009
+ loss: 19.6880419042549
+ rating_group: 0
+ gps_cpu4tbb+d631d551c7b87d36905f46167caa41c5:
+ last_modified: 2008-04-29 06:53:19 +09:00
+ name: gps_cpu4tbb
+ rate: 3127.0
+ win: 8.68479132982944
+ loss: 15.4436996507596
+ rating_group: 0
+ gps_qtsee+d094a7c36b2c59d9cd7fcd2231505f8a:
+ last_modified: 2008-04-04 22:25:14 +09:00
+ name: gps_qtsee
+ rate: 2991.0
+ win: 18.9090769183675
+ loss: 10.1784071014068
+ rating_group: 0
+ gps_seenr+734797905c1a9e6d1ad64f19c31a1e1d:
+ last_modified: 2008-03-13 01:51:12 +09:00
+ name: gps_seenr
+ rate: 2921.0
+ win: 11.7279128495228
+ loss: 9.48396449634873
+ rating_group: 0
+ gps_mc00+67fe440a10c121de46c4276fc6332b7a:
+ last_modified: 2008-04-11 12:15:31 +09:00
+ name: gps_mc00
+ rate: 2884.0
+ win: 11.7897169909261
+ loss: 11.7839083830482
+ rating_group: 0
+ gps_kf+3301824de7e4a161724564abf32f0363:
+ last_modified: 2008-05-03 01:24:13 +09:00
+ name: gps_kf
+ rate: 2884.0
+ win: 20.0
+ loss: 19.9995076024558
+ rating_group: 0
+ gps500+e293220e3f8a3e59f79f6b0efffaa931:
+ last_modified: 2008-05-08 23:40:19 +09:00
+ name: gps500
+ rate: -2423.0
+ win: 475.931766690695
+ loss: 1720.65416034238
+ rating_group: 0
+ bingo+7859e4cc481f9487f5d45e6ade7a2518:
+ last_modified: 2008-05-01 03:38:47 +09:00
+ name: bingo
+ rate: -1623.0
+ last_game_win: false
+ win: 1208.89734617365
+ loss: 237.437390949787
+ rating_group: 0
+ spear900_note+0de01547572775761f6eb2b9ec59dbae:
+ last_modified: 2008-05-02 07:07:38 +09:00
+ name: spear900_note
+ rate: -2103.0
+ win: 247.103632012203
+ loss: 251.852475537186
+ rating_group: 0
+ 6:
+ gps0_kab6+67a1c27d42175909f3dfb4be9b34468d:
+ last_modified: 2008-05-04 16:34:03 +09:00
+ name: gps0_kab6
+ rate: 1114.0
+ win: 13.0
+ loss: 7.0
+ rating_group: 6
+ gps0_epi+3d727b4e40d6345563da37a3f33c0c83:
+ last_modified: 2008-05-04 00:26:05 +09:00
+ name: gps0_epi
+ rate: 936.0
+ win: 8.0
+ loss: 12.0
+ rating_group: 6
+ gps0_mpke+bb9f7923189236268b0bfee73e995729:
+ last_modified: 2008-04-30 01:57:00 +09:00
+ name: gps0_mpke
+ rate: 971.0
+ win: 8.77311662103004
+ loss: 10.726403086889
+ rating_group: 6
+ gps0+3db9f442857731ed6f858ac991bc90d5:
+ last_modified: 2008-05-04 16:34:03 +09:00
+ name: gps0
+ rate: 1006.0
+ win: 40.6362611991685
+ last_game_win: true
+ loss: 38.7001461662861
+ rating_group: 6
+ gps0_epkm+5f692dd43863431e607e059122178b21:
+ last_modified: 2008-05-01 13:46:06 +09:00
+ name: gps0_epkm
+ rate: 971.0
+ win: 8.92702954525609
+ loss: 10.9098581122795
+ rating_group: 6
+ 1:
+ gps1_pmpc10+886242d533721d4f6deb70ab99c65b8a:
+ last_modified: 2008-03-09 03:47:04 +09:00
+ name: gps1_pmpc10
+ rate: 1027.0
+ win: 11.2028891182806
+ loss: 8.53709973211393
+ rating_group: 1
+ gps1_pmp2+eaf775d96a8a33ca7d935c65e4bf6792:
+ last_modified: 2008-04-25 18:55:17 +09:00
+ name: gps1_pmp2
+ rate: 994.0
+ win: 7.41429387801882
+ loss: 8.34541679222178
+ rating_group: 1
+ gps1_pmp4+c08b10fe0f713d9dd64c7b46abe8ec37:
+ last_modified: 2008-04-27 12:10:25 +09:00
+ name: gps1_pmp4
+ rate: 774.0
+ win: 3.77791937551651
+ loss: 15.1395135795855
+ rating_group: 1
+ gps0_p+d5b7ec89ea83deaece5f6e0a5fcdfad7:
+ last_modified: 2008-05-06 00:26:20 +09:00
+ name: gps0_p
+ rate: 980.0
+ win: 160.600056350417
+ loss: 168.073317052044
+ rating_group: 1
+ gps1_ppb+0ac9978c2bd7b19ab10a7aa1e2284cd5:
+ last_modified: 2008-05-02 19:40:39 +09:00
+ name: gps1_ppb
+ rate: 1122.0
+ win: 13.0
+ loss: 7.0
+ rating_group: 1
+ gps1_p+e2a4088894d38f53c579be64644aa0ce:
+ last_modified: 2008-05-04 09:18:24 +09:00
+ name: gps1_p
+ rate: 1015.0
+ win: 122.337709090737
+ loss: 122.158686634462
+ rating_group: 1
+ gps1_pmp3+9b3a277d62350375b0d1b5a3e8b501e0:
+ last_modified: 2008-04-26 11:45:15 +09:00
+ name: gps1_pmp3
+ rate: 1050.0
+ win: 10.281108847505
+ loss: 8.42133796130253
+ rating_group: 1
+ gps1_ppabb3+e6df1c5175209f2ddbc537401eae0052:
+ last_modified: 2008-04-08 10:50:53 +09:00
+ name: gps1_ppabb3
+ rate: 909.0
+ win: 12.0874241992837
+ loss: 18.14354756741
+ rating_group: 1
+ gps0_pnpee2+93f19f509fe12c6f49d3a1e6a0b2e725:
+ last_modified: 2008-04-25 17:35:14 +09:00
+ name: gps0_pnpee2
+ rate: 909.0
+ win: 7.4117785398901
+ loss: 11.1196619009622
+ rating_group: 1
+ gps0_epi2+585ee99a46f1453587ed4dbce7bf1712:
+ last_modified: 2008-05-04 13:24:15 +09:00
+ name: gps0_epi2
+ rate: 1015.0
+ win: 11.0
+ loss: 9.0
+ rating_group: 1
+ gps1_pmp6+7e4a98f5d21d0bfbdbf06c905a5ec76f:
+ last_modified: 2008-04-29 17:18:37 +09:00
+ name: gps1_pmp6
+ rate: 980.0
+ win: 8.73319292008062
+ loss: 10.6748914106424
+ rating_group: 1
+ gps1_pmp5+2dc0d15860881dad0c2048ba6046b3b3:
+ last_modified: 2008-04-28 14:55:23 +09:00
+ name: gps1_pmp5
+ rate: 1015.0
+ win: 9.57992527409892
+ loss: 9.57928748387886
+ rating_group: 1
+ gps1_pe2+2f8973d8d3e301ca5819a8c6cf650e1a:
+ last_modified: 2008-04-30 14:12:40 +09:00
+ name: gps1_pe2
+ rate: 1015.0
+ win: 15.2959586162338
+ loss: 14.2828692000647
+ rating_group: 1
+ gps0_pkte+da595ccd83a463811f6b606c066810d0:
+ last_modified: 2008-04-21 11:52:25 +09:00
+ name: gps0_pkte
+ rate: 1087.0
+ win: 11.4662095419876
+ loss: 6.17743471733985
+ rating_group: 1
+ gps1_pcx+5b2e1a61c9dc9a869ab14d5a8d98e74d:
+ last_modified: 2008-04-21 16:46:36 +09:00
+ name: gps1_pcx
+ rate: 980.0
+ win: 7.95923156541008
+ loss: 9.72718755194501
+ rating_group: 1
+ gps1_pmp+16b30034aa230cb0390fbb4b9afb29d1:
+ last_modified: 2008-04-25 03:13:30 +09:00
+ name: gps1_pmp
+ rate: 1108.0
+ win: 11.0418289499423
+ loss: 6.44561033853136
+ rating_group: 1
+ gps0_pmke+4e3c1830c160c63cd4450b84eb0b2f54:
+ last_modified: 2008-04-27 15:41:40 +09:00
+ name: gps0_pmke
+ rate: 1088.0
+ win: 12.323826352781
+ loss: 6.62244088559627
+ rating_group: 1
+ gps1_pkj+bf60767768e6a99e06734e7365c2f1ee:
+ last_modified: 2008-05-03 12:18:29 +09:00
+ name: gps1_pkj
+ rate: 980.0
+ win: 9.0
+ loss: 11.0
+ rating_group: 1
+ gps0_pnpef+6a7f1956f921cc8ab4b2d123f14f6ac4:
+ last_modified: 2008-04-23 19:43:55 +09:00
+ name: gps0_pnpef
+ rate: 980.0
+ win: 9.06187135480589
+ loss: 9.06017127503476
+ rating_group: 1
+ gps0_pke5+facace91f58b19e1bd54f788d5601f47:
+ last_modified: 2008-05-01 15:52:53 +09:00
+ name: gps0_pke5
+ rate: 980.0
+ win: 9.92368849637954
+ loss: 9.91752462603345
+ rating_group: 1
+ gps0_pnpee+9d1358e53dcab6368c74a6c556e2ae09:
+ last_modified: 2008-04-24 22:42:36 +09:00
+ name: gps0_pnpee
+ rate: 945.0
+ win: 8.25074808692898
+ loss: 10.0901391336692
+ rating_group: 1
+ gps1_pepf+4aad5d94ef116c66f9d85dea66a5d5c9:
+ last_modified: 2008-05-01 17:02:54 +09:00
+ name: gps1_pepf
+ rate: 1050.0
+ win: 10.9287270917035
+ loss: 8.93239341491624
+ rating_group: 1
+ gps1_pkd+92b2e371254e093ee41288d99d68ee29:
+ last_modified: 2008-05-04 09:18:24 +09:00
+ name: gps1_pkd
+ rate: 980.0
+ win: 9.0
+ loss: 11.0
+ rating_group: 1
+ gps0_pmkb+815a8899b63276bec38b8c54886fe355:
+ last_modified: 2008-04-26 20:02:50 +09:00
+ name: gps0_pmkb
+ rate: 1127.0
+ win: 13.1421706174191
+ loss: 5.63133448814683
+ rating_group: 1
+ gps0_pkte2+996384f8b2baf98042196c0990aff956:
+ last_modified: 2008-04-22 18:45:12 +09:00
+ name: gps0_pkte2
+ rate: 1015.0
+ win: 9.84562219563632
+ loss: 8.06071389199098
+ rating_group: 1
+ gps0_pbsm+7fd35123ccaa14f67462976d22fb2810:
+ last_modified: 2008-04-29 15:33:50 +09:00
+ name: gps0_pbsm
+ rate: 909.0
+ win: 7.7450965938711
+ loss: 11.6441019024452
+ rating_group: 1
+ gps0_p15rp2+e64ad2ae7fd1217425c8489d1e190668:
+ last_modified: 2008-04-11 03:35:30 +09:00
+ name: gps0_p15rp2
+ rate: 872.0
+ win: 5.4791200834662
+ loss: 10.1748393347354
+ rating_group: 1
+ gps1_ppabb2+d07da6400758989888fff3fcbb4a938c:
+ last_modified: 2008-04-06 18:52:41 +09:00
+ name: gps1_ppabb2
+ rate: 1030.0
+ win: 14.8422787892135
+ loss: 11.1303228560631
+ rating_group: 1
+ gps0_ppkd2+bf6912b6dbd47900a79d5c1fb792dd52:
+ last_modified: 2008-05-06 00:26:20 +09:00
+ name: gps0_ppkd2
+ rate: 945.0
+ win: 9.0
+ loss: 11.0
+ rating_group: 1
+ gps0_ppbw+20c38aac12d0a0cdcd1a0a5a8aa4d6fa:
+ last_modified: 2008-04-30 14:46:16 +09:00
+ name: gps0_ppbw
+ rate: 980.0
+ win: 9.80169607999749
+ loss: 9.80612633695485
+ rating_group: 1
+ gps1_pnpe+0ab166cc8ae68837ce39031ed949df91:
+ last_modified: 2008-04-22 19:04:02 +09:00
+ name: gps1_pnpe
+ rate: 1122.0
+ win: 11.6353971180556
+ loss: 6.27379905956942
+ rating_group: 1
+ 7:
+ gps1_epf3+259d1309f956da0c489fa1e2b927cd9c:
+ last_modified: 2008-05-03 09:16:56 +09:00
+ name: gps1_epf3
+ rate: 1027.0
+ win: 11.0
+ loss: 9.0
+ rating_group: 7
+ gps1_epf2+3d5b65bb7f12ad93dacf6c6a590a4dfb:
+ last_modified: 2008-05-01 23:18:14 +09:00
+ name: gps1_epf2
+ rate: 1063.0
+ win: 11.9546345439284
+ loss: 7.96566841464449
+ rating_group: 7
+ gps1_kd2+856d95db222350404da567880e3a3485:
+ last_modified: 2008-05-04 08:44:44 +09:00
+ name: gps1_kd2
+ rate: 958.0
+ win: 9.0
+ loss: 11.0
+ rating_group: 7
+ gps1+5df059ccf2eda413600fc00081cc3d54:
+ last_modified: 2008-05-04 08:44:44 +09:00
+ name: gps1
+ rate: 992.0
+ win: 38.7560781175983
+ loss: 40.7812257933127
+ rating_group: 7
+ gps1_e4+b2edfcc33e14f5a5041b9ba1bcc08c3c:
+ last_modified: 2008-04-30 15:15:39 +09:00
+ name: gps1_e4
+ rate: 957.0
+ win: 8.82659124938429
+ loss: 10.7904097029538
+ rating_group: 7
+ 2:
+ gps6_psmf+01b42ab957311139e07ede84f547355b:
+ last_modified: 2008-04-10 20:27:18 +09:00
+ name: gps6_psmf
+ rate: 1017.0
+ win: 7.80590970299945
+ loss: 7.79646032724219
+ rating_group: 2
+ gps6_rp3+9ac0b1cb4eb5b51c1062bd97d0a47ef4:
+ last_modified: 2008-05-04 16:51:42 +09:00
+ name: gps6_rp3
+ rate: 1017.0
+ win: 10.0
+ loss: 10.0
+ rating_group: 2
+ gps7_p+edcd30db6362262ddb5c42327c96bcdc:
+ last_modified: 2008-05-04 09:45:39 +09:00
+ name: gps7_p
+ rate: 979.0
+ win: 54.77840245852
+ loss: 57.306261169016
+ rating_group: 2
+ gps7_pkeu2+06cf8d45cd8db00554aa81d08bbbed21:
+ last_modified: 2008-05-01 22:18:55 +09:00
+ name: gps7_pkeu2
+ rate: 979.0
+ win: 9.95615463613726
+ loss: 9.9613054078766
+ rating_group: 2
+ gps6_pw4+02ee4810f85e8a88b088f4561be4cb83:
+ last_modified: 2008-05-08 03:54:12 +09:00
+ name: gps6_pw4
+ rate: 909.0
+ win: 7.0
+ loss: 13.0
+ rating_group: 2
+ gps6_ppb2+fa14f013a1cb083ad0da5dd3ed61cab6:
+ last_modified: 2008-05-03 11:58:11 +09:00
+ name: gps6_ppb2
+ rate: 1017.0
+ win: 10.0
+ loss: 10.0
+ rating_group: 2
+ gps7_pz2+705c4dbca749eb9d17ca07a73e2e04cb:
+ last_modified: 2008-04-07 17:28:42 +09:00
+ name: gps7_pz2
+ rate: 982.0
+ win: 6.78177767981663
+ loss: 8.280716551552
+ rating_group: 2
+ gps6_pw3+a53d6169ee0c70812da62c5251ddb25d:
+ last_modified: 2008-05-07 10:26:36 +09:00
+ name: gps6_pw3
+ rate: 1017.0
+ win: 10.0
+ loss: 10.0
+ rating_group: 2
+ gps6_pebv+527147c9835290f6c5ddc5b9ddb35666:
+ last_modified: 2008-04-30 17:48:51 +09:00
+ name: gps6_pebv
+ rate: 982.0
+ win: 8.83377589213516
+ loss: 10.800285846288
+ rating_group: 2
+ gps7_pz3+b69d94a2f5764780061eb9dd7d8a79a6:
+ last_modified: 2008-04-08 17:13:41 +09:00
+ name: gps7_pz3
+ rate: 1017.0
+ win: 7.61059534994535
+ loss: 7.62017859056819
+ rating_group: 2
+ gps7_pkab+fd61ed1b7ae0cc7c862c6386cb8a3644:
+ last_modified: 2008-05-02 19:13:06 +09:00
+ name: gps7_pkab
+ rate: 924.0
+ win: 8.0
+ loss: 11.0
+ rating_group: 2
+ gps6_peb3+2a699ef355a01127ed97fa7efca111f4:
+ last_modified: 2008-05-01 15:56:46 +09:00
+ name: gps6_peb3
+ rate: 1088.0
+ win: 11.9100572426239
+ loss: 7.93522543019853
+ rating_group: 2
+ gps6_peb+42afc7b6b767396b1e83b355c0deea22:
+ last_modified: 2008-04-30 00:47:07 +09:00
+ name: gps6_peb
+ rate: 1125.0
+ win: 12.6676118707801
+ loss: 6.82195084311398
+ rating_group: 2
+ gps6_p+94b2b9d94ed461ab4b4053a2d4c4a114:
+ last_modified: 2008-05-08 23:51:37 +09:00
+ name: gps6_p
+ rate: 1017.0
+ win: 131.734394623725
+ last_game_win: true
+ loss: 122.431671775223
+ rating_group: 2
+ gps7_pep+121fdf8ca75a59cc152c19c67e2daed4:
+ last_modified: 2008-04-30 17:29:38 +09:00
+ name: gps7_pep
+ rate: 1086.0
+ win: 12.7525997544867
+ loss: 6.87280643894678
+ rating_group: 2
+ gps7_pkab4+99f0133905fb05d3b6de0a469f382dd0:
+ last_modified: 2008-05-04 09:45:39 +09:00
+ name: gps7_pkab4
+ rate: 909.0
+ win: 8.0
+ loss: 12.0
+ rating_group: 2
+ gps6_psmf2+0d49e10c9175e6600d84cf8511a9e8d0:
+ last_modified: 2008-04-11 15:56:58 +09:00
+ name: gps6_psmf2
+ rate: 1017.0
+ win: 7.87765342522577
+ loss: 7.88207025636964
+ rating_group: 2
+ gps6_pw2+92b472c3f617095009fed8960f5670a4:
+ last_modified: 2008-05-06 15:16:35 +09:00
+ name: gps6_pw2
+ rate: 909.0
+ win: 7.0
+ loss: 13.0
+ rating_group: 2
+ 8:
+ gps6_akt+c3100b3aa28d7219a8cf5c11e977526e:
+ last_modified: 2008-05-03 08:37:56 +09:00
+ name: gps6_akt
+ rate: 1081.0
+ win: 13.0
+ loss: 6.0
+ rating_group: 8
+ gps6_pw6+712bd16b4a856f9d6a193c868621347d:
+ last_modified: 2008-05-08 23:14:25 +09:00
+ name: gps6_pw6
+ rate: 989.0
+ win: 14.0
+ last_game_win: true
+ loss: 11.0
+ rating_group: 8
+ gps6_rp2+fc6cfcea7623c03a83b53089ba8c5ae8:
+ last_modified: 2008-05-04 13:29:22 +09:00
+ name: gps6_rp2
+ rate: 982.0
+ win: 11.0
+ loss: 9.0
+ rating_group: 8
+ gps6+d915e85b03226884d42e5602373dfd02:
+ last_modified: 2008-05-08 23:14:25 +09:00
+ name: gps6
+ rate: 947.0
+ last_game_win: false
+ win: 26.0
+ loss: 38.0
+ rating_group: 8
+ 3:
+ gps4_p+53ee4319f15f9cae0b108de6befac23b:
+ last_modified: 2008-04-28 11:36:01 +09:00
+ name: gps4_p
+ rate: 1022.0
+ win: 64.9417662122736
+ loss: 55.9935568106017
+ rating_group: 3
+ gps4_pkep+3e887935d6b823165b5ef06ffc31e7ee:
+ last_modified: 2008-04-25 06:48:44 +09:00
+ name: gps4_pkep
+ rate: 951.0
+ win: 7.35253627034135
+ loss: 11.0644423115383
+ rating_group: 3
+ gps4_paebf2+5e73acb18c0edf18355c1b8bc5c6e22c:
+ last_modified: 2008-04-07 14:04:23 +09:00
+ name: gps4_paebf2
+ rate: 1022.0
+ win: 7.51827645124211
+ loss: 7.51802897203015
+ rating_group: 3
+ gps4_pmkke+a479c9c94175d5b52bb10612e9f922b9:
+ last_modified: 2008-04-27 15:54:25 +09:00
+ name: gps4_pmkke
+ rate: 1057.0
+ win: 10.4245996233114
+ loss: 8.52445975437956
+ rating_group: 3
+ gps4_pkep2+caa2af4cf9c0d28c06c3d70fd1bc473d:
+ last_modified: 2008-04-26 03:17:00 +09:00
+ name: gps4_pkep2
+ rate: 914.0
+ win: 6.51048120006291
+ loss: 12.1080218278633
+ rating_group: 3
+ gps4_paebf5+0bef04a983e064f6f81b74582576ea2b:
+ last_modified: 2008-04-10 02:20:50 +09:00
+ name: gps4_paebf5
+ rate: 1022.0
+ win: 7.73684061157097
+ loss: 7.73566466353795
+ rating_group: 3
+ gps4_paebf4+b01dbad724eb48420ccdb2a7e4cb22ad:
+ last_modified: 2008-04-09 03:03:04 +09:00
+ name: gps4_paebf4
+ rate: 987.0
+ win: 6.88429453628398
+ loss: 8.41980869197081
+ rating_group: 3
+ gps4_pmkke2+da66a3260b9799655b3a797320752305:
+ last_modified: 2008-04-28 11:36:01 +09:00
+ name: gps4_pmkke2
+ rate: 1022.0
+ win: 9.56652811778896
+ loss: 9.57133999095356
+ rating_group: 3
+ 999:
+ gps7_ppabI3+0272537aeed684c58bc1104033e34aa0:
+ last_modified: 2008-02-12 00:49:37 +09:00
+ name: gps7_ppabI3
+ rate: 0
+ win: 2.37413854405468
+ loss: 4.75192340608516
+ rating_group: 999
+ ipa+43945d0d3e53ac07d91b0e0f59fd1e21:
+ last_modified: 2008-03-30 14:57:21 +09:00
+ name: ipa
+ rate: 0
+ win: 0.0
+ loss: 1.37599301613844
+ rating_group: 999
+ gps7_pmk2+9c1c35a453346f0b5b664949689c98b8:
+ last_modified: 2008-03-05 11:04:57 +09:00
+ name: gps7_pmk2
+ rate: 0
+ win: 7.19734717659165
+ loss: 3.08348905396196
+ rating_group: 999
+ gps_do+11648e4e66e7ed6a86cb7f1d0cf604fe:
+ last_modified: 2008-05-01 16:55:51 +09:00
+ name: gps_do
+ rate: 0
+ win: 5.97558324489925
+ loss: 0.994988766801764
+ rating_group: 999
+ GOD+098f6bcd4621d373cade4e832627b4f6:
+ last_modified: 2008-03-14 22:48:17 +09:00
+ name: GOD
+ rate: 0
+ win: 0.0
+ loss: 1.43410183880869
+ rating_group: 999
+ gps7_pmk3+a3f122a05091ce9f0939de99d96b114d:
+ last_modified: 2008-03-06 15:16:05 +09:00
+ name: gps7_pmk3
+ rate: 0
+ win: 4.16049011364312
+ loss: 6.23719503773664
+ rating_group: 999
+ gps1_ppabb+3d1e87fe095b83f982bfbddc5cec13e1:
+ last_modified: 2008-03-31 14:36:41 +09:00
+ name: gps1_ppabb
+ rate: 0
+ win: 6.24789639065473
+ loss: 4.15965642161918
+ rating_group: 999
+ gps4_paebf3+0126f06215f43b87402ccadd720169e4:
+ last_modified: 2008-04-08 10:46:12 +09:00
+ name: gps4_paebf3
+ rate: 0
+ win: 2.27910114803295
+ loss: 6.8444977266173
+ rating_group: 999
+ gps1_pka+add01fb87e5a1293d005247c9387391c:
+ last_modified: 2008-02-12 01:34:32 +09:00
+ name: gps1_pka
+ rate: 0
+ win: 3.95938224668317
+ loss: 3.9603124754782
+ rating_group: 999
+ R+098f6bcd4621d373cade4e832627b4f6:
+ last_modified: 2008-02-22 12:20:16 +09:00
+ name: R
+ rate: 0
+ win: 0.448143453067201
+ loss: 2.24050154600835
+ rating_group: 999
+ gps7_pska+ed528aeabb3dccbdf53a5243888aadae:
+ last_modified: 2008-02-14 16:25:32 +09:00
+ name: gps7_pska
+ rate: 0
+ win: 3.67338779718212
+ loss: 3.67339093111968
+ rating_group: 999
+ gps_s2+11648e4e66e7ed6a86cb7f1d0cf604fe:
+ last_modified: 2008-05-04 02:17:33 +09:00
+ name: gps_s2
+ rate: 0
+ win: 2.0
+ loss: 9.0
+ rating_group: 999
+ gps_pr8s3+2a1dd56e1d9ed3a626c737bcdee3ca49:
+ last_modified: 2008-03-25 22:39:21 +09:00
+ name: gps_pr8s3
+ rate: 0
+ win: 1.95129196539734
+ loss: 4.55762133499333
+ rating_group: 999
+ matomoni+50a6348c667759604bc4ff9247c11473:
+ last_modified: 2008-05-05 22:07:24 +09:00
+ name: matomoni
+ rate: 0
+ win: 0.0
+ loss: 13.007470167874
+ rating_group: 999
+ TeamGPS+91d5d6d0427f78f20dbdc8e76007356d:
+ last_modified: 2008-05-04 02:26:43 +09:00
+ name: TeamGPS
+ rate: 0
+ win: 1.0
+ loss: 0.0
+ rating_group: 999
+ test2+47bce5c74f589f4867dbd57e9ca9f808:
+ last_modified: 2008-02-12 18:59:40 +09:00
+ name: test2
+ rate: 0
+ win: 1.19658441710944
+ loss: 2.39816368022251
+ rating_group: 999
+ test1+47bce5c74f589f4867dbd57e9ca9f808:
+ last_modified: 2008-02-12 18:59:40 +09:00
+ name: test1
+ rate: 0
+ win: 2.39816368022251
+ loss: 1.19658441710944
+ rating_group: 999
+ gps4_pkep3+de14ab38aba203fba5770eb28de528ea:
+ last_modified: 2008-04-26 22:15:24 +09:00
+ name: gps4_pkep3
+ rate: 0
+ win: 4.70323518646419
+ loss: 8.46352764886076
+ rating_group: 999
+ misaki900+8fb8876e8bb2125c004ded950d8bbb67:
+ last_modified: 2008-05-02 02:39:23 +09:00
+ name: misaki900
+ rate: 0
+ win: 3.0
+ loss: 5.99867526631817
+ rating_group: 999
+ gps1_pmpc8+9678ca96f57cc5a75782a1145fc9987b:
+ last_modified: 2008-03-07 05:34:47 +09:00
+ name: gps1_pmpc8
+ rate: 0
+ win: 4.71466137351621
+ loss: 4.18614807675241
+ rating_group: 999
+ pc2+03c7c0ace395d80182db07ae2c30f034:
+ last_modified: 2008-03-10 20:31:36 +09:00
+ name: pc2
+ rate: 0
+ win: 1.09512293936863
+ loss: 0.0
+ rating_group: 999
+ gps6_pw+1d7aebda92dce3ad0ce3fd218e8bfcff:
+ last_modified: 2008-05-05 21:49:00 +09:00
+ name: gps6_pw
+ rate: 0
+ win: 1.0
+ loss: 0.0
+ rating_group: 999
+ pc2+92eb5ffee6ae2fec3ad71c777531578f:
+ last_modified: 2008-03-30 11:08:12 +09:00
+ name: pc2
+ rate: 0
+ win: 1.36018889195079
+ loss: 0.387278490318016
+ rating_group: 999
+ gps1_pka4+94a4ef82f4f0dae7d12fcd9e9fa68dc7:
+ last_modified: 2008-02-14 01:36:38 +09:00
+ name: gps1_pka4
+ rate: 0
+ win: 4.45559409749626
+ loss: 3.6480188462149
+ rating_group: 999
+ gps7_psee2+82121163db0812c49f26279d42febd4e:
+ last_modified: 2008-03-04 09:08:38 +09:00
+ name: gps7_psee2
+ rate: 0
+ win: 4.05059795826744
+ loss: 5.57366777190387
+ rating_group: 999
+ gps1_pe3+6df8e3e8851329a1ca3ec14c33ba804b:
+ last_modified: 2008-03-04 13:54:33 +09:00
+ name: gps1_pe3
+ rate: 0
+ win: 3.04228163567075
+ loss: 7.10358487942135
+ rating_group: 999
+ gps1_pg+0283617fd60191c1e333831b9c10defa:
+ last_modified: 2008-02-21 18:13:59 +09:00
+ name: gps1_pg
+ rate: 0
+ win: 4.43060682067607
+ loss: 3.54004292474244
+ rating_group: 999
+ Ayaka2007+7dcac6e40988bcfa8407fc0744f6b64e:
+ last_modified: 2008-02-24 02:39:43 +09:00
+ name: Ayaka2007
+ rate: 0
+ win: 0.0
+ loss: 30.5649072804631
+ rating_group: 999
+ kaneko+5058f1af8388633f609cadb75a75dc9d:
+ last_modified: 2008-03-05 10:41:37 +09:00
+ name: kaneko
+ rate: 0
+ win: 0.0
+ loss: 1.77449942396776
+ rating_group: 999
+ gps7_pmpc+a8189b0f3742350ee20e2caba0808441:
+ last_modified: 2008-03-31 14:33:38 +09:00
+ name: gps7_pmpc
+ rate: 0
+ win: 3.46975464137791
+ loss: 7.63073259993943
+ rating_group: 999
+ gps4_pmpc+37ee2322482bbb586663be8e8cf47e6d:
+ last_modified: 2008-03-04 12:42:10 +09:00
+ name: gps4_pmpc
+ rate: 0
+ win: 5.08024006179467
+ loss: 3.55085944910098
+ rating_group: 999
+ pc2+a87ff679a2f3e71d9181a67b7542122c:
+ last_modified: 2008-03-11 22:52:07 +09:00
+ name: pc2
+ rate: 0
+ win: 0.54172245849132
+ loss: 3.26461164467359
+ rating_group: 999
+ pc1+a87ff679a2f3e71d9181a67b7542122c:
+ last_modified: 2008-03-11 22:50:59 +09:00
+ name: pc1
+ rate: 0
+ win: 3.85595408171491
+ loss: 3.13266127153545
+ rating_group: 999
+ ymshogi_test+61b2c94ea07eda40cfc396e9ae7286cf:
+ last_modified: 2008-05-03 05:07:58 +09:00
+ name: ymshogi_test
+ rate: 0
+ win: 0.966399854105744
+ loss: 53.9649846244257
+ rating_group: 999
+ misaki+d9ffaac630ab2ae0e93674c1b505f1aa:
+ last_modified: 2008-05-08 23:40:19 +09:00
+ name: misaki
+ rate: 0
+ win: 4.85072439857614
+ last_game_win: false
+ loss: 3.85093185852652
+ rating_group: 999
+ ellecia2+3123059c1c816471780539f6b6b738dc:
+ last_modified: 2008-03-25 18:48:46 +09:00
+ name: ellecia2
+ rate: 0
+ win: 0.650607307852355
+ loss: 1.22554823127326
+ rating_group: 999
+ ovo2+25bbdcd06c32d477f7fa1c3e4a91b032:
+ last_modified: 2008-05-02 13:12:12 +09:00
+ name: ovo2
+ rate: 0
+ win: 0.0
+ loss: 48.237522040793
+ rating_group: 999
+ misakitest+098f6bcd4621d373cade4e832627b4f6:
+ last_modified: 2008-02-10 20:09:45 +09:00
+ name: misakitest
+ rate: 0
+ win: 3.13216359232655
+ loss: 1.17483538100067
+ rating_group: 999
+ gps1_pnpg+ea2a4e4f1c8469f37299aa535f397adb:
+ last_modified: 2008-02-26 00:01:03 +09:00
+ name: gps1_pnpg
+ rate: 0
+ win: 3.25890841273782
+ loss: 5.58228591589497
+ rating_group: 999
+ gps7_pmk2-30+faf5199cadb7774bad74b17a5c6cc0a1:
+ last_modified: 2008-03-06 00:29:06 +09:00
+ name: gps7_pmk2-30
+ rate: 0
+ win: 4.64919706385219
+ loss: 5.1591179437548
+ rating_group: 999
+ gps4_pbp+d81ba2e3205d35d0dd2d12be19bf9d67:
+ last_modified: 2008-02-16 03:17:29 +09:00
+ name: gps4_pbp
+ rate: 0
+ win: 3.73322544415813
+ loss: 4.56461635049319
+ rating_group: 999
+ gps0_p15rp+21e0d6345a0afd3f8a9464337fc70f81:
+ last_modified: 2008-04-10 09:34:05 +09:00
+ name: gps0_p15rp
+ rate: 0
+ win: 1.55571521000306
+ loss: 3.89169575116332
+ rating_group: 999
+ gps1_pnp4+1d2710ee2228968ecffb0d7e7021c144:
+ last_modified: 2008-02-25 02:43:23 +09:00
+ name: gps1_pnp4
+ rate: 0
+ win: 3.22085262459041
+ loss: 5.52555734219273
+ rating_group: 999
+ Ayaka2007+7052b1f054caaaf7769f15fccfdc4798:
+ last_modified: 2008-02-25 03:44:04 +09:00
+ name: Ayaka2007
+ rate: 0
+ win: 0.919586531359499
+ loss: 16.5457426948978
+ rating_group: 999
+ pc2+c81e728d9d4c2f636f067f89cc14862c:
+ last_modified: 2008-04-19 13:31:23 +09:00
+ name: pc2
+ rate: 0
+ win: 3.28656026387904
+ loss: 2.51707390348184
+ rating_group: 999
+ gps1_pmpc4+dc07789d1cf8f1dca6ab9a893c59bbb2:
+ last_modified: 2008-03-06 15:19:38 +09:00
+ name: gps1_pmpc4
+ rate: 0
+ win: 5.20057471794151
+ loss: 4.15923237999246
+ rating_group: 999
+ gps7_psa2+4089f050b68443af2a6f4986afc759f6:
+ last_modified: 2008-02-13 05:53:50 +09:00
+ name: gps7_psa2
+ rate: 0
+ win: 4.41815546839211
+ loss: 3.61211579954968
+ rating_group: 999
+ gps0_ppkd+6321826bbd94fb62c7e4c99dc494db42:
+ last_modified: 2008-05-05 06:52:19 +09:00
+ name: gps0_ppkd
+ rate: 0
+ win: 3.0
+ loss: 2.0
+ rating_group: 999
+ gps_exp16b+9f74478657f8a65175fc0f42489acc05:
+ last_modified: 2008-04-27 20:36:25 +09:00
+ name: gps_exp16b
+ rate: 0
+ win: 0.0
+ loss: 5.71503485564411
+ rating_group: 999
+ gps7_kab2+ad71e0fa23c82c9f87e6e6884a07b129:
+ last_modified: 2008-05-02 15:09:19 +09:00
+ name: gps7_kab2
+ rate: 0
+ win: 0.0
+ loss: 1.0
+ rating_group: 999
+ gps7_ppabI2+024cc4c494638819aef73d6a71925d9c:
+ last_modified: 2008-02-11 04:41:19 +09:00
+ name: gps7_ppabI2
+ rate: 0
+ win: 3.5323942549571
+ loss: 3.52839482243325
+ rating_group: 999
+ tomcat+48bae5e28e7585ccdfad978d2ce056b2:
+ last_modified: 2008-03-01 17:47:43 +09:00
+ name: tomcat
+ rate: 0
+ win: 1.46199582559984
+ loss: 0.969582861500572
+ rating_group: 999
+ your_program_name+1060b7b46a3bd36b3a0d66e0127d0517:
+ last_modified: 2008-04-23 23:47:35 +09:00
+ name: your_program_name
+ rate: 0
+ win: 0.0
+ loss: 1.8231757836041
+ rating_group: 999
+ gps7_pz4+2820db5da30c537181cfacd23a04bec5:
+ last_modified: 2008-04-09 11:14:59 +09:00
+ name: gps7_pz4
+ rate: 0
+ win: 6.13575163921137
+ loss: 8.45396550690933
+ rating_group: 999
+ gps6_pw7+80058cfe0f6cd26a4118ed60b9b67154:
+ last_modified: 2008-05-08 23:51:37 +09:00
+ name: gps6_pw7
+ rate: 0
+ last_game_win: false
+ win: 4.0
+ loss: 3.0
+ rating_group: 999
+ gps1_pe13+6cc12bf8490991d034d004731855b27f:
+ last_modified: 2008-03-03 20:52:38 +09:00
+ name: gps1_pe13
+ rate: 0
+ win: 0.504442859236656
+ loss: 2.52431759752155
+ rating_group: 999
+ gps7_psee3+c6cf70391c5f7877e82068c76ebf5b64:
+ last_modified: 2008-03-05 02:06:03 +09:00
+ name: gps7_psee3
+ rate: 0
+ win: 5.10990415683874
+ loss: 5.100732957657
+ rating_group: 999
+ gps1_pmpc2+e142c4bbdf75e8ae0331dad77d0f98eb:
+ last_modified: 2008-03-05 09:31:45 +09:00
+ name: gps1_pmpc2
+ rate: 0
+ win: 5.63947581946014
+ loss: 3.07398447031382
+ rating_group: 999
+ gps7_pmpc2+6185c9d6c43dff3a2bef269b63a53eb7:
+ last_modified: 2008-04-06 16:23:30 +09:00
+ name: gps7_pmpc2
+ rate: 0
+ win: 7.43363614746777
+ loss: 7.44099697225586
+ rating_group: 999
+ test1+098f6bcd4621d373cade4e832627b4f6:
+ last_modified: 2008-03-26 21:15:42 +09:00
+ name: test1
+ rate: 0
+ win: 0.0
+ loss: 1.31785860451171
+ rating_group: 999
+ gps7_ppabI+58008bcbd80ec35321353dceaacd77ce:
+ last_modified: 2008-02-10 16:27:57 +09:00
+ name: gps7_ppabI
+ rate: 0
+ win: 3.5034694912018
+ loss: 3.50885823530829
+ rating_group: 999
+ pc2+c4ca4238a0b923820dcc509a6f75849b:
+ last_modified: 2008-03-11 22:28:00 +09:00
+ name: pc2
+ rate: 0
+ win: 4.18171068842216
+ loss: 2.74689869667087
+ rating_group: 999
+ pc1+c4ca4238a0b923820dcc509a6f75849b:
+ last_modified: 2008-04-25 19:33:00 +09:00
+ name: pc1
+ rate: 0
+ win: 4.80701091245275
+ loss: 6.06830448939908
+ rating_group: 999
+ test2+098f6bcd4621d373cade4e832627b4f6:
+ last_modified: 2008-03-26 21:15:42 +09:00
+ name: test2
+ rate: 0
+ win: 1.31785860451171
+ loss: 0.0
+ rating_group: 999
+ gps1_pr68+ab84ca8c4c34df394ef67ddb8a55c575:
+ last_modified: 2008-02-10 15:52:23 +09:00
+ name: gps1_pr68
+ rate: 0
+ win: 1.94971780216178
+ loss: 5.06277266660577
+ rating_group: 999
+ gps30_8cpu+813015cab4287a23392e0082220c5805:
+ last_modified: 2008-05-04 02:33:05 +09:00
+ name: gps30_8cpu
+ rate: 0
+ win: 4.0
+ loss: 0.0
+ rating_group: 999
+ kaneko-test+5058f1af8388633f609cadb75a75dc9d:
+ last_modified: 2008-05-04 02:26:43 +09:00
+ name: kaneko-test
+ rate: 0
+ win: 0.0
+ loss: 1.0
+ rating_group: 999
+ gps_wcsc17+a213f8b2b86d4f1595c8c0de34e7f2e2:
+ last_modified: 2008-05-02 19:49:30 +09:00
+ name: gps_wcsc17
+ rate: 0
+ win: 0.0
+ loss: 1.0
+ rating_group: 999
+ username1+5f4dcc3b5aa765d61d8327deb882cf99:
+ last_modified: 2008-03-04 02:04:18 +09:00
+ name: username1
+ rate: 0
+ win: 0.0
+ loss: 21.7871556340513
+ rating_group: 999
+ gps1_pkte+c8beae8bd7158b319a91b379c057b05f:
+ last_modified: 2008-03-12 19:45:55 +09:00
+ name: gps1_pkte
+ rate: 0
+ win: 5.02005760026863
+ loss: 6.13723134166796
+ rating_group: 999
+ gps_pp6+be1cf926449472274af55a1b074e357e:
+ last_modified: 2008-05-08 23:31:31 +09:00
+ name: gps_pp6
+ rate: 0
+ win: 4.0
+ loss: 6.0
+ rating_group: 999
+ gps_mc0+aa6598cc8577f5af6c122e18d13efb40:
+ last_modified: 2008-04-10 05:52:07 +09:00
+ name: gps_mc0
+ rate: 0
+ win: 4.65735073577001
+ loss: 3.88433998290132
+ rating_group: 999
+ gps1_pka3+e996af61ebb5e773bb5f6eaeedb6f399:
+ last_modified: 2008-02-13 04:44:24 +09:00
+ name: gps1_pka3
+ rate: 0
+ win: 3.21009672369634
+ loss: 4.01530826585413
+ rating_group: 999
+ gps4_paebf+1fdaa09e7f9c16ed1091ee09428fc0ac:
+ last_modified: 2008-04-06 17:47:00 +09:00
+ name: gps4_paebf
+ rate: 0
+ win: 6.69990403704951
+ loss: 8.18551413932288
+ rating_group: 999
+ gps4_pky+8a88b1752937def23cda64522ff3c077:
+ last_modified: 2008-02-14 01:47:54 +09:00
+ name: gps4_pky
+ rate: 0
+ win: 3.64780525160742
+ loss: 4.45632381394203
+ rating_group: 999
+ gps8cpu+51ba10507fee37a907cda72bd63d72f0:
+ last_modified: 2008-02-20 13:43:30 +09:00
+ name: gps8cpu
+ rate: 0
+ win: 4.97969982709647
+ loss: 0.391750615406864
+ rating_group: 999
+ gps1_pe+57225819b01bcd9494ba5c69f15552c3:
+ last_modified: 2008-03-02 05:49:24 +09:00
+ name: gps1_pe
+ rate: 0
+ win: 4.93804003702345
+ loss: 4.94716343109585
+ rating_group: 999
+ gps1_pmpc3+e39b448ccdd53108ed5367db5ee2776a:
+ last_modified: 2008-03-06 00:28:24 +09:00
+ name: gps1_pmpc3
+ rate: 0
+ win: 5.16523260869099
+ loss: 3.60899376668153
+ rating_group: 999
+ gps1_pnp+2a8efcf93fe5946869e4f31fa3c36a7a:
+ last_modified: 2008-02-22 17:24:41 +09:00
+ name: gps1_pnp
+ rate: 0
+ win: 4.92911996634997
+ loss: 3.57902285620133
+ rating_group: 999
+ gps_kachi+3b91020198c46a8070fcbbe55c1f984b:
+ last_modified: 2008-04-26 23:52:45 +09:00
+ name: gps_kachi
+ rate: 0
+ win: 3.76781181342986
+ loss: 6.59706844766145
+ rating_group: 999
+ yoshiki+5058f1af8388633f609cadb75a75dc9d:
+ last_modified: 2008-03-21 22:20:11 +09:00
+ name: yoshiki
+ rate: 0
+ win: 0.0
+ loss: 1.86668664677574
+ rating_group: 999
+ gps_cpu4p16+561d1247b6b08664758faa68347cadaf:
+ last_modified: 2008-04-06 12:20:43 +09:00
+ name: gps_cpu4p16
+ rate: 0
+ win: 7.42949610697478
+ loss: 5.94750065979917
+ rating_group: 999
+ gps_8cpu+813015cab4287a23392e0082220c5805:
+ last_modified: 2008-05-04 08:00:38 +09:00
+ name: gps_8cpu
+ rate: 0
+ win: 5.0
+ loss: 4.0
+ rating_group: 999
+ gps30+813015cab4287a23392e0082220c5805:
+ last_modified: 2008-05-06 23:42:28 +09:00
+ name: gps30
+ rate: 0
+ win: 12.027391442297
+ loss: 4.0
+ rating_group: 999
+ gps_scr+58b813a0dc157dfdbeabd3afe7643726:
+ last_modified: 2008-05-08 23:18:02 +09:00
+ name: gps_scr
+ rate: 0
+ win: 3.0
+ loss: 6.0
+ rating_group: 999
+ usaoya+098f6bcd4621d373cade4e832627b4f6:
+ last_modified: 2008-03-29 23:04:17 +09:00
+ name: usaoya
+ rate: 0
+ win: 0.574085339470999
+ loss: 1.70599269116463
+ rating_group: 999
+ gps1_pnp3+be109baa51edd8d89c0de206a3895ae0:
+ last_modified: 2008-02-24 10:07:30 +09:00
+ name: gps1_pnp3
+ rate: 0
+ win: 4.11184105119365
+ loss: 4.11287148225036
+ rating_group: 999
+ spear900+05b08566ff2ec028287189062e521d1d:
+ last_modified: 2008-03-03 15:52:55 +09:00
+ name: spear900
+ rate: 0
+ win: 9.05771994907118
+ loss: 2.01414206050652
+ rating_group: 999
+ mattari_yuchan_test+aac81b5c0cf7bf4b5842e3908a709502:
+ last_modified: 2008-05-08 23:53:26 +09:00
+ name: mattari_yuchan_test
+ rate: 0
+ win: 3.0
+ last_game_win: false
+ loss: 10.0
+ rating_group: 999
+ yowai_gps_test+dcbd015b6d6271acedcd30b84453c353:
+ last_modified: 2008-02-09 23:10:01 +09:00
+ name: yowai_gps_test
+ rate: 0
+ win: 0.0
+ loss: 1.16300981411347
+ rating_group: 999
+ gps1_pt+dbe4ea3ae48cb785bf92d670723c925a:
+ last_modified: 2008-02-16 02:16:17 +09:00
+ name: gps1_pt
+ rate: 0
+ win: 2.49153833722485
+ loss: 4.56017852061372
+ rating_group: 999
+ gps8cpu+11648e4e66e7ed6a86cb7f1d0cf604fe:
+ last_modified: 2008-05-03 05:57:55 +09:00
+ name: gps8cpu
+ rate: 0
+ win: 9.76910925599213
+ loss: 0.714102787732918
+ rating_group: 999
+ gps2_p+d8a9eeb8a2501b81581be0d57677c145:
+ last_modified: 2008-03-04 12:42:10 +09:00
+ name: gps2_p
+ rate: 0
+ win: 12.5717996135362
+ loss: 12.4612707575602
+ rating_group: 999
+ pc2+e4da3b7fbbce2345d7772b0674a318d5:
+ last_modified: 2008-03-11 22:52:23 +09:00
+ name: pc2
+ rate: 0
+ win: 0.96451771211084
+ loss: 3.86918367231102
+ rating_group: 999
+ misaki+098f6bcd4621d373cade4e832627b4f6:
+ last_modified: 2008-02-10 20:09:45 +09:00
+ name: misaki
+ rate: 0
+ win: 1.17483538100067
+ loss: 3.13216359232655
+ rating_group: 999
+ pc1+e4da3b7fbbce2345d7772b0674a318d5:
+ last_modified: 2008-03-11 22:52:23 +09:00
+ name: pc1
+ rate: 0
+ win: 4.43605643445131
+ loss: 0.0
+ rating_group: 999
+ gps_qtseearea+73c32ddbeef3515fce4d71786c38ef71:
+ last_modified: 2008-04-07 10:15:59 +09:00
+ name: gps_qtseearea
+ rate: 0
+ win: 7.51134737969909
+ loss: 5.25426201436594
+ rating_group: 999
+ gps_pp10+cfa3292063eb247e51fd103e53999c85:
+ last_modified: 2008-05-08 23:24:58 +09:00
+ name: gps_pp10
+ rate: 0
+ win: 2.0
+ loss: 3.0
+ rating_group: 999
+ gps7_pmk4+4bf23894d31c124f683995d341faeb5b:
+ last_modified: 2008-03-07 07:02:21 +09:00
+ name: gps7_pmk4
+ rate: 0
+ win: 4.71389101336148
+ loss: 5.76081264301408
+ rating_group: 999
+ gps7_pmk+c118a5489ce33b97f4aeb0783b90a3a5:
+ last_modified: 2008-03-05 07:12:35 +09:00
+ name: gps7_pmk
+ rate: 0
+ win: 5.13125988290303
+ loss: 5.13019364054553
+ rating_group: 999
+ gps1_old+cbd6837c2403128221c7f65315a76928:
+ last_modified: 2008-03-04 18:20:09 +09:00
+ name: gps1_old
+ rate: 0
+ win: 4.07954455349915
+ loss: 6.12004175552569
+ rating_group: 999
+ gps7_pkeu+946dd752934d80e81a6c0588bb35ac6f:
+ last_modified: 2008-05-01 07:17:08 +09:00
+ name: gps7_pkeu
+ rate: 0
+ win: 0.99037817695798
+ loss: 5.94458057622329
+ rating_group: 999
+ kaneko-test1+c1d518f5c51f59cfcdfa6fd0d74011d1:
+ last_modified: 2008-03-09 18:25:44 +09:00
+ name: kaneko-test1
+ rate: 0
+ win: 0.540731006296224
+ loss: 3.24425845783411
+ rating_group: 999
+ GEPPER+098f6bcd4621d373cade4e832627b4f6:
+ last_modified: 2008-05-06 23:42:28 +09:00
+ name: GEPPER
+ rate: 0
+ win: 0.0
+ loss: 21.7051709294456
+ rating_group: 999
+ gps1_pnp2+33bb7c6e4d09574114756ab1fff59f37:
+ last_modified: 2008-02-23 17:29:25 +09:00
+ name: gps1_pnp2
+ rate: 0
+ win: 4.07503051644584
+ loss: 4.53050101342215
+ rating_group: 999
+ kaneko-test2+c1d518f5c51f59cfcdfa6fd0d74011d1:
+ last_modified: 2008-03-09 18:25:44 +09:00
+ name: kaneko-test2
+ rate: 0
+ win: 3.24425845783411
+ loss: 0.540731006296224
+ rating_group: 999
+ gps1_pr88+736974779028c8a9ae369c40b99f4bab:
+ last_modified: 2008-02-11 06:50:53 +09:00
+ name: gps1_pr88
+ rate: 0
+ win: 3.92435650239876
+ loss: 2.74763123663178
+ rating_group: 999
+ pc1+0cc175b9c0f1b6a831c399e269772661:
+ last_modified: 2008-03-30 11:08:12 +09:00
+ name: pc1
+ rate: 0
+ win: 0.387278490318016
+ loss: 3.96740892622904
+ rating_group: 999
+ gps7_psa3+a252b8b8cf94d378376c30efaa7e3c12:
+ last_modified: 2008-02-13 23:04:38 +09:00
+ name: gps7_psa3
+ rate: 0
+ win: 3.64638172435888
+ loss: 3.64110823557492
+ rating_group: 999
+ ssp+fe33467fa97283fd0c6e39106f020753:
+ last_modified: 2008-03-17 23:03:43 +09:00
+ name: ssp
+ rate: 0
+ win: 0.0
+ loss: 1.18879968181155
+ rating_group: 999
+ gps_lg2+3460302ed6cc24fb91dcadab211b18b1:
+ last_modified: 2008-03-30 13:16:17 +09:00
+ name: gps_lg2
+ rate: 0
+ win: 6.16876149215196
+ loss: 8.22146578496015
+ rating_group: 999
+ gps7_psa+ca86319a6b0d196e3f387bf8f6242d63:
+ last_modified: 2008-02-12 14:18:55 +09:00
+ name: gps7_psa
+ rate: 0
+ win: 4.38515241355686
+ loss: 3.58513866015491
+ rating_group: 999
+ gps6_pw5+d22cb490b411ace707b146b090d1a2be:
+ last_modified: 2008-05-08 00:03:24 +09:00
+ name: gps6_pw5
+ rate: 0
+ win: 1.0
+ loss: 0.0
+ rating_group: 999
+ pc2+0cc175b9c0f1b6a831c399e269772661:
+ last_modified: 2008-04-25 19:33:00 +09:00
+ name: pc2
+ rate: 0
+ win: 2.76296190816758
+ loss: 1.79764425753254
+ rating_group: 999
+ k+9fe9de3be8ad533149a36f366dff0bb3:
+ last_modified: 2008-02-22 12:20:16 +09:00
+ name: k
+ rate: 0
+ win: 1.34444228366597
+ loss: 0.448143453067201
+ rating_group: 999
+ gps1_pka2+7033c93adba70e063c3b744929e6f7c8:
+ last_modified: 2008-02-12 15:54:28 +09:00
+ name: gps1_pka2
+ rate: 0
+ win: 3.18814600262029
+ loss: 4.78618461567772
+ rating_group: 999
+ 9:
+ gps_cpu2p30_2+15defe6c4af0b3e5e174a310dd06ebf4:
+ last_modified: 2008-04-04 12:49:22 +09:00
+ name: gps_cpu2p30_2
+ rate: 1034.0
+ win: 14.495785804564
+ loss: 13.0494578486005
+ rating_group: 9
+ gps_cpu2p+574e90d7b2abe343a75b8c1cfeed5ff3:
+ last_modified: 2008-04-03 14:02:43 +09:00
+ name: gps_cpu2p
+ rate: 966.0
+ win: 6.46147592240348
+ loss: 8.61783504348173
+ rating_group: 9
+ gps_cpu2p30+06dacba1b8567acc21c488080ea413c3:
+ last_modified: 2008-04-04 10:59:08 +09:00
+ name: gps_cpu2p30
+ rate: 981.0
+ win: 13.0308146635658
+ loss: 15.9408731430726
+ rating_group: 9
+ gpsp+20d6b4b22597e621dc2f1fb39197d948:
+ last_modified: 2008-04-06 12:20:43 +09:00
+ name: gpsp
+ rate: 1016.0
+ win: 37.6081660351548
+ loss: 33.9880763905332
+ rating_group: 9
+ 4:
+ gps6_orig+23daece4324fd5c2c7f2ef3f01e22cbd:
+ last_modified: 2008-04-25 22:11:02 +09:00
+ name: gps6_orig
+ rate: 1005.0
+ win: 56.4475550891671
+ loss: 52.9404587900779
+ rating_group: 4
+ gps7_nmb005_2+f9f5b4ad8876211ec87063448e3f309c:
+ last_modified: 2008-04-22 21:18:36 +09:00
+ name: gps7_nmb005_2
+ rate: 953.0
+ win: 30.9780397575928
+ loss: 39.830690034666
+ rating_group: 4
+ gps7_nmbf2048+7222b303fe6c918f085352fae3e948e0:
+ last_modified: 2008-04-24 18:07:39 +09:00
+ name: gps7_nmbf2048
+ rate: 1023.0
+ win: 19.1988151416004
+ loss: 17.3554541281629
+ rating_group: 4
+ gps7_nmb005+0603aa6be69954719efd16294d46e1fd:
+ last_modified: 2008-04-19 22:30:16 +09:00
+ name: gps7_nmb005
+ rate: 1023.0
+ win: 19.0187875399771
+ loss: 15.5574290158712
+ rating_group: 4
+ gps8_orig+04b3be38b45d6c7341216df4494eba88:
+ last_modified: 2008-04-21 01:54:49 +09:00
+ name: gps8_orig
+ rate: 988.0
+ win: 34.8334553178621
+ loss: 34.7756725880529
+ rating_group: 4
+ gps7_nmb005_3+833dbce4e46df7d07021364f70b004be:
+ last_modified: 2008-04-25 22:11:02 +09:00
+ name: gps7_nmb005_3
+ rate: 1005.0
+ win: 18.5204889389606
+ loss: 18.5374372283291
+ rating_group: 4
+ 10:
+ gps7_kab3+b2920e23a50211cb5e3cd14f65efd909:
+ last_modified: 2008-05-03 06:30:07 +09:00
+ name: gps7_kab3
+ rate: 1076.0
+ win: 12.0
+ loss: 7.0
+ rating_group: 10
+ gps7_kab5+b58d115ca7a38174b8e094d80d1f754b:
+ last_modified: 2008-05-04 17:13:22 +09:00
+ name: gps7_kab5
+ rate: 1052.0
+ win: 12.0
+ loss: 8.0
+ rating_group: 10
+ gps7_kab4+dadcdaa4377a9741d4476298f0dc3d28:
+ last_modified: 2008-05-03 23:35:23 +09:00
+ name: gps7_kab4
+ rate: 888.0
+ win: 7.0
+ loss: 12.0
+ rating_group: 10
+ gps7+3b3309e4846a69406950c38040488e08:
+ last_modified: 2008-05-04 17:13:22 +09:00
+ name: gps7
+ rate: 982.0
+ win: 27.0
+ loss: 31.0
+ rating_group: 10
--- /dev/null
+---
+players: {}
+
--- /dev/null
+## $Id$
+
+$:.unshift File.join(File.dirname(__FILE__), "..", "shogi-server")
+load 'shogi-server'
+require 'test/unit'
+
+module ShogiServer
+class Board
+ def set_from_str(strs)
+ strs.split(/\n/).each do |str|
+ if (str =~ /^P\d/)
+ str.sub!(/^P(.)/, '')
+ y = $1.to_i
+ x = 9
+ while (str.length > 2)
+ str.sub!(/^(...?)/, '')
+ one = $1
+ if (one =~ /^([\+\-])(..)/)
+ sg = $1
+ name = $2
+ if (sg == "+")
+ sente = true
+ else
+ sente = false
+ end
+ if ((x < 1) || (9 < x) || (y < 1) || (9 < y))
+ raise "bad position #{x} #{y}"
+ end
+ case (name)
+ when "FU"
+ PieceFU::new(self, x, y, sente)
+ when "KY"
+ PieceKY::new(self, x, y, sente)
+ when "KE"
+ PieceKE::new(self, x, y, sente)
+ when "GI"
+ PieceGI::new(self, x, y, sente)
+ when "KI"
+ PieceKI::new(self, x, y, sente)
+ when "OU"
+ PieceOU::new(self, x, y, sente)
+ when "KA"
+ PieceKA::new(self, x, y, sente)
+ when "HI"
+ PieceHI::new(self, x, y, sente)
+ when "TO"
+ PieceFU::new(self, x, y, sente, true)
+ when "NY"
+ PieceKY::new(self, x, y, sente, true)
+ when "NK"
+ PieceKE::new(self, x, y, sente, true)
+ when "NG"
+ PieceGI::new(self, x, y, sente, true)
+ when "UM"
+ PieceKA::new(self, x, y, sente, true)
+ when "RY"
+ PieceHI::new(self, x, y, sente, true)
+ else
+ raise "unkown piece #{name}"
+ end
+ end
+ x = x - 1
+ end
+ elsif (str =~ /^P([\+\-])/)
+ sg = $1
+ if (sg == "+")
+ sente = true
+ else
+ sente = false
+ end
+ str.sub!(/^../, '')
+ while (str.length > 3)
+ str.sub!(/^..(..)/, '')
+ name = $1
+ case (name)
+ when "FU"
+ PieceFU::new(self, 0, 0, sente)
+ when "KY"
+ PieceKY::new(self, 0, 0, sente)
+ when "KE"
+ PieceKE::new(self, 0, 0, sente)
+ when "GI"
+ PieceGI::new(self, 0, 0, sente)
+ when "KI"
+ PieceKI::new(self, 0, 0, sente)
+ when "KA"
+ PieceKA::new(self, 0, 0, sente)
+ when "HI"
+ PieceHI::new(self, 0, 0, sente)
+ else
+ raise "unkown piece #{name}"
+ end
+ end
+ end
+ end
+ end
+end
+end
+
+class Test_kachi < Test::Unit::TestCase
+ def test_kachi_good
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1+HI+HI+KA+KA+OU * * * *
+P2+FU+FU+FU+FU+FU+FU * * *
+P+00FU00FU
+EOM
+ assert_equal(true, b.good_kachi?(true))
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P8-HI-HI-KA-KA-OU * * * *
+P9-FU-FU-FU-FU-FU-FU * * *
+P-00FU
+EOM
+ assert_equal(true, b.good_kachi?(false))
+ end
+
+ def test_kachi_good
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1+HI+HI+KA+KA+OU * * * *
+P2+FU+FU+FU+FU+FU+FU * * *
+P+00FU00FU
+EOM
+ assert_equal(true, b.good_kachi?(true))
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P8-HI-HI-KA-KA-OU * * * *
+P9-FU-FU-FU-FU-FU-FU * * *
+P-00FU
+EOM
+ assert_equal(true, b.good_kachi?(false))
+ end
+
+ def test_kachi_bad
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1+HI+HI+KA+KA+OU * * * *
+P2+FU+FU+FU+FU+FU+FU * * *
+P+00FU
+EOM
+ assert_equal(false, b.good_kachi?(true)) # point is not enough
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P8-HI-HI-KA-KA-OU * * * *
+P9-FU-FU-FU-FU-FU-FU * * *
+EOM
+ assert_equal(false, b.good_kachi?(false)) # point is not enough
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1+HI+HI+KA+KA+OU * * * *
+P2+FU+FU+FU+FU+FU * * * *
+P+00FU00FU00FU
+EOM
+ assert_equal(false, b.good_kachi?(true)) # number on board is not enough
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P8-HI-HI-KA-KA-OU * * * *
+P9-FU-FU-FU-FU-FU * * * *
+P-00FU00FU
+EOM
+ assert_equal(false, b.good_kachi?(false)) # number on board is not enough
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1+HI+HI+KA+KA+OU * * * -HI
+P2+FU+FU+FU+FU+FU+FU * * *
+P+00FU00FU
+EOM
+ assert_equal(false, b.good_kachi?(true)) # checkmate
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P8-HI-HI-KA-KA-OU * * * +HI
+P9-FU-FU-FU-FU-FU-FU * * *
+P-00FU
+EOM
+ assert_equal(false, b.good_kachi?(false)) # checkmate
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1+TO+TO * +TO+TO+OU * +TO *
+P2 * * * * * * * * +KI
+P3 * * * +TO+NG+TO+TO+TO+NY
+P4 * * * * * * * * *
+P5 * * * * * * * * +UM
+P6 * * * -KI-NG-RY * * *
+P7-TO * -TO-NG * -TO-TO-TO *
+P8-RY * * -NK-TO-OU-TO-TO *
+P9 * -TO * * * * * * *
+P+00KI00KI00KE
+P-00KA00GI00KE00KE00KY00KY00KY
+-
+EOM
+ assert_equal(true, b.good_kachi?(false))
+ end
+end
+
+class Test_gps < Test::Unit::TestCase
+ def test_gote_promote
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-KY-KE-GI-KI-OU-KI-GI-KE-KY
+P2 * -HI * * * * * * *
+P3-FU * -FU-FU-FU-FU-KA-FU-FU
+P4 * * * * * * * * *
+P5 * -FU+FU * * * * * *
+P6 * * * * * * * * *
+P7+FU+FU+KE+FU+FU+FU+FU+FU+FU
+P8 * * * * * * * +HI *
+P9+KY * +GI+KI+OU+KI+GI+KE+KY
+P+00FU
+P-00KA
+EOM
+ assert_equal(:normal, b.handle_one_move("-3377UM"))
+ end
+
+ def test_capture_promoted_and_put
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+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
+EOM
+
+ assert_equal(:normal, b.handle_one_move("+7776FU"))
+ assert_equal(:normal, b.handle_one_move("-3334FU"))
+ assert_equal(:normal, b.handle_one_move("+2726FU"))
+ assert_equal(:normal, b.handle_one_move("-4344FU"))
+ assert_equal(:normal, b.handle_one_move("+3948GI"))
+ assert_equal(:normal, b.handle_one_move("-8242HI"))
+ assert_equal(:normal, b.handle_one_move("+5756FU"))
+ assert_equal(:normal, b.handle_one_move("-3132GI"))
+ assert_equal(:normal, b.handle_one_move("+5968OU"))
+ assert_equal(:normal, b.handle_one_move("-5162OU"))
+ assert_equal(:normal, b.handle_one_move("+6878OU"))
+ assert_equal(:normal, b.handle_one_move("-6272OU"))
+ assert_equal(:normal, b.handle_one_move("+4958KI"))
+ assert_equal(:normal, b.handle_one_move("-7282OU"))
+ assert_equal(:normal, b.handle_one_move("+9796FU"))
+ assert_equal(:normal, b.handle_one_move("-9394FU"))
+ assert_equal(:normal, b.handle_one_move("+2625FU"))
+ assert_equal(:normal, b.handle_one_move("-2233KA"))
+ assert_equal(:normal, b.handle_one_move("+3736FU"))
+ assert_equal(:normal, b.handle_one_move("-7172GI"))
+ assert_equal(:normal, b.handle_one_move("+7968GI"))
+ assert_equal(:normal, b.handle_one_move("-4152KI"))
+ assert_equal(:normal, b.handle_one_move("+6857GI"))
+ assert_equal(:normal, b.handle_one_move("-3243GI"))
+ assert_equal(:normal, b.handle_one_move("+6968KI"))
+ assert_equal(:normal, b.handle_one_move("-5354FU"))
+ assert_equal(:normal, b.handle_one_move("+1716FU"))
+ assert_equal(:normal, b.handle_one_move("-1314FU"))
+ assert_equal(:normal, b.handle_one_move("+4746FU"))
+ assert_equal(:normal, b.handle_one_move("-6364FU"))
+ assert_equal(:normal, b.handle_one_move("+4645FU"))
+ assert_equal(:normal, b.handle_one_move("-5263KI"))
+ assert_equal(:normal, b.handle_one_move("+2937KE"))
+ assert_equal(:normal, b.handle_one_move("-7374FU"))
+ assert_equal(:normal, b.handle_one_move("+2524FU"))
+ assert_equal(:normal, b.handle_one_move("-2324FU"))
+ assert_equal(:normal, b.handle_one_move("+4544FU"))
+ assert_equal(:normal, b.handle_one_move("-4344GI"))
+ assert_equal(:normal, b.handle_one_move("+0045FU"))
+ assert_equal(:normal, b.handle_one_move("-4445GI"))
+ assert_equal(:normal, b.handle_one_move("+8833UM"))
+ assert_equal(:normal, b.handle_one_move("-2133KE"))
+ assert_equal(:normal, b.handle_one_move("+0088KA"))
+ assert_equal(:normal, b.handle_one_move("-5455FU"))
+ assert_equal(:normal, b.handle_one_move("+8855KA"))
+ assert_equal(:normal, b.handle_one_move("-4243HI"))
+ assert_equal(:normal, b.handle_one_move("+2824HI"))
+ assert_equal(:normal, b.handle_one_move("-4554GI"))
+ assert_equal(:normal, b.handle_one_move("+0044FU"))
+ assert_equal(:normal, b.handle_one_move("-4353HI"))
+ assert_equal(:normal, b.handle_one_move("+2422RY"))
+ assert_equal(:normal, b.handle_one_move("-5455GI"))
+ assert_equal(:normal, b.handle_one_move("+5655FU"))
+ assert_equal(:normal, b.handle_one_move("-0056FU"))
+ assert_equal(:normal, b.handle_one_move("+5756GI"))
+ assert_equal(:normal, b.handle_one_move("-0057FU"))
+ assert_equal(:normal, b.handle_one_move("+4857GI"))
+ assert_equal(:normal, b.handle_one_move("-9495FU"))
+ assert_equal(:normal, b.handle_one_move("+9695FU"))
+ assert_equal(:normal, b.handle_one_move("-0096FU"))
+ assert_equal(:normal, b.handle_one_move("+9996KY"))
+ assert_equal(:normal, b.handle_one_move("-0085KA"))
+ end
+end
+
+
+class Test_promote < Test::Unit::TestCase
+ def test_fu
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU *
+P2 * * * *
+P3+FU * * +HI
+P4 * +FU * *
+P5 * * +FU *
+EOM
+ assert_equal(:normal, b.handle_one_move("+9392TO"))
+ assert_equal(:normal, b.handle_one_move("+8483TO"))
+ assert_equal(:illegal, b.handle_one_move("+7574TO"))
+ assert_equal(:normal, b.handle_one_move("+6364RY"))
+ end
+end
+
+class Test_move < Test::Unit::TestCase
+ def test_fu
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2 * +FU *
+EOM
+ assert_equal(:illegal, b.handle_one_move("+8281FU"))
+ end
+ def test_hi
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2 * +HI *
+EOM
+ assert_equal(:normal, b.handle_one_move("+8212HI"))
+ assert_equal(:illegal, b.handle_one_move("+1223HI"))
+ end
+ def test_ry
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2 * +RY *
+EOM
+ assert_equal(:normal, b.handle_one_move("+8212RY"))
+ assert_equal(:normal, b.handle_one_move("+1223RY"))
+ end
+end
+
+class Test_put < Test::Unit::TestCase
+ def test_fu
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P+00FU00FU
+EOM
+ assert_equal(:illegal, b.handle_one_move("+0011FU"))
+ assert_equal(:normal, b.handle_one_move("+0022FU"))
+ end
+ def test_ky
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P+00KY00KY
+EOM
+ assert_equal(:illegal, b.handle_one_move("+0011KY"))
+ assert_equal(:normal, b.handle_one_move("+0022KY"))
+ end
+
+ def test_ke
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P+00KE00KE00KE
+EOM
+ assert_equal(:illegal, b.handle_one_move("+0011KE"))
+ assert_equal(:illegal, b.handle_one_move("+0022KE"))
+ assert_equal(:normal, b.handle_one_move("+0033KE"))
+ end
+end
+
+
+class Test_2fu < Test::Unit::TestCase
+ def test_2fu
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P+00FU00FU
+EOM
+ assert_equal(:normal, b.handle_one_move("+0022FU"))
+ assert_equal(:illegal, b.handle_one_move("+0023FU"))
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P+00FU00FU
+EOM
+ assert_equal(:normal, b.handle_one_move("+0022FU"))
+ assert_equal(:normal, b.handle_one_move("+0032FU"))
+ end
+end
+
+class Test_sennichite < Test::Unit::TestCase
+ def test_oute_sennichite0
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * * +OU
+P2 * * +HI *
+EOM
+## b.history[b.to_s] = 1
+ assert_equal(:normal, b.handle_one_move("+7271HI")) #1
+ assert_equal(:normal, b.handle_one_move("-9192OU"))
+ assert_equal(:normal, b.handle_one_move("+7172HI"))
+ assert_equal(:normal, b.handle_one_move("-9291OU"))
+
+ assert_equal(:normal, b.handle_one_move("+7271HI")) # 2
+ assert_equal(:normal, b.handle_one_move("-9192OU"))
+ assert_equal(:normal, b.handle_one_move("+7172HI"))
+ assert_equal(:normal, b.handle_one_move("-9291OU"))
+
+ assert_equal(:normal, b.handle_one_move("+7271HI")) # 3
+ assert_equal(:normal, b.handle_one_move("-9192OU"))
+ assert_equal(:normal, b.handle_one_move("+7172HI"))
+ assert_equal(:normal, b.handle_one_move("-9291OU"))
+
+ assert_equal(:oute_sennichite_sente_lose, b.handle_one_move("+7271HI")) # 4
+ end
+
+ def test_oute_sennichite1 #330
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+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
+EOM
+b.history[b.to_s] = 1
+
+ assert_equal(:normal, b.handle_one_move("+2726FU"))
+ assert_equal(:normal, b.handle_one_move("-8384FU"))
+ assert_equal(:normal, b.handle_one_move("+2625FU"))
+ assert_equal(:normal, b.handle_one_move("-8485FU"))
+ assert_equal(:normal, b.handle_one_move("+6978KI"))
+ assert_equal(:normal, b.handle_one_move("-4132KI"))
+ assert_equal(:normal, b.handle_one_move("+2524FU"))
+ assert_equal(:normal, b.handle_one_move("-2324FU"))
+ assert_equal(:normal, b.handle_one_move("+2824HI"))
+ assert_equal(:normal, b.handle_one_move("-0023FU"))
+ assert_equal(:normal, b.handle_one_move("+2484HI"))
+ assert_equal(:normal, b.handle_one_move("-8284HI"))
+ assert_equal(:normal, b.handle_one_move("+4938KI"))
+ assert_equal(:normal, b.handle_one_move("-9394FU"))
+ assert_equal(:normal, b.handle_one_move("+5969OU"))
+ assert_equal(:normal, b.handle_one_move("-0049HI"))
+
+ assert_equal(:normal, b.handle_one_move("+6968OU"))
+ assert_equal(:normal, b.handle_one_move("-4948RY"))
+ assert_equal(:normal, b.handle_one_move("+6869OU"))
+ assert_equal(:normal, b.handle_one_move("-4849RY"))
+
+ assert_equal(:normal, b.handle_one_move("+6968OU"))
+ assert_equal(:normal, b.handle_one_move("-4948RY"))
+ assert_equal(:normal, b.handle_one_move("+6869OU"))
+ assert_equal(:normal, b.handle_one_move("-4849RY"))
+
+ assert_equal(:normal, b.handle_one_move("+6968OU"))
+ assert_equal(:normal, b.handle_one_move("-4948RY"))
+ assert_equal(:normal, b.handle_one_move("+6869OU"))
+ assert_equal(:normal, b.handle_one_move("-4849RY"))
+
+ assert_equal(:normal, b.handle_one_move("+6968OU")) # added
+ assert_equal(:oute_sennichite_gote_lose, b.handle_one_move("-4948RY"))
+ end
+
+ def test_not_oute_sennichite
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * * +OU
+P2 * * +HI *
+EOM
+## b.history[b.to_s] = 1
+ assert_equal(:normal, b.handle_one_move("+7271HI")) #1
+ assert_equal(:normal, b.handle_one_move("-9192OU"))
+ assert_equal(:normal, b.handle_one_move("+7172HI"))
+ assert_equal(:normal, b.handle_one_move("-9291OU"))
+
+ assert_equal(:normal, b.handle_one_move("+7271HI")) # 2
+ assert_equal(:normal, b.handle_one_move("-9192OU"))
+ assert_equal(:normal, b.handle_one_move("+7174HI")) # stop oute here
+ assert_equal(:normal, b.handle_one_move("-9291OU"))
+
+ assert_equal(:normal, b.handle_one_move("+7471HI")) # 3
+ assert_equal(:normal, b.handle_one_move("-9192OU"))
+ assert_equal(:normal, b.handle_one_move("+7172HI"))
+ assert_equal(:normal, b.handle_one_move("-9291OU"))
+
+ assert_equal(:sennichite, b.handle_one_move("+7271HI")) # 4
+ end
+
+ def test_sennichite0
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+EOM
+ b.history[b.to_s] = 1
+ assert_equal(:normal, b.handle_one_move("+7172OU"))
+ assert_equal(:normal, b.handle_one_move("-9192OU"))
+ assert_equal(:normal, b.handle_one_move("+7271OU"))
+ assert_equal(:normal, b.handle_one_move("-9291OU")) # 2
+
+ assert_equal(:normal, b.handle_one_move("+7172OU"))
+ assert_equal(:normal, b.handle_one_move("-9192OU"))
+ assert_equal(:normal, b.handle_one_move("+7271OU"))
+ assert_equal(:normal, b.handle_one_move("-9291OU")) # 3
+
+ assert_equal(:normal, b.handle_one_move("+7172OU"))
+ assert_equal(:normal, b.handle_one_move("-9192OU"))
+ assert_equal(:normal, b.handle_one_move("+7271OU"))
+ assert_equal(:sennichite, b.handle_one_move("-9291OU")) # 4
+ end
+
+ def test_sennichite1 # 329
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+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
+EOM
+ b.history[b.to_s] = 1
+
+ assert_equal(:normal, b.handle_one_move("+2858HI"))
+ assert_equal(:normal, b.handle_one_move("-8252HI"))
+ assert_equal(:normal, b.handle_one_move("+5828HI"))
+ assert_equal(:normal, b.handle_one_move("-5282HI"))
+ assert_equal(:normal, b.handle_one_move("+2858HI"))
+ assert_equal(:normal, b.handle_one_move("-8252HI"))
+ assert_equal(:normal, b.handle_one_move("+5828HI"))
+ assert_equal(:normal, b.handle_one_move("-5282HI"))
+ assert_equal(:normal, b.handle_one_move("+2858HI"))
+ assert_equal(:normal, b.handle_one_move("-8252HI"))
+ assert_equal(:normal, b.handle_one_move("+5828HI"))
+ assert_equal(:sennichite, b.handle_one_move("-5282HI"))
+ end
+end
+
+class Test_checkmate < Test::Unit::TestCase
+ def test_ki
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2 * +KI
+EOM
+ assert_equal(true, b.checkmated?(false)) # gote is loosing
+ assert_equal(false, b.checkmated?(true))
+ end
+
+ def test_hi
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +HI+OU
+EOM
+ assert_equal(true, b.checkmated?(false)) # gote is loosing
+ assert_equal(false, b.checkmated?(true))
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU *
+P2 * +HI+OU
+EOM
+ assert_equal(false, b.checkmated?(false)) # hisha can't capture
+ assert_equal(false, b.checkmated?(true))
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU *
+P2 * +RY+OU
+EOM
+ assert_equal(true, b.checkmated?(false)) # ryu can capture
+ assert_equal(false, b.checkmated?(true))
+ end
+
+ def test_KE
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2 * * *
+P3 * +KE *
+EOM
+ assert_equal(true, b.checkmated?(false))
+ assert_equal(false, b.checkmated?(true))
+ end
+end
+
+class Test_uchifuzume < Test::Unit::TestCase
+ def test_uchifuzume1 # 331
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+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
+EOM
+
+ assert_equal(:normal, b.handle_one_move("+2726FU"))
+ assert_equal(:normal, b.handle_one_move("-8384FU"))
+ assert_equal(:normal, b.handle_one_move("+2625FU"))
+ assert_equal(:normal, b.handle_one_move("-8485FU"))
+ assert_equal(:normal, b.handle_one_move("+2524FU"))
+ assert_equal(:normal, b.handle_one_move("-2324FU"))
+ assert_equal(:normal, b.handle_one_move("+2824HI"))
+ assert_equal(:normal, b.handle_one_move("-8586FU"))
+ assert_equal(:normal, b.handle_one_move("+8786FU"))
+ assert_equal(:normal, b.handle_one_move("-0087FU"))
+ assert_equal(:normal, b.handle_one_move("+0023FU"))
+ assert_equal(:normal, b.handle_one_move("-8788TO"))
+ assert_equal(:normal, b.handle_one_move("+2322TO"))
+ assert_equal(:normal, b.handle_one_move("-8879TO"))
+ assert_equal(:normal, b.handle_one_move("+2231TO"))
+ assert_equal(:normal, b.handle_one_move("-7969TO"))
+ assert_equal(:normal, b.handle_one_move("+5969OU"))
+ assert_equal(:normal, b.handle_one_move("-8286HI"))
+ assert_equal(:normal, b.handle_one_move("+3141TO"))
+ assert_equal(:normal, b.handle_one_move("-5141OU"))
+ assert_equal(:normal, b.handle_one_move("+2484HI"))
+ assert_equal(:normal, b.handle_one_move("-8684HI"))
+ assert_equal(:normal, b.handle_one_move("+6978OU"))
+ assert_equal(:normal, b.handle_one_move("-8424HI"))
+ assert_equal(:normal, b.handle_one_move("+7776FU"))
+ assert_equal(:normal, b.handle_one_move("-7374FU"))
+ assert_equal(:normal, b.handle_one_move("+7675FU"))
+ assert_equal(:normal, b.handle_one_move("-7475FU"))
+ assert_equal(:normal, b.handle_one_move("+0079KI"))
+ assert_equal(:normal, b.handle_one_move("-7576FU"))
+ assert_equal(:normal, b.handle_one_move("+7888OU"))
+ assert_equal(:normal, b.handle_one_move("-7677TO"))
+ assert_equal(:normal, b.handle_one_move("+8877OU"))
+ assert_equal(:normal, b.handle_one_move("-2474HI"))
+ assert_equal(:normal, b.handle_one_move("+7788OU"))
+ assert_equal(:normal, b.handle_one_move("-0086KI"))
+ assert_equal(:normal, b.handle_one_move("+9998KY"))
+ assert_equal(:normal, b.handle_one_move("-7424HI"))
+ assert_equal(:normal, b.handle_one_move("+0099GI"))
+ assert_equal(:normal, b.handle_one_move("-0028HI"))
+ assert_equal(:normal, b.handle_one_move("+0078FU"))
+ assert_equal(:uchifuzume, b.handle_one_move("-0087FU"))
+ end
+
+ def test_uchifuzume2
+ # http://wdoor.c.u-tokyo.ac.jp/shogi/tools/view/index.cgi?go_last=on&csa=http%3A%2F%2Fwdoor.c.u-tokyo.ac.jp%2Fshogi%2Flogs%2FLATEST%2Fwdoor%2Bfloodgate-900-0%2Busapyon-on-note%2BKShogi900%2B20080217020012.csa
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-KY-KE * -KI * -OU * -KE-KY
+P2 * * +TO * * * * * *
+P3 * * * * -KI-KI * -FU *
+P4 * * -FU * -FU-FU-FU * *
+P5 * -RY+GI+OU * * * +FU+FU
+P6-FU * +FU+KI+GI+FU+FU * +KY
+P7 * * * -RY * * * * *
+P8 * * * * * * * * *
+P9+KY+KE * * * * * * *
+P+00FU00FU00FU00FU00FU00GI00GI00KA00KE
+P-00FU00KA
+-
+EOM
+ assert_equal(:uchifuzume, b.handle_one_move("-0064FU"))
+ end
+
+ def test_uchifuzume3
+ # http://wdoor.c.u-tokyo.ac.jp/shogi/tools/view/index.cgi?go_last=on&csa=http%3A%2F%2Fwdoor.c.u-tokyo.ac.jp%2Fshogi%2Flogs%2FLATEST%2Fwdoor%2Bfloodgate-900-0%2Busapyon-on-note%2Bgps_normal%2B20080215133008.csa
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1 * -GI * -KI-OU * -GI * -KY
+P2 * * * * -FU * * * *
+P3+OU * -FU-FU * -FU-KI-FU *
+P4+KI+KE-RY * -GI * * * -FU
+P5 * * * * * * * * *
+P6+FU * * * +KY * * * +FU
+P7 * +FU * * +FU * * * *
+P8 * +GI * * * * * * *
+P9+KY+KE * * * * * * -UM
+P+00KA00KI00KE00KY00FU00FU00FU
+P-00HI00KE00FU00FU00FU00FU00FU
+-
+EOM
+ assert_equal(:normal, b.handle_one_move("-0092FU"))
+ end
+
+ def test_ou
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2+FU * *
+P3 * +HI *
+EOM
+ assert_equal(false, b.uchifuzume?(true))
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2+FU * *
+P3 * +RY *
+EOM
+ assert_equal(true, b.uchifuzume?(true))
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P2-OU * +OU
+P3+FU * *
+P4 * +RY *
+EOM
+ assert_equal(false, b.uchifuzume?(true)) # ou can move backward
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P2-OU * +OU
+P3+FU * +KA
+P4 * +RY *
+EOM
+ assert_equal(true, b.uchifuzume?(true)) # ou can move backward and kaku can capture it
+ end
+
+
+ def test_friend
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2+FU * -HI
+P3 * +RY *
+EOM
+ assert_equal(false, b.uchifuzume?(true))
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2+FU * +FU-HI
+P3 * +RY *
+EOM
+ assert_equal(true, b.uchifuzume?(true)) # hisha blocked by fu
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2+FU * *
+P3-GI+RY *
+EOM
+ assert_equal(true, b.uchifuzume?(true))
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2+FU * *
+P3-KI+RY *
+EOM
+ assert_equal(false, b.uchifuzume?(true))
+
+ b = ShogiServer::Board.new
+ b.set_from_str(<<EOM)
+P1-OU * +OU
+P2+FU * *
+P3-NG+RY *
+EOM
+ assert_equal(false, b.uchifuzume?(true))
+ end
+end