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

The GamePiece class

The GamePiece class represents an individual pipe on the game board. One GamePiece has no knowledge of any other game pieces (that is, the responsibility of the GameBoard class), but it will need to be able to provide information about the pipe to objects that use the GamePiece class. Our class has the following requirements:

  • Identify the sides of each piece that contain pipe connectors
  • Differentiate between game pieces, which are filled with water and which are empty
  • Allow game pieces to be updated
  • Automatically handle rotation, by changing the piece type to the appropriate new piece type
  • Given one side of a piece, provide the other sides of the piece in order to facilitate determining how water can flow through the game board
  • Provide a rectangle that will be used when the piece is drawn to locate the graphic for the piece on the sprite sheet

Identifying a GamePiece

While the sprite sheet contains 13 different images, only 12 of them are actual game pieces (the last one is an empty square). Of the 12 remaining pieces, only six of them are unique pieces. The other six are the water-filled versions of the first six images.

Each of the game pieces can be identified by which sides of the square contain a connecting pipe. This results in two straight pieces and four pieces with 90 degree bends in them.

Instead of treating filled pieces as separate piece types, a second value can be tracked to determine if the piece is filled with water or not.

主站蜘蛛池模板: 阿瓦提县| 噶尔县| 郑州市| 陆河县| 大竹县| 祁东县| 茌平县| 公安县| 鄂伦春自治旗| 荣昌县| 曲阜市| 田阳县| 庐江县| 晴隆县| 乐平市| 察哈| 绩溪县| 日喀则市| 扎囊县| 阿克苏市| 衢州市| 吴旗县| 阿坝县| 陵川县| 滨海县| 祁东县| 墨竹工卡县| 南汇区| 增城市| 庄浪县| 台南县| 连城县| 农安县| 茌平县| 旺苍县| 房产| 霍林郭勒市| 井冈山市| 湘乡市| 株洲市| 阿鲁科尔沁旗|