Python: Display Shape from Tetris Game
<p>I'm trying to write a code that will display a shape from tetris on a board. I keep getting this error and don't know how to fix it:</p>

<blockquote>
  <p>TypeError: unbound method can_move() must be called with O_shape instance as first argument (got Board instance instead)</p>
</blockquote>

<p>Here is my code:</p>

<pre><code>class Board():

    def __init__(self, win, width, height):
        self.width = width
        self.height = height

        # create a canvas to draw the tetris shapes on
        self.canvas = CanvasFrame(win, self.width * Block.BLOCK_SIZE + Block.OUTLINE_WIDTH,
                                        self.height * Block.BLOCK_SIZE + Block.OUTLINE_WIDTH)
        self.canvas.setBackground('light gray')

        # create an empty dictionary
        # currently we have no shapes on the board
        self.grid = {}

    def draw_shape(self, shape):
        ''' Parameters: shape - type: Shape
            Return value: type: bool

            draws the shape on the board if there is space for it
            and returns True, otherwise it returns False
        '''
        if shape.can_move(self, 0, 0):
            shape.draw(self.canvas)
            return True
        return False

class Tetris():

    SHAPES = [I_shape, J_shape, L_shape, O_shape, S_shape, T_shape, Z_shape]
    DIRECTION = {'Left':(-1, 0), 'Right':(1, 0), 'Down':(0, 1)}
    BOARD_WIDTH = 10
    BOARD_HEIGHT = 20

    def __init__(self, win):
        self.board = Board(win, self.BOARD_WIDTH, self.BOARD_HEIGHT)
        self.win = win
        self.delay = 1000 #ms

        # sets up the keyboard events
        # when a key is called the method key_pressed will be called
        self.win.bind_all('&lt;Key&gt;', self.key_pressed)

        # set the current shape to a random new shape
        self.current_shape = self.create_new_shape()

        # Draw the current_shape oan the board 
        self.board.draw_shape(self.current_shape)


    def create_new_shape(self):
        ''' Return value: type: Shape

            Create a random new shape that is centered
             at y = 0 and x = int(self.BOARD_WIDTH/2)
            return the shape
        '''

        # YOUR CODE HERE
        y = 0
        x = int(self.BOARD_WIDTH/2)
        the_shape = random.choice(self.SHAPES)
        return the_shape
</code></pre>
