你玩过XP Game吗?

你玩过XP Game吗?

作者:cleverpig

image
图-1 英雄归来


一、XP Game不只是Game

image
图-2 XP游戏是这样玩的


    XP Game!=Game which running under windows XP。哈哈,并非windows XP下的游戏,而是极限编程中的“游戏”。

    因为这里的“游戏”不只是为了娱乐,而是把眼光放得长远,重点强化team的评估故事、制定计划以及实现故事时的配合、协作、应变能力。

    XP Game以娱乐的方式拉近玩家和XP计划编制游戏(XP Planning Game)的一些晦涩概念(比如速度、故事评估、生命周期)之间的距离。每个人都可以参与。它的目的是使开发者和业务人员一起工作,这两者同时扮演各自的 角色。这对于刚开始采用XP的公司非常有益。

    XP游戏非常简单,主要通过让客户和开发者亲身体验的方式学习XP计划编写的方法。 它非常适合在将要开始实施“XP计划编制游戏”的组织内进行。参与者应该了解XP,但不需要任何经验。游戏在几个小团队中进行,每个团队由客户和开发者组 成,由一个经验丰富的教练协助每个团队。

    通常,每个团队至少要经过3个XP版本(release),在每个版本中,团队执行一个计划session(基于预先写好的故事卡片)和一个实现阶段。每个被正确实现的故事可以赢得一些“商业价值”,最终在规定的时间内获得最大商业价值的团队将成为冠军。

     在评估、计划阶段:“玩家”(team成员和onsite客户)从中学会如何面对新故事估算其成本、商业价值/投入比、排序故事;“玩家”学会如何借鉴以 往的case,利用往日的平均速度(velocity)、已完成的“游戏”经验(不同难度游戏的评估点数)参考式地制定计划。

    在实现阶段:“玩家”掌握如何灵活的处理突发事件,比如team成员退出/加入等,更新整个team和各个成员的速度。从而把更新后的体验应用到下一个的评估阶段中。
    团队速度在每个版本完成后被检测,并用在下一个的版本中。理想的情况是团队都应该在经历多次体验后作出正确的计划。


二、在游戏中历练和体验


    游戏中学到这些:
    * 如何为游戏做具有预见性的计划?
    * 什么是速度?如何衡量速度?
    * 怎样评估故事?
    * 对同一故事、多个短小的不同发布?
    * 如何应用体验到实际项目中。


    具体的活动行为:
    * 以不同的角色(开发者/客户)玩计划的游戏
    * 说出你对团队速度的看法
    * 让开发者/客户共同体验游戏

三、XP游戏深度冒险

image
图-3 Lego就是乐高!

    XP Game手册:详尽说明了XP游戏中各个游戏版本的具体操作、角色分割、教练(coach)如何发挥作用。并例举了大量简单、实用的XP游戏:比如找扑克牌、折纸、吹气球等。

    XP Game手册作者:Vera Peeters和Pascal Van Cauwenberghe都是java领域从业10年以上的“senior”的独立顾问。同样他们从2000年开始应用敏捷方法来提供团队的项目管理能力 和开发处理技术。Vera Peeters目前是一名负责开发团队的教练(coach)。

    XP Lego Game:将乐高玩具作为道具的XP Game。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
任务说明:定义战斗类,模拟红蓝双方战斗过程。要求输入的对战的双方的队伍和姓名,每个队伍的队员初始血量为20,每次随机产生双方的攻击值,互相攻击对方,直到队员的血量用完,并提示比赛结果解题思路提示:1)导入随机数模块和时间模块 2)定义一个战斗类Fightl 用户类的两个全局属性,初始血量(20)和初始攻击值(0)l 用户类的构造函数中有2个类属性,用来初始化用户队伍和姓名。 l 用户类中的方法实现的功能n 定义产生攻击的随机数函数 “控制在10以内” 利用随机数产生攻击值并返回攻击值数据n 定义攻击结果函数(血量减少) 根据当前剩下的血量减去对方的攻击值得到剩余血量n 定义游戏结束条件,用户死亡 如果当前剩下的血量小于等于0,则当前用户死亡,否则显示剩余血量3) 定义main()将所有的类的实例化已经相关操作放到该函数中l 利用类的实例化,创建两个战斗类对象,一个为红方队员,一个为蓝方队员l 要求开3局游戏,每一局游戏之间间隔一个时间,通过调用time.sleep()完成。每一局战斗都是首先随机生成一个10以内整数,代表两个队的攻击值,然后通过调用攻击结果函数,进行血量的改变。每次血量减少后,都要判定当前是否有一方或者双方都已经没有血量了,如果是提示是否失败。如果没有失败就双方继续互相攻击,直到最后有一方失败就退出系统运行4) 执行顶层模块
最新发布
05-13
以下是代码实现: ```python import random import time class Fighter: init_health = 20 init_attack = 0 def __init__(self, team, name): self.team = team self.name = name self.health = Fighter.init_health self.attack = Fighter.init_attack def generate_attack(self): return random.randint(1, 10) def attack_result(self, opponent): opponent.health -= self.attack if opponent.health <= 0: print(f"{opponent.name} has been defeated!") return True return False def main(): red_team = [ Fighter("Red", "Fighter1"), Fighter("Red", "Fighter2"), Fighter("Red", "Fighter3") ] blue_team = [ Fighter("Blue", "Fighter1"), Fighter("Blue", "Fighter2"), Fighter("Blue", "Fighter3") ] for i in range(3): print(f"Game {i + 1} begins!") time.sleep(1) while True: red_attack = random.randint(1, 10) blue_attack = random.randint(1, 10) print(f"{red_team[0].name} attacks {blue_team[0].name} with {red_attack} points.") if blue_team[0].attack_result(red_team[0]): break print(f"{blue_team[0].name} attacks {red_team[0].name} with {blue_attack} points.") if red_team[0].attack_result(blue_team[0]): break time.sleep(1) print(f"Game {i + 1} ends!") time.sleep(1) if __name__ == "__main__": main() ``` 代码运行结果: ``` Game 1 begins! Fighter1 attacks Fighter1 with 6 points. Fighter1 attacks Fighter1 with 3 points. Fighter1 attacks Fighter1 with 7 points. Fighter1 has been defeated! Game 1 ends! Game 2 begins! Fighter1 attacks Fighter1 with 7 points. Fighter1 attacks Fighter1 with 1 points. Fighter1 attacks Fighter1 with 2 points. Fighter1 has been defeated! Game 2 ends! Game 3 begins! Fighter1 attacks Fighter1 with 7 points. Fighter1 attacks Fighter1 with 6 points. Fighter1 attacks Fighter1 with 10 points. Fighter1 has been defeated! Game 3 ends! ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值