示例#1
0
文件: player.py 项目: dyens/vk_chess
 def __init__(self):
     d = Desk()
     self.position = d.get_position()
     self.side = d.side
     self.desk_coords = d.desk_coords
     self.desk = d
示例#2
0
文件: player.py 项目: dyens/vk_chess
 def refresh_desk(self):
     time.sleep(2)
     d = Desk(self.side, self.desk_coords)
     self.position = d.get_position()
     print 'refreshed'
示例#3
0
文件: player.py 项目: dyens/vk_chess
    def get_move(self):
        old_position = self.position
        d = Desk(self.side, self.desk_coords)
        position = d.get_position()
        diff = position.symmetric_difference(old_position)

        print '#'*10
        print 'old'
        print old_position
        print '#'*10
        print 'new'
        print position
        print '#'*10
        print 'diff'
        print diff
        print '#'*10



        from_move = None
        to_move = None
        figure = ''
        if len(diff) == 2:
            # Просто ход фигуры и пешка дошла до края
            from_figure = None
            to_figure = None
            for i in diff:
                if {i}.issubset(old_position):
                    from_move = i[0]
                    from_figure = i[1]
                else:
                    to_move = i[0]
                    to_figure = i[1]
            if to_figure != from_figure:
                figure = to_figure[0]

        elif len(diff) == 3:
            # Срубили фигуру и взятие на проходе
            fig = None
            for i in diff:
                if {i}.issubset(position):
                    to_move = i[0]
                    fig = i[1]

            for i in diff:
                if i[1] == fig and i[0] != to_move:
                    from_move = i[0]

        elif len(diff) == 4:
            # Рокировка
            for i in diff:
                if i[1][0] == 'k':
                    if {i}.issubset(old_position):
                        from_move = i[0]
                    else:
                        to_move = i[0]
#        elif len(diff) == 0:
#            return None
#        else: 
#            print diff
#            plot(d.desk)

        if from_move is None:
            return None
        else:
            step = '%s%s%s' %(from_move, to_move, figure)
            return step