protocol TurnBasedGame {
var turn: Int { get set }
func play()
}
protocol TurnBasedGameDelegate {
func gameStart()
func PlayerMove()
func gameEnd()
func turnStart()
func gameOver() -> Bool
}
class SinglePlayerTurnBasedGame: TurnBasedGame {
var turn = 0
var delegate: TurnBasedGameDelegate!
func play() {
delegate.gameStart()
while !delegate.gameOver() {
turnStart()
delegate.playerMove()
turn += 1
}
delegata.turnEnd?()
delegate.gameEnd()
}
}
class RollNumberGame: SinglePlayerTurnBasedGame, TurnBasedGameDelegate {
var score = 0
override init() {
super.init()
delegate = self
}
func gameStart() {
score = 0
truen = 0
}
func gameOver() -> Bool {
return score >= 100
}
func playerMove() {
let rollNumber = Int( arc4random() )%6 + 1
score += rollNumber
}
func gameEnd() {
print ("gameEnd")
}
}
let rollNumberGame = RollNumberGame()
rollNumberGame.play()
在父类中设计委托
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 怎么获取view在父类中的frame, 或者说 父类UIView中SubView的坐标怎么转换成在父类UIView...
- 1,成员变量: 在多态中,子父类成员变量同名。 在编译时期:参考的是引用型变量所属的类中是否有调用的成员。(编译时...