2014-11-16 2 views
0
class Position: 
    def __init__(self, x,y): 
     self.x = int(x) 
     self.y = int(y) 
    def __eq__(self, other): 

     return self.x == other.x and self.y == other.y 

    def __repr__(self): 
     return '({}, {})'.format(self.x, self.y) 

    def __hash__(self): 
     return hash(str(self)) 


class Piece: 


    def __init__(self, color, type_piece): 
     self.color = color 
     self.type_piece = type_piece 

    def is_pawn(self): 

     return self.type_piece == "pawn" 

    def is_queen(self): 
     return self.type_piece == "queen" 

    def is_white(self): 
     return self.color == "white" 

    def is_balck(self): 
     return self.color == "black" 

    def change(self): 
     self.type_piece = "queen" 

    def __repr__(self): 
     if self.is_white() and self.is_pawn(): 
      return "o" 
     elif self.is_white() and self.is_queen(): 
      return "O" 
     elif self.is_black() and self.is_pawn(): 
      return "x" 
     else: 
      return "X" 

class board: 

    def __init__(self): 
     self.n_x = 8 
     self.n_y = 8 

     self.cases = { Position(1,1):Piece("white","pawn") } #example of what my dict contains 

    def check_piece(self, position): 

     if Position(position) in self.cases.keys(): 
      return cases.get(Position(position)) 
     else: 
      return False 

는 내가하려고 할 때 check_piece ((1,1))내 사전에 직교 좌표 키를 테스트

형식 오류 : 초기화()없는 한 필요한 위치 인수 : '콜론'

그리고 난 check_piece (1,1)

형식 오류하려고하면 recuperer_piece_a_position()이 개 위치 인수하지만 3 주어진 소요를 ...

도움이 될 것입니다, 사전의 구조를 바꿀 수 없습니다.

+0

클래스 및 개체에 대한 정보가 부족한 것처럼 보입니다. 또한, cases.get (something, False)와 같은 깔끔한 구조가 있습니다. –

+0

Unfortunatelly 모든 수업을 게시 할 수는 없지만 현재이 두 가지 오류 메시지가 붙어 있고 값을 퇴직시킬 수 없습니다. 내 열쇠를 계속하려면 .... – glls

답변

1

check_piece은 하나의 인수를 취하는 반면, Position은 2 개를 취합니다.

def check_piece(position): 

    return cases.get(Position(*position), False) 

check_piece((1,1)) 같은

시도 뭔가 작동합니다.

+0

위치 전에 스타 (*)가있는 이유는 무엇입니까? – glls

+0

튜플을 언 패킹하여 각 요소가 함수의 하나의 인수로 사용되도록합니다. https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists – tynn

+0

을 참조하십시오. – glls

관련 문제