设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 14165|回复: 35
打印 上一主题 下一主题

[原创发布] 【初级教学2】仿三国志舌战制作方法。

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

跳转到指定楼层
1
发表于 2008-6-26 22:20:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
教学讨论QQ群 53535461  作业检查:亿万星辰 (群主)


上次的本人胡说八道有这么多人参与,很是欣慰。先感谢一下。

从上次的作业情况来看,大家完成的都不错。由于实现方法不同。导致大家的代码有长有短。
不过由于实力不同,每个人都写出精简代码好像不太现实。因此将会留不同等级的作业。
请找适合自己的作业来做。
根据心情对白和hitlerson的建议,教程会3天一更新,而且会教大家简单代码的一般方法。
旁听是不需要交作业的。不过也欢迎。如果手上没有制作软件也没有关系。把你的流程放上来也行。
不会做的把问题点说一下也算。

【教学正文】
好,这次将会正式的讲一下三国志舌战的制作流程。(由于每作各有不同,以我叙述的为基准)

首先要自己描述一下是如何玩的,也就是玩法。是制定规则的基础。
输赢判断:
舌战每个人有100点hp,根据每次舌战的结果,扣输家hp。hp为0为输。

游戏流程:
回合制,每个回合有当前主题,主题有三种:故事,时节,道理。
最开始每个人随即给3张牌。
每个回合双方出牌,牌分3个主题,每个主题都有大中小三种牌(例:故事大,故事中,故事小)

最开始系统随即设定一种主题,即 当前主题
如果双方都出当前主题的牌,根据大小判断。大胜中胜小。相同和局。
如果一方出当前主题的牌,则不论大小,当前主题牌的那方胜利。但是如果非当前主题一方的的大小胜过当前主题牌,则改变当前主题为非当前主题。
(例:当前主题是故事。我出 道理大 敌人出 故事小。根据规则,敌方胜利。但是下次当前主题变为道理)

如果双方都不是当前主题的牌。根据大小比输赢。当前主题更改为胜利的那方的主题。
(例:当前主题是故事。我出 道理大 敌人出 时节中。我胜利,下次的当前主题为道理。)

每个回合结束,系统自动补充随机一张牌。然后回合重新开始,直到一方胜利、

暂时先不考虑特殊牌。

这回这个该如何做呢?

难道每种牌都标记一个数字,总共9张,然后每两张做一个分歧来比较?学过排列组合的知道,情况可是不少。所以我们来接触一种常见的思路来解决。就是利用除法的商余的特点来解决。以后很多小游戏。尤其是一些棋牌类的,很多都是这种应用。

好,我们先标记这9张牌。
   
[TR]
   [TD]故事小 1[/TD][TD]故事中 2[/TD][TD]故事大 3[/TD]
   [/TR]
   [TR]
   [TD]时节小 5[/TD][TD]时节中 6[/TD][TD]时节大 7[/TD]
   [/TR]
   [TR]
   [TD]道理小 9[/TD][TD]道理中 10[/TD][TD]道理大 11[/TD]
   [/TR]

其他显示的部分略过 参见第一次教学。
这里直接开始说 算法实现部分。
这次牌有两个属性,种族(故事时节道理)和大小(大中小)。
用上面表格提供的数字就可以显示了。
判断方法如下:
计算数字除以4的商和余数
1/4 2/4 3/4 商0, 余数为 1,2,3
5/4 6/4 7/4 商1, 余数为 1,2,3
9/4 10/4 11/4 商2, 余数为 1,2,3

如果商为0,肯定是故事,1的话肯定是时节。123正好对应小中大。做起判断就舒服多了。


现在开始实例模拟:
先设定几个变量:
当前主题变量  我方出牌编号 敌方出牌编号 我方大小变量 敌方大小变量  我方主题变量 敌方主题变量
(可以再设置一个回合变量显示回合数,我方再设置一个数组来存储牌,hp变量等等,先不考虑。)
【事件流程】

当前主题变量=随机0~2
初始化牌组

以下反复循环
if 我方或者敌人hp<=0
循环中断,显示谁胜利
end

我方选择一个牌
敌方选择一个牌
我方主题变量=(我方出牌编号/4)的商
敌方主题变量=(敌方出牌编号/4)的商
我方大小变量=(我方出牌编号/4)的余数
敌方大小变量=(敌方出牌编号/4)的余数

if (我方主题变量==当前主题变量)and(敌方主题变量==当前主题变量)
#第一种分歧
#然后就根据大小变量比大小。具体参见第一次教学。
#输的-10hp
end
elsif (我方主题变量!=当前主题变量)and(敌方主题变量!=当前主题变量)
#第三种分歧
#然后就根据大小变量比大小。具体参见第一次教学。
#主题改为胜利的那方,平局什么也不改。
#输的-10hp
else
#有一方是主题的分歧。
if 我方主题变量==当前主题变量
#敌方-10hp
当前主题变量=我方主题变量
else
#我方-10hp
当前主题变量=敌方主题变量
end

双方随即补一张牌
end
循环结束

基本的判断就是这样了。是不是比一个一个判断的方法简洁一些呢?虽然不是最优秀的方法。不过基本的求商和余数的思路要记住。主要是通过这个例子来介绍这个方法的应用。

作业从下面3个里面任选其一

好了。下面开始留基本作业:
将上面的方法用事件来做个小游戏。
要求:
双方开始有100hp (可以用地图显示变量来做,也可以内置显示数字,或者用血条也行。能表示出来就行,或者每个回合之前用文章来显示一下也行)

刚开始将随机补充3张牌(可以建立数组来存储数字,或者用你自己的方法)
玩家选择这三张牌里的开始出牌。(文章就行)
用上面的方法判断输赢



嫌简单的可以做晋级作业:

开始有100hp 血条显示
开始随即补充5张牌
玩家选择这5张牌里的开始出牌。用图片显示,上下键选择 确定键 出牌
判断输赢(用什么方法都行,不过要符合上面的规则)


成品作业:
http://www.pcgames.com.cn/pcgames/gl/s/0603/773264.html
前面的作业都是把真正的流程给简化了。
网址是真正的舌战玩法。
4,8,12等4的倍数是留给特殊牌的。当余数为0的时候有特殊牌的特殊效果。

上面的链接是真正的规则和玩法。请根据这个写游戏吧。
可以发布的作品哦

截止为两个星期之后

上次参加名单:
心情de对白
禾西
hitlerson
dguanlin
越前止まる殇
多於的回憶
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html

Lv2.观梦者

傻♂逼

梦石
0
星屑
369
在线时间
1605 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

2
发表于 2008-6-27 01:47:02 | 只看该作者
不大明白
没玩过三国
不过应该差不多
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

忘记

梦石
0
星屑
55
在线时间
4 小时
注册时间
2007-12-15
帖子
3062
3
发表于 2008-6-27 03:06:45 | 只看该作者
用数组。。。。。试试。。。。。。。
因为你哭泣的时候有我想你你被人嘲笑时有我陪你在你感觉最无助的那一刻有个声音鼓励
<font color=#8600E9>忘记</font>
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
260
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2008-6-27 04:00:04 | 只看该作者
实现方法有很多很多种,大家一起来动脑筋吧!
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
970
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

5
发表于 2008-6-27 06:00:51 | 只看该作者
可以用 range ...
1..3 === a
5..7 === a
玩法好複雜這次露個臉就算了...
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

6
发表于 2008-6-27 17:49:02 | 只看该作者
应该难度不是很高啊。
使用三维数组应该可以实现(其实二维就可以)
牌的主题数目(0。。。3)
牌的分类当x = 0时候为(0...4)
然后1-3的时候分别为(1。。。3)
然后逐一判断就可以啦。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

恋云

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-6-2
帖子
136
7
发表于 2008-6-27 21:12:35 | 只看该作者
不会做啊,有几个问题。。。

手牌允许相同吗?
运气好的话,有可能手里一下有5张当前主题的大牌

电脑的AI如何设置?
如果电脑只是随机出牌的话,玩家只要保证尽量出当前主题牌,没了就出其他主题的大牌,胜的几率就很大了
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
369
在线时间
1605 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

8
发表于 2008-6-27 21:21:41 | 只看该作者
厄...
火大
直接用脚本成吗?(窗口什么的
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37794
在线时间
5400 小时
注册时间
2006-11-10
帖子
6546
9
发表于 2008-6-27 21:41:08 | 只看该作者
= =怎么第二课难度就提升这么多~~~~~

电脑AI方面不会做,只用随机行么。或者,用作弊式...电脑出的牌永远是当前主题-v-

------不负责的分割线-----------

估计是上次那些高手们的搅和让柳之一先生火大了-v-
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

10
发表于 2008-6-27 23:11:53 | 只看该作者
电脑AI可以根据智力和愤怒的方式出题……嗯嗯……
这个肯定要用到怒槽的脚本的说……
p.s.我一开始就准备使用完整版的舌战算法来着。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-26 07:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表