2017-12-02 7 views
-1

나는 Pah Tum이라는 게임을 구현하려고합니다. (내 문제에 대해 어떻게 작동하는지는 관련이없는입니다.) 나는이 같은 콘솔에서 필드를 만들려면 :필드를 구현하고 체스처럼 주소를 지정하는 방법

A B C D 
1 [] [] [] [] 
2 [] [] [] [] 
3 [] [] [] [] 
4 [] [] [] [] 

나는 이미를 인쇄하는 방법을 알아 냈하지만 : 내가 함수를 정의 할에 나는이 같은 그들을 특정 필드를 해결하고 차단할 수 있습니다 B3

A B C D 
1 [] [] [] [] 
2 [] [] [] [] 
3 [] [X][] [] 
4 [] [] [] [] 

어떻게 든 내가하는 방법을 알아낼 수 없습니다 내가 단계별로 해당 단계를 인쇄 코드 라인의 백을 사용하지 않고.

+0

는 각 목록은 행을 repersents 중첩 된 목록을 고려 했습니까? – timgeb

+0

'2d'리스트를 사용하고 _block a field_ 란 무엇을 의미합니까? – Arman

+0

SO는 일반 이메일 또는 문자 메시지와 다릅니다. 자본 I과 수축을 올바르게 사용하십시오. –

답변

2

당신은 클래스를 생성하고 __setitem__를 사용할 수 있습니다

import string 
class Board: 
    def __init__(self, width): 
     self.w = width 
     self.board = [[[] for i in range(width)] for b in range(width)] 
    def __setitem__(self, coords, val): 
     self.board[coords[0]][coords[-1]] = [val] 
    def __repr__(self): 
     return ' '+' '.join(list(string.ascii_lowercase[:self.w]))+"\n"+'\n'.join(string.ascii_lowercase[a]+' '.join(str(i) for i in b) for a, b in enumerate(self.board)) 

board = Board(4) 
board[(2, 2)] = 'X' 
print(board) 

출력 :

a b c d 
a[] [] [] [] 
b[] [] [] [] 
c[] [] ['X'] [] 
d[] [] [] [] 
관련 문제