示例#1
0
def test_game_board():
    game = game_from_sgf("""
        (;GM[1]FF[4]CA[UTF-8]AP[CGoban:3]ST[2]
        RU[Japanese]SZ[9]HA[2]KM[6.50]
        PW[White]PB[Black]AB[gc][cg]
        (;W[gg]
        ;B[ff]
        ;W[dd])
        (;W[ee]
        ;B[gg]))
        """)

    assert len(game.board.tree) == 6
    assert game.board.current_node_id == 0
    assert len(game.board.current_node.children) == 2
    assert game.board.current_node.action == 'E'

    child = game.board.tree[game.board.current_node.children[0]]
    grand_child = game.board.tree[child.children[0]]
    assert child.action == 'W'
    assert child.move == coord_from_sgf('gg', game.board.size)
    assert grand_child.action == 'B'
    assert grand_child.move == coord_from_sgf('ff', game.board.size)

    child = game.board.tree[game.board.current_node.children[1]]
    grand_child = game.board.tree[child.children[0]]
    assert child.action == 'W'
    assert child.move == coord_from_sgf('ee', game.board.size)
    assert grand_child.action == 'B'
    assert grand_child.move == coord_from_sgf('gg', game.board.size)
示例#2
0
def test_game_board_setup_stones():
    game = game_from_sgf('(;AB[dd][de]AW[qq][qr])')

    assert len(game.board.tree) == 1

    node = game.board.tree[0]
    assert len(node.children) == 0
    assert len(node.edits.items()) == 4
    assert node.edits.get(str(coord_from_sgf('dd', 19))) == BLACK
    assert node.edits.get(str(coord_from_sgf('de', 19))) == BLACK
    assert node.edits.get(str(coord_from_sgf('qq', 19))) == WHITE
    assert node.edits.get(str(coord_from_sgf('qr', 19))) == WHITE
示例#3
0
def test_game_info():
    game = game_from_sgf("""
        (;GM[1]FF[4]CA[UTF-8]AP[CGoban:3]ST[2]
        RU[Japanese]SZ[9]HA[2]KM[6.50]RE[B+R]EV[event]
        PW[White]PB[Black]AB[gc][cg]
        (;W[gg]
        ;B[ff])
        (;W[ee]
        ;B[gg]))
        """)

    assert game.result == 'B+R'
    assert game.komi == 6.5
    assert game.black_display == 'Black'
    assert game.white_display == 'White'
    assert game.title == 'event'
示例#4
0
    def upload_sgf(self, sgf):
        game = game_from_sgf(sgf)

        room = Room(type='game')
        self.db.add(room)

        game.is_demo = True
        game.is_ranked = False
        game.stage = 'finished'
        game.demo_owner = self.user
        game.demo_owner_rating = self.user.rating
        game.demo_owner_display = self.user.display
        game.demo_control = self.user
        game.demo_control_display = self.user.display
        game.room = room
        self.db.add(game)

        self.db.commit()

        return game.id