private void paintFrozenBlocks(final Graphics2D the_graphics, final Color the_clear)
  {
    final List<Block[]> blocks = my_board.getFrozenBlocks();
    if ((blocks.size() >= my_board.getHeight() - DANGER_HEIGHT) 
        && (my_player.getIndex() != DANGER_SONG)
        && (!my_board.gameIsOver()))
    {
      my_player.stopPlay();
      my_player.change(DANGER_SONG);
      
    }
    else if ((blocks.size() < my_board.getHeight() - DANGER_HEIGHT) 
        && (my_player.getIndex() != 0))
    {
      my_player.stopPlay();
      my_player.change(0);
    }
    int height = my_height - BLOCK_SIZE;
    for (Block[] b : blocks)
    {
      for (int i = 0; i < b.length; i++)
      {
        the_graphics.setPaint(b[i].getColor());
        the_graphics.fill(new Rectangle2D.Double(i * BLOCK_SIZE, height, BLOCK_SIZE, 
                                                 BLOCK_SIZE));
        if (b[i].getColor().equals(the_clear))
        {
          the_graphics.setPaint(the_clear);
          the_graphics.draw(new Rectangle2D.Double(i * BLOCK_SIZE, height, BLOCK_SIZE, 
                                                   BLOCK_SIZE));
        }
        else
        {
          the_graphics.setPaint(Color.BLACK);
          the_graphics.draw(new Rectangle2D.Double(i * BLOCK_SIZE, height, BLOCK_SIZE, 
                                                   BLOCK_SIZE));
        }
      }
      height -= BLOCK_SIZE;
    }
  }