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

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.

主站蜘蛛池模板: 通辽市| 永修县| 衢州市| 石嘴山市| 扎赉特旗| 密山市| 新乡市| 九龙县| 顺昌县| 云和县| 襄垣县| 无极县| 梁河县| 田林县| 平江县| 钟祥市| 七台河市| 五寨县| 巫山县| 长泰县| 额敏县| 贵州省| 延安市| 阜宁县| 镇雄县| 交城县| 甘洛县| 察隅县| 右玉县| 平阳县| 都江堰市| 噶尔县| 湘潭市| 周口市| 达孜县| 林芝县| 亚东县| 东阳市| 溧阳市| 唐河县| 宁德市|