资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
GREED游戏设计课 程 面向对象技术与C+编程 老 师 房鸣 作 者 096633 黄刚 09663? 曾怀东 2009-12-23 目录一、Greed游戏简介1二、问题陈述1三、术语解释2四、类的筛选2五、用例图及用例说明31、用例图32、用例说明3六、类图及其说明41、类关系图4七、活动图51、游戏整个过程活动图52、入局前玩家投掷活动图63、入局后玩家投掷活动图7八、时序图81、玩家登陆时序图82、玩家游戏过程时序图83、玩家退出时序图94、游戏结束时序图9九、协作图101、玩家登陆协作图102、玩家游戏过程协作图103、玩家退出协作图114、游戏结束协作图11十、状态图121、游戏控制类状态图122、玩家类状态图12一、Greed游戏简介本游戏使用6个立方体骰子,可供两个以上游戏者集体游玩。骰子的六面分别标有阿拉伯数字16的点数。游戏时若干个骰子同时集中掷下,依据所得到点数组合计算得分。游戏计分规则如下:获得一个1点得100分;获得一个5点得50分;获得三个1点得1000分;获得六个1点得3000分;获得三个相同点(三个一点除外)将此单独点数乘以100后计算得分;(例:三个2点得分为2100=200分)。游戏控制规则如下:游戏者依次获得一轮游戏机会,得分由各轮游戏的得分累计获得。每一轮开始时有六个骰子可以投掷。每掷一把后计算得分并将得分的骰子取出,再汇集其余的骰子掷下一把。逐次掷下去直至掷完骰子或主动放弃再掷。游戏开始时,掷一把得到300分或以上分既可入局(已得积分带入)。否则将失去本轮游戏资格须待下一轮机会。在入局后的每轮投掷中,若有一把未能得分,则本轮已得的全部积分作废且失去本轮游戏资格须待下一轮机会。首先获得3000分者为赢家。二、问题陈述Greed游戏是单机多人掷骰子游戏。游戏开始后玩家(Player)输入信息,游戏初始化设置游戏参数,包括骰子总数(Dice),入局分数(Threshold),获胜分数(Winner Score)等信息。玩家在激活状态(Active)方可进行操作。玩家可选择开始游戏(Play)或退出游戏(Quit),玩家入局后还可选择放弃投掷(Pass)。每次操作结束,系统根据游戏规则(Rule)更新游戏信息,计算玩家的相应信息并将得分情况以及当前可用骰子数(Left Dice)告知玩家。当前玩家数少于2人或有玩家已达到获胜分数,系统宣布赢家(Winner),结束游戏。三、术语解释玩家:游戏的参与者。一般情况下,游戏者在游戏开始时就要确定下来,游戏开始后原则上不允许其它游戏者加入。局:初始参与游戏的玩家进行的一场得分比赛,首个得分过3000分的游戏者为胜者,此时一局游戏结束。入局资格:一局得分比赛分为多轮进行,在每轮进行之前都要先进行入局投掷,得到入局基准分(300分及以上)后才可入局进入本轮比赛;否则要等待其它玩家玩完本轮后重新进行入局投掷。轮:当玩家依据入局规则入局后才有资格进入一轮比赛。在某轮(假设已入局)中,由各个玩家依次掷骰子,直到掷完所有骰子,或玩家放弃。次:每投一次骰子称作一次。点数组合:游戏定义中的计分规则。当一次掷骰子的点数符合多种组合时,以得分多的规则为主。剩余骰子数:游戏开始时共有6枚骰子,一旦玩家掷完一次,就要把得分的骰子拿开,用剩下的骰子继续投掷,直到投掷完所有骰子或玩家放弃。放弃:入局后玩家有随时放弃继续投掷的权利,则本轮所有得分将计入玩家总分。每轮分数:表示玩家在一轮投掷中所获得的分数。玩家总分:表示玩家在一局中的若干轮所获得的累积分数。当轮积分作废:在每轮比赛中,若某个玩家在一次投掷得到的点数不符合任何得分点数组合,则不能得分,并且失去继续投掷的资格,本轮所有得分不得计入玩家总分。赢家:当玩家数少于2人或有玩家已达到获胜分数3000分,系统宣布赢家,结束游戏。四、类的筛选名词:系统,平台,玩家,骰子,点数,剩余骰子,规则,轮,总分,得分,显示界面,积分,排名,次序,把,入局资格,投掷资格, 0分,300分,3000分名词筛选:系统,玩家,骰子,轮,次序,积分,排名,显示界面动词:登录,初始化,获得,显示,排名,投掷,继续投掷,放弃,积分累计,更新,轮换,作废,失去,提示,确认,开始游戏,等待,游戏结束动词筛选:初始化,积分累计,确认,显示,排名,投掷,更新,轮换,放弃,游戏结束经过筛选,选出玩家(Player),骰子(Dice),控制器(Controller),积分器(Calculator)四个类,其它名词在类中的属性中得到体现。五、用例图及用例说明1、用例图2、用例说明用例一:Login玩家(Player)进入游戏系统,登记注册信息。控制器(Controller)进行游戏初始化,包括更新玩家数,设定骰子数,提示积分器(Calculator)清零等,并向玩家返回游戏开始信息。用例二:Play game游戏开始,玩家投掷骰子,系统根据规则分析判定玩家的本次投掷的得分情况及累积分数,依据这些分析结果决定下一阶段的动作,当玩家失去本轮投掷资格时,控制器中止该玩家本轮游戏资格,转向下一个玩家;当玩家仍有投掷资格时,是由玩家选择继续投掷或放弃投掷,若放弃,则轮到下一个玩家。每轮游戏结束时,Calculator要向玩家返回本轮的得分,并显示积分排名更新情况。用例三:Quit game玩家选择退出游戏,控制器查看剩余玩家信息,若无剩余玩家,则游戏结束;若仅剩一名玩家,则控制器判断剩余玩家为赢家,结束游戏;若有多名玩家,则控制器更新游戏玩家信息,并通知积分器清除该玩家积分,更新排名。六、类图及其说明1、类关系图2、说明由问题陈述,抽象出Player,Dice,Controller,Calculator四类。l Player类属性:用户ID;总分TotalScore;当轮积分CurrentScore;当前骰子数DiceNumber;排名Ranking方法:登录游戏LogGame();玩游戏Play();退出游戏QuitGame()l Dice类属性:骰子点数Value方法:骰子数更新Update()l Controller类属性:玩家数PlayerNumber;骰子数DiceNumber;轮次数RoundNumber;玩家序列PlayerQueue;当前玩家CurrentPlayer方法:初始化Initial();添加玩家AddPlayer();删除玩家DelPlayer();玩家信息更新Update()l Calculator类属性:入局分数ThresholdScore;胜利分数:WinnerScore;玩家数PlayerNumber;玩家序列PlayerQueue;当前玩家CurrentPlayer;临时积分TempScore;排名Ranking方法:读骰子GetScore();记分CalculateScore();判决Judge();更新Update()七、活动图1、游戏整个过程活动图2、入局前玩家投掷活动图3、入局后玩家投掷活动图八、时序图1、玩家登陆时序图2、玩家游戏过程时序图3、玩家退出时序图4、游戏结束时序图九、协作图1、玩家登陆协作图2、玩家游戏过程协作图3、玩家退出协作图4、游戏结束协作图十、状态图1、游戏控制类状态图2、玩家类状态图12
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号