-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