나는 파이썬으로 체커 게임 보드를 구현 중이다.체커 보드 구조
_matrix = []
for i in xrange(8):
_matrix.append([' '] * 8)
for row in xrange(0, 8):
for col in xrange(0, 8):
if _darkQuad(row, col) == True:
_matrix[row][col] = '#'
else:
_matrix[row][col] = '-'
def _darkQuad(row, col):
return ((row%2) == (col%2))
def _printDebugBoard():
for row in xrange(0, 8):
for col in xrange(0, 8):
print _matrix[row][col]
print ''
이 같이 내 보드를 수행해야합니다 :
# - # - # - # - - # - # - # - # ...
그러나 결과는 다음과 같습니다
여기에 내가 [8] [8] 배열로 보드 구조를 생성하는 방법이다- - - - - - - -
# # # # # # # #
- - - - - - - -
# # # # # # # #
- - - - - - - -
# # # # # # # #
- - - - - - - -
# # # # # # # #
무엇이 잘못 되었습니까?
UPD : 흠, 난이 중요하다 생각하지 않았다. 난 내 코드를 더 쉽게하지만, 여기에 정확한 코드 나는 사용한다 : 새로 게시 된 코드에 대한
이class gameSquare(object):
def __init__(self):
self.validSquare = False
self.symbol = ''
def printSymbol(self):
print self.symbol,
-------
def _validateSquares(self):
for row in xrange(0, 8):
for col in xrange(0, 8):
if self._darkQuad(row, col) == True:
self._matrix[row][col].validSquare = False
self._matrix[row][col].symbol = '#'
else:
self._matrix[row][col].validSquare = True
self._matrix[row][col].symbol = '-'
--------
for i in xrange(8):
self._matrix.append([gameSquare()] * 8)
-------
def _printDebugBoard(self):
print ''
for row in xrange(0, 8):
for col in xrange(0, 8):
self._matrix[row][col].printSymbol()
print ''
py 2.6에서'xrange' 함수가 더 이상 사용되지 않습니다. –
@ Jweede, 나는 iterators를 사용하기 때문에 range보다 빠르다고 생각했습니다. 그러나 결코 신경 쓰지 않습니다. – Ockonal
@ Jweede, No,'xrange'는 파이썬의 전체 2.x 브랜치에 남아있을 것이고'2to3'에 의해'range '에 자동 변환 될 것입니다. –