gpt4 book ai didi

python - 棋盘结构

转载 作者:太空狗 更新时间:2023-10-30 02:23:41 27 4
gpt4 key购买 nike

我正在用 python 实现跳棋游戏板。以下是我如何将棋盘结构生成为 [8][8] 数组:

 _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 ''

这应该像我的董事会一样:

 # - # - # - # -
- # - # - # - #
...

但结果是:

- - - - - - - - 
# # # # # # # #
- - - - - - - -
# # # # # # # #
- - - - - - - -
# # # # # # # #
- - - - - - - -
# # # # # # # #

怎么了?


更新:嗯,我认为这不会很重要。我简化了我的代码,但这里是我使用的确切代码:

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 ''

最佳答案

更新新发布的代码

问题出在线路上:

self._matrix.append( [gameSquare()] * 8 )

这将在每一行创建 8 个对相同对象的引用。当您更改其中一个时,它实际上会更改整行。要修复它:

self._matrix.append( [gameSquare() for _ in xrange(8)] )

结束更新


您的代码对我有用。唯一需要修复的是:

print _matrix[row][col],

代替:

print _matrix[row][col]

避免在不同的行上打印每个字符。

我还必须重新排序函数以使代码运行(将 _darkQuad 放在顶部)。

关于python - 棋盘结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2631165/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com