A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈泽鑫 中级黑马   /  2012-12-11 12:01  /  3998 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈泽鑫 于 2012-12-11 12:01 编辑

希望进来的都能看看,顺便发表下自己的意见。不管懂不懂,大家交流才能增进知识,对吧。
对于卡牌游戏最经典的也就是”游戏王”了,如果不知道游戏王的,哥们儿你可以回去补补童年了,
呵呵...而且卡牌游戏也能极大的挑战自身的策略性和智商。
于是就像设计下游戏王风格的游戏(当然暂时不需要图形化界面,模拟以下就好)。
游戏王的卡牌游戏由于卡片效果的多样化,致使战斗的随机性很强,哪怕你占据了优势,
对方只需一张卡片你就会落败,也许也因为这点(理由很多,我也随便说说)游戏王的游戏才经久不衰....

先讲讲卡片:

魔法陷阱卡就不讲了(很好理解)
怪兽卡:
1.属性:比如暗属性啊光属性什么的
2.种族:天使族,战士族等等
3.星级:就是怪兽卡的星星的个数
4.攻击力
5.防御力
6.效果:也是最主要的一个属性,就因为这些效果才有了战斗的多样化
然后战斗界面如下:(看到这个应该会稍微回忆起点了吧)

战斗区:
1,卡组: 最多只能有60,15张的调整数量到特殊召唤区,因此范围为45~60
2,墓地.场地魔法卡区和特殊召唤区就不讲了(先设计下战斗流程)
2,手牌: 手牌最多可以有7,超过的会提示你丢弃那张牌(暂时不考虑手牌无限制的效果)
3, 怪兽区和魔法陷阱卡区各能放5张牌。
然后是对战操作了:(以本方为例)
1,(省去第一轮)先从卡组抽取一张卡片。
2,选择覆盖卡片
魔法陷阱卡:只能选择背面盖在场地
怪兽卡:有两种选择防守还是攻击表示(暂时不考虑背面表示,只能正面显示)
(先说明下:双方阶段时都有5个小阶段)
3,本方回合阶段:如果有能发动的效果可以点击卡片发动(怪兽卡、魔法和陷阱卡都可以)
4,对方回合阶段:在每个小阶段时,当有魔法、陷阱卡或怪兽卡有可发动的效果时,提示玩家是否要发动效果。
1~4为重复操作,直到决出胜负
5End......不是不是你赢就是对方赢了(单机最大的好处就是可以存档,呵呵)
然后就请大家发表下自己的设计思路把......

评分

参与人数 1技术分 +3 收起 理由
admin + 3

查看全部评分

3 个回复

倒序浏览
本帖最后由 陈泽鑫 于 2012-12-11 12:09 编辑

为了让大家有个参照,我就先把自己的设计想法说说(不管好坏,你们能忍就忍把,呵呵)
1,先设计游戏全部的牌:
A.将各种类型的牌最共性的字段封装成一个接口,这样就可以用多继承获得各种不 同的字段,
           可以实现一张卡有战士族和岩石族等特定把,finaly修饰的字段应该也会被继承的把(我不是很清楚哦,似乎是可继承不可修改)
B.然后每种类型的牌一级一级的继承或实现需要的牌类型,并覆写或重载需要的效果的方法。
           每种不同的卡片就是一个字节码文件(这样牌就设计好了,不知道是否可行,毕竟只是想想)
2,对战设计:

(墓地、场地魔法卡和特殊召唤区,暂时不予考虑,前提本方回合是一个对象self
A 牌组(45~60的范围,这里就定格为60好了)
牌组不知道是需要封装成一个对象好呢还是单纯的一个数组,不过有抽卡的方法,
       还是封装成一个对象的好,然后内部对60张卡片的字节码名称存到数组中,在抽取卡片的时候,
       用反射创建当前卡片的实例对象(这样牌组就设计好了)
B 手卡区:
手卡区就作为一个可变数组,存储抽取的实例对象名,用self来操作手卡数组中的对象。
C 怪兽卡和魔法陷阱卡(暂命名为场地)
固定的一个数组。本方回合阶段:如果有能发动的效果可以操作数组发动
D 五个小回合阶段(应该也是最重要的阶段)
因为对方回合阶段:在每个小阶段时,当有魔法、陷阱卡或怪兽卡有可发动的效果时,提示玩家是否要发动效果。
所以就这么设计(先固定当前阶段为M1
---M1---(底层调用此方法)
Whileflag){
           1因为要现有可发动的效果才能执行,所以先遍历场地的对象是否有可执行的方法(因此将方法固定命名为某个关键字,
             m1method()吧)如果有添加进一个数组,这样如果数组为空就跳过本阶段,有对象则提示玩家是否执行效果。
             因为不是图形化界面,就提示用户输入10把。
     While(Arr =null){
             用反射调用方法对象方法
            卡片1.m1method(){
                    If  (x == 0) continue;
                    .....效果代码
             }
            调用对方方法,判断是否有连锁方法
     }
}
这样对战也就告一段落了
设计粗糙,不管你们看没看懂,我是看懂了,呵呵...如果有不对的地方或者想表自己的设计思路不妨谢谢,大家交流才能进步对吧

回复 使用道具 举报
果断顶起!!{:soso_e179:}上初中家里没网天天玩啊
但是估计有效果的卡牌才是最难做的!!比如效果怪兽,魔法卡,陷阱卡
回复 使用道具 举报
从来没玩过这游戏啊 郁闷 第一次见到  难道我的童年悲剧了?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马