# File gnomecanvas/sample/canvas-fifteen.rb, line 60
  def scramble
    srand()

    # First, find the blank spot
    pos = 0
    0.upto(15) do |i|
      if @board[i].nil?
        pos = i
        break
      end
    end

    # "Move the blank spot" around in order to scramble the pieces

    0.upto(SCRAMBLE_MOVES) do
      dir = rand(4).to_i

      x = y = 0

      if (dir == 0) && (pos > 3) # up
        y = -1
      elsif (dir == 1) && (pos < 12) # down
        y = 1
      elsif (dir == 2) && ((pos % 4) != 0) # left
        x = -1
      elsif (dir == 3) && ((pos % 4) != 3) # right
        x = 1
      else
        retry
      end

      oldpos = pos + y * 4 + x;
      @board[pos] = @board[oldpos];
      @board[oldpos] = nil
      @board[pos].pos = pos
      @board[pos].move(-x * PIECE_SIZE, -y * PIECE_SIZE)
      @canvas.update_now()
      pos = oldpos
    end
  end