进度描述
此次对《java项目:炉石传说》进行了更新,来到ver 2.0。
更新内容
新添玩法:
(Cost)费用:每个随从都有召唤费用,通常为 (AP+HP)/2,需要消耗对应的水晶才能召唤进战场;
(CardLibrary)牌库:游戏开始时,给每个玩家初始化30张牌(随从),相同的随从可以重复出现最多3次;
(Cemetery)墓地:随从被击杀时,将从战场中移出,并置入每个玩家各自拥有的墓地中;
(HandCard)手牌:游戏开始时,每个玩家从牌库中依序抽出前3张牌作为手牌,手牌最多10张;
先手:游戏通过抛硬币的方式决定先手玩家;(等概率公平随机)
抽牌:先手玩家从自己的牌库中抽第4张牌并开始游戏;每个玩家在自己回合开始时都会抽1张牌;若牌库没有牌可抽,将按1、2、4、8的方式扣除英雄的生命值(直至英雄死亡);若手牌已有10张, 抽牌后11张,则需要选择1张牌置入墓地后再继续其他操作。
水晶:每个回合开始时玩家将收获水晶;水晶在回合结束后将清空;第1回合双方拥有2个水晶,此后每个回合增加1个水晶,直到达到最大值10个水晶。
代码说明
由于暂时还没找炉石的牌库,所以决定先随机生成卡牌(名称、攻击力、生命值),并用牌堆(CardPile)储存。
Role类
1 | public Role(){ |
抽卡行为Draw和部署行为Deployment,以及一些新添的内容
Hero类
1 | public int HP; |
新添技能Skill和name
battlefiledCard类(原Servant类)
1 | ArrayList<Card> servant; |
更名为战场牌(battlefiledCard类)
Cemetery类
1 | ArrayList<Card> dead; |
墓地
Skill类
1 | public String type; |
此为所选英雄技能的初始化。
Card类
1 | public String name; |
此为卡牌类,包括卡牌的基础属性、费用、以及卡牌的初始化方法。初始化方法用的是随机生成数值,并带有根据费用带来的一定限制。
CardPile类
1 | ArrayList<Card> TotalCard; |
简单的生成一个牌堆。
CardLibrary类
1 | ArrayList<Card> CardInit; |
生成玩家自己的牌库,从牌堆中随机挑选(暂时先随机挑选吧)。
HandCard类
1 | ArrayList<Card> handCard; |
手牌类,需要进行最大容量判断和移除操作。
总结
能力和时间都有限,有些知识还没学,先更新到这里,后面还有版本前瞻,可以先看看。
版本前瞻
加点功能
英雄:
1、增加名称、头像
2、技能类增加特殊随从召唤
卡牌:
1、给每个卡牌增加正反两面的图案(看时间)
2、初始时卡牌都在右侧的牌库,堆叠、背面朝上
3、卡牌使用后(或随从被击杀)依次放在左侧的队列,正面朝上
4、增加战场中的卡牌状态
休息:刚被召唤进战场或本次行动后
可用:玩家回合一开始时
其他状态自己增加
做个界面
就尽量往炉石的界面做,争取能进行基本游戏操作即可。
先去学一学异常处理机制、文件输入输出流、GUI和网络进行开发。
人机对战
每个回合,每个玩家可以执行的动作其实只有(回合开始自动)“抽牌”、“召唤”(选那些牌)、“攻击”(选谁攻击谁)和结束回合这么几种,当然因为召唤有消耗,具体会有不同的随从召唤策略,同时攻击也有攻击哪个随从或玩家的差异。可以设计多种的机器智能,使机器玩家也能进行游戏。
GitHub Issues