Python を使用してマインスイーパ プログラムを作成しようとしています。私のカスケード公開を除いて、すべてが正常に機能しています。ここに私が持っているものがあります:
def rippleEffect(self, r, c):
if self.ActualBoard[r][c] == 0:
self.GameBoard[r][c] = self.ActualBoard[r][c]
rcchar = str(sum(1
for rr in (r-1, r, r+1)
for cc in (c-1, c, c+1)))
for rr in (r-1, r, r+1):
for cc in (c-1, c, c+1):
if self.ActualBoard[rr][cc] != 'M' and self.ActualBoard[rr][cc] > 0:
self.GameBoard[rr][cc] = self.ActualBoard[rr][cc]
else:
try:
if (rr,cc) != (r,c) and self.GameBoard[rr][cc] == 'H':
self.rippleEffect(rr, cc)
except IndexError:
pass
ActualBoard は、すべてが公開されたリストのリストで構成されています。
[[0, 1, 1, 1], [0, 1, M, 1], [0, 1, 1, 1], [0, 0, 0, 0]]
地雷が 1 つある 4x4 ボードの場合。
GameBoard もリストのリストで構成されていますが、ゲームが開始されると次のようになります。
[['H','H', 'H', 'H'], ['H','H', 'H', 'H'], ['H','H', 'H', 'H'], ['H','H', 'H', 'H']]