前提・実現したいこと
「テトリス風ゲーム作りで学ぶ初めてのPYTHON(標準モジュール)プログラミング(2020年改訂版)」という本を参考に、テトリスを作ろうとしています。
発生している問題・エラーメッセージ
unindent does not match any outer indentation level というエラーコードが出てしまい実行できない。 ### import tkinter as tk import threading, copy, random class BoardSize: Piece = 20 Width = 10 Heigth = 22 def chg_color(color, ratio): color_rgb_r = int(color[1:3], 16) color_rgb_g = int(color[3:5], 16) color_rgb_b = int(color[5:7], 16) if ratio > 100: rgb_r = int((255 - color_rgb_r) * (ratio - 100) / 100 + color_rgb_r) rgb_g = int((255 - color_rgb_g) * (ratio - 100) / 100 + color_rgb_g) rgb_b = int((255 - color_rgb_b) * (ratio - 100) / 100 + color_rgb_b) else: rgb_r = int(color_rgb_r * ratio / 100) rgb_g = int(color_rgb_g * ratio / 100) rgb_b = int(color_rgb_b * ratio / 100) return '#%02x%02x%02x' % (rgb_r, rgb_g, rgb_b) class Block: ~~~~~~~~~中略 def OnTimer(self): if self.isKeyDown is True: return self.keyAllowed = False copy_board = copy.deepcopy(self.board) if not self.isCurBlock: delLineNumb = self.CheckDelLine(copy_board) if delLineNumb < BoardSize.Heigth and delLineNumb != 0: del self.board[delLineNumb] self.board.insert(0, [0] * BoardSize.Width) self.OnPaint() else: newShape = random.randint(1, 7) newBlockCoords = copy.deepcopy(self.BlockTable[newShape]) [newX, newY] = [int(BoardSize.Width / 2), 1] if not self.CheckMoveAvailable(copy_board, newBlockCoords, newX, newY): self.timerStop = True else: self.DrawBlock(copy_board, newBlockCoords, newX, newY, newShape) self.isCurBlock = True [[この部分でerror]]➡else: self.SetBlockOnBoard(copy_board, self.curBlockCoords, self.curX, self.curY, 0) if not self.CheckMoveAvailable(copy_board, self.curBlockCoords, self.curX, self.curY+1): self.isCurBlock = False ```PYTHON