使用 Python 和类,我正在尝试制作像战舰这样的游戏,主要用于练习。所以我做了一个游戏板对象,你“看到”它,然后“改变”它。(稍后我会将“create”与 init 合并)
但是在我的“更改”应用于每一行的地方发生了一些奇怪的事情......这是代码:
class Board:
'Game Board'
topMarkers = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
sideMarkers = list(range(0, 26))
def __init__(self,h,w): #Makes the map
self.height = h
self.width = w
def create(self): #Makes a map for displaying
wave = '~'
self.row = []
self.column = []
#self.column = wave * self.width # If width is 4, column is now '~~~~'
for c in range(self.width):
self.column.append(wave)
raw_input(self.column)
for r in range(self.height): #
self.row.append(self.column)
raw_input(self.row)
def showGrid(self):
print self.row
def changeRow(self, y, x):
self.row[1][2] = "Test"
yourShipsMap = Board(4,3)
theirShipsMap = Board(4,7)
theirShipsMap.create()
theirShipsMap.changeRow(2,2)
theirShipsMap.showGrid()
当我运行它时,它不仅在第一个列表,第二个索引,而且在每个列表,第二个索引中写入“测试”。知道为什么要这样做吗?
我讨厌当我停止一起编程一个月并忘记一切时。