Exemplo n.º 1
0
    def test_match(self):
        tcp = CSA.TCPProtocol('127.0.0.1')
        self.add_response(tcp, 'LOGIN:username OK\n')
        tcp.login('username', 'password')
        self.add_response(tcp, TEST_SUMMARY_STR)
        game_summary = tcp.wait_match()

        board = shogi.Board(game_summary['summary']['sfen'])
        self.add_response(tcp, 'START:20150505-CSA25-3-5-7\n')
        tcp.agree()

        self.add_response(tcp, '+5756FU,T1\n')
        (turn, usi, spend_time, message) = tcp.wait_server_message(board)
        board.push(shogi.Move.from_usi(usi))
        self.assertEqual(turn, shogi.BLACK)
        self.assertEqual(spend_time, 1.0)

        self.assertEqual(board.sfen(), 'lnsgkgsnl/1r5b1/ppppppppp/9/9/4P4/PPPP1PPPP/1B5R1/LNSGKGSNL w - 2')

        next_move = shogi.Move.from_usi('8c8d')
        board.push(next_move)
        self.add_response(tcp, '-8384FU,T2\n')
        response_line = tcp.move(board.pieces[next_move.to_square], shogi.WHITE, next_move)
        (turn, usi, spend_time, message) = tcp.parse_server_message(response_line, board)
        self.assertEqual(turn, shogi.WHITE)
        self.assertEqual(spend_time, 2.0)

        # without spent time ex.) Shogidokoro
        self.add_response(tcp, '+5655FU\n')
        (turn, usi, spend_time, message) = tcp.wait_server_message(board)
        board.push(shogi.Move.from_usi(usi))
        self.assertEqual(turn, shogi.BLACK)
        self.assertEqual(spend_time, None)
Exemplo n.º 2
0
 def test_wait_match(self):
     tcp = CSA.TCPProtocol('127.0.0.1')
     self.add_response(tcp, TEST_SUMMARY_STR)
     game_summary = tcp.wait_match()
     self.assertEqual(game_summary, {
         'summary': TEST_SUMMARY,
         'my_color': shogi.WHITE
     })
Exemplo n.º 3
0
    def test_match(self):
        tcp = CSA.TCPProtocol('127.0.0.1')
        self.add_response(tcp, 'LOGIN:username OK\n')
        tcp.login('username', 'password')
        self.add_response(tcp, TEST_SUMMARY_STR)
        game_summary = tcp.wait_match()

        board = shogi.Board(game_summary['summary']['sfen'])
        self.add_response(tcp, 'START:20150505-CSA25-3-5-7\n')
        tcp.agree()

        self.add_response(tcp, '+5756FU,T1\n')
        (turn, usi, spend_time, message) = tcp.wait_server_message(board)
        board.push(shogi.Move.from_usi(usi))

        self.assertEqual(
            board.sfen(),
            'lnsgkgsnl/1r5b1/ppppppppp/9/9/4P4/PPPP1PPPP/1B5R1/LNSGKGSNL w - 2'
        )
Exemplo n.º 4
0
 def test_fail_login(self):
     tcp = CSA.TCPProtocol('127.0.0.1')
     self.add_response(tcp, 'LOGIN:incorrect\n')
     with self.assertRaises(ValueError):
         tcp.login('python-syogi', 'password')
Exemplo n.º 5
0
 def test_login(self):
     tcp = CSA.TCPProtocol('127.0.0.1')
     self.add_response(tcp, 'LOGIN:python-syogi OK\n')
     login_result = tcp.login('python-syogi', 'password')
     self.assertTrue(login_result)
Exemplo n.º 6
0
from __future__ import print_function, unicode_literals

import shogi
from shogi import CSA
import random
import sys
import time


if len(sys.argv) != 4:
    print('Usage: {0} host_name user_name password'.format(sys.argv[0]))
    sys.exit(1)


ct = CSA.TCPProtocol(sys.argv[1], 4081)
ct.login(sys.argv[2], sys.argv[3])
game_summary = ct.wait_match()
sfen = game_summary['summary']['sfen']
my_color = game_summary['my_color']
board = shogi.Board(sfen)
ct.agree()


while True:
    print("\n"*3)
    print("[battle.py]: pc turn")
    moves = []
    for move in board.legal_moves:
        moves.append(move)