python - 我需要帮助我不断收到此错误。TypeError:'Board' 对象不可下标
问题描述
我一直有同样的错误出现
Tracback (most recent call last):
File "main.py", line 7, in <module>
game = Game(board, screensize)
File "/home/runner/Minesweeper-game/game.py", line 7, in __init__
self.board = Board(size, prob)
File "/home/runner/Minesweeper-game/board.py", line 9, in __init__
for row in range(size[0]):
TypeError: 'Board' object is not subscriptable
import random
from piece import Piece class Board: def init (self, size, prob): self.size = size self.board = [] self.won = False self.lost = False for row in range(size[0]): row = [] for col in range(size[1]): bomb = random.random() < prob piece = Piece(bomb) row.append(piece) self.board.append(row) self.setNeighbors() self. setNumAround()
def print(self):
for row in self.board:
for piece in row:
print(piece, end=" ")
print()
def getBoard(self):
return self.board
def getSize(self):
return self.size
def getPiece(self, index):
return self.board[index[0]][index[1]]
def handleClick(self, piece, flag):
if piece.getClicked() or (piece.getFlagged() and not flag):
return
if flag:
piece.toggleFlag()
return
piece.handleClick()
if piece.getNumAround() == 0:
for neighbor in piece.getNeighbors():
self.handleClick(neighbor, False)
if piece.getHasBomb():
self.lost = True
else:
self.won = self.checkWon()
def checkWon(self):
for row in self.board:
for piece in row:
if piece.getHasBomb() and not piece.getClicked():
return False
return True
def getWon(self):
return self.won
def getLost(self):
return self.lost
def setNeighbors(self):
for row in range(len(self.board)):
for col in range(len(self.board[0])):
piece = self.board[row][col]
neighbors = []
self.addToNeighborsList(neighbors, row, col)
piece.setNeighbors(neighbors)
def addToNeighborsList(self, neighbors, row, col):
for r in range(row - 1, row + 2):
for c in range(col - 1, col + 2):
if r == row and c == col:
continue
try:
neighbors.append(self.board[r][c])
except:
pass
def setNumAround(self):
for row in self.board:
for piece in row:
piece.setNumAround()
我不知道发生了什么,但我一直在尝试修复它,但没有任何帮助。我确实有更多 .py 但这是有问题的。我不知道该怎么办了。似乎当我修复某些东西时它会损坏并且某些东西甚至没有被使用。
解决方案
推荐阅读
- sql - 如何在 oracle 中重写这个锁(FOR UPDATE)子查询?
- c# - 如何确保用户的答案有效,如果答案无效,请再次提问
- javascript - Gulp 错误:以下任务未完成:异步问题
- filter - Tableau:显示每个类别的聚合字符串行
- javascript - 有没有更好的方法通过对 API 的异步调用来组织这个 React 页面?
- git - 使用项目设置 Qt Creator 时出现问题,运行“git”时出错:execve:没有这样的文件或目录
- ios - 将音频从 AVAsset 写入 AVAudioPCMBuffer
- apollo-client - 将令牌从 auth0 注入到 React-admin Hasura 数据提供者
- android - Google Assistant App Actions codelab 示例在 AndroidTV 上不起作用(Fit Actions)
- python - 如何进行数学运算{例如。diff()} 在 DataFrame 的多个列中,并将结果作为新列保存在同一个 DataFrame 中