官术网_书友最值得收藏!

Time for action – filling in the gaps

  1. Add the FillFromAbove() method to the GameBoard class.
    Public Sub FillFromAbove(x As Integer, y As Integer)
      Dim rowLookup As Integer = y - 1
    
      Do While (rowLookup >= 0)
        If GetSquare(x, rowLookup) <> "Empty" Then
          SetSquare(x, y, GetSquare(x, rowLookup))
          SetSquare(x, rowLookup, "Empty")
          rowLookup = -1
        End If
        rowLookup -= 1
      Loop
    End Sub

What just happened?

Given a square to fill, FillFromAbove() looks at the piece directly above to see if it is marked as Empty. If it is, the method will subtract one from rowLookup and start over until it reaches the top of the board. If no non-empty pieces are found when the top of the board is reached, the method does nothing and exits.

When a non-empty piece is found, it is copied to the destination square, and the copied piece is changed to an empty piece. The rowLookup variable is set to -1 to ensure that the loop does not continue to run.

Generating new pieces

We can create a single method that will fill any empty spaces on the game board, use it when the game begins, and when pieces are removed from the board after scoring.

主站蜘蛛池模板: 太白县| 台江县| 赤峰市| 珲春市| 古蔺县| 东源县| 宁强县| 牙克石市| 涿鹿县| 祥云县| 临高县| 凤庆县| 格尔木市| 余姚市| 东阿县| 竹北市| 河西区| 鱼台县| 芷江| 资源县| 肥乡县| 浮梁县| 赫章县| 万全县| 湖州市| 遵义市| 正镶白旗| 垦利县| 柞水县| 股票| 凤庆县| 米易县| 房产| 阜宁县| 安塞县| 东光县| 射洪县| 金门县| 会昌县| 沙洋县| 塔河县|