- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
附錄B
這個程式用以模擬一個遊戲主角,主角可以穿戴衣物,攜帶藥物,擁有寵物,持有武器,上述物品皆為物件。遊戲人物有人物特性,如擁有之生命力,肌力等。人物有特性的方法,如如何計算攻擊之力道或攻擊成功的機率,也擁有人物動作之方法如撿拾藥物及吞食藥物等,同時,人物還可以攜帶寵物,而寵物自身也可以擁有裝備及使用藥物等。這個範例相當適合同學練習物件的設計與實作。
在開始寫程式之前,我們先看一下以下的關係圖,並思考要設計哪些物件。
MainRole(遊戲主角)
MainRole(遊戲主角)
Pet(寵物)
Hat(帽子)
Clothes(衣服或戰甲)
Shoes(鞋子或靴子)
Pants(褲子)
Gloves(手套)
NeckLace(項鍊)
Rings(戒指)
Belts(腰帶)
裝備
PetClothing
NeckBand(項圈)
寵物裝備
Sword(劍)
Blade
Knife(刀)
Shield(盾牌)
Staff(杖)
Bow(弓)
Arrow(箭)
Spear(矛)
武器及盾牌
雪天果
龍角散
友露安
保濟丸
健兒寶
運功散
大還丹
愛福好
藥物
很明顯的,上圖中的所以裝備衣物武器都可以是物件,在這裡我們不會列出所有物件的程式碼,但是會大致上將其中的每一類型用範例來說明,請注意此處的程式碼雖然可以編譯,但內容皆不可謂完整,需視你想要的遊戲內容型態而有所調整,同學可以試著自己增加各式的元件及規則以期更加完整。首先我們來看遊戲主角的物件。
/*
* MainRole.java
*
* 用來描述遊戲的主角
*/
class MainRole{
int Strength; //力量
在這裡設定遊戲主角所可能有的各式屬性,同學可以視需要自行增減。 int Dexterity; //靈巧
在這裡設定遊戲主角所可能有的各式屬性,同學可以視需要自行增減。
int Viability; //生命力
int Defense; // 防禦力
int Level; // 等級
int Experience; // 經驗值
String Career; // 職業
String Name; // 名字
int Bonus; // 可使用之積點
double attackProbability; // 擊中之機率
int attackPower; // 擊中之力道
// 身上攜帶之藥箱
Medicine med[] = {new Medicine(雪天果), new Medicine(龍角散),
new Medicine(友露安), new Medicine(保濟丸),
藥箱的設計為Array,如此因為不知道會拿到多少種類的藥物,所以只好固定藥物的位置,如果同學想要取消這個限制,那麼可以考慮使用Vector來代替Array。new Medicine(健兒寶)};
藥箱的設計為Array,如此因為不知道會拿到多少種類的藥物,所以只好固定藥物的位置,如果同學想要取消這個限制,那麼可以考慮使用Vector來代替Array。
Hat hat; // 身上所穿之裝備
Pet pet; // 隨身之寵物
MainRole(int career, String name) {
if(career == 0){//戰士
this.Strength = 10;
this.Dexterity = 3;
this.Viability = 12;
this.Defense = 15;
this.Level = 0;
this.Experience = 0;
this.Name = name;
this.Career = 戰士;
在Constructor內建立不同職業選項,不同職業的角色有不同的屬性值,當然同學需要根據這些角色設計額外的描述變數以及武器裝備等。例如人物中有魔法師,那麼可能需要在人物變數中加上法力之類的變數。 this.attackPower = 1;
在Constructor內建立不同職業選項,不同職業的角色有不同的屬性值,當然同學需要根據這些角色設計額外的描述變數以及武器裝備等。例如人物中有魔法師,那麼可能需要在人物變數中加上法力之類的變數。
this.Defense = 1;
this.hat = null;
this.pet = null;
} // if
if(career == 1){//弓箭手
this.Strength = 7;
this.Dexterity = 10;
this.Viability = 8;
this.Defense = 10;
this.Level = 0;
t
您可能关注的文档
最近下载
- 知不足而奋进,望远山而力行——期中考前动员班会 课件.pptx VIP
- 05 专题五:二次函数与面积关系式、面积最值问题(铅锤法);中考复习二次函数压轴题题型分类突破练习.docx VIP
- xfer records serum血清合成器中文说明书.pdf VIP
- 审美鉴赏与创造知到智慧树期末考试答案题库2025年南昌大学.docx VIP
- JB∕T 7947-2017 气焊设备 焊接、切割及相关工艺用炬.docx VIP
- 响应曲面法(RSM).pptx VIP
- 上海普通公路设施养护维修预算定额上海普通公路设施养护维修.PDF
- 高频精选:保险行业面试题库及答案.doc VIP
- 试验设计与分析教学课件-响应曲面法.pptx VIP
- 村委换届选举实施方案4篇.doc VIP
原创力文档


文档评论(0)