单人纸牌(Elevens Lab)活动7:设计class Board
导言
在完成了class Card
和Deck
之后,下一个要设计的是class ElevensBoard
。这个class会包含进行Elevens游戏所需的状态(实例变量)和行为(method)。
问题
- 如果你在书桌(而不是在电脑)上玩一局Elevens游戏,会需要哪些物件?参考这个列出
class ElevensBoard
所需的私有实例变量。 - 编写算法,描述玩Elevens游戏所需的步骤。
- 检查目录中名为
ElevensBoard.java
的文件,其为部分完成的class ElevensBoard
。它含有游戏所需全部的状态和行为么? ElevensBoard.java
内含三个助手method。这些method是private
的,因为它们只在class中被调用。- 在
ElevensBoard
中,dealMyCards
method是在哪里被调用的? - 哪些
public
method会调用containsPairSum11
和containsJQK
? - 理解
cardIndexes
method的工作原理以及其所返回的列表的作用是至关重要的。假定cards
有图中所示的这些元素。跟踪cardIndexes
method的执行并确定所返回列表的内容。将内容填在下图中并展示这些值是如何索引cards
的。注意返回的列表可能有少于9个元素。
- 完成以下的
printCards
method以打印由cIndexes
索引的所有扑克牌。public static void printCards(ElevensBoard board) { List<Integer> cIndexes = board.cardIndexes(); /* Your code goes here. */ }
- 对于你在4-2问中找到的method中的哪一个需要在调用
containsPairSum11
和containsJQK
method前调用cardIndexes
method?为什么?
- 在
0 条评论