赞 | 10 |
VIP | 15 |
好人卡 | 6 |
积分 | 16 |
经验 | 229303 |
最后登录 | 2018-3-22 |
在线时间 | 1609 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1624
- 在线时间
- 1609 小时
- 注册时间
- 2007-8-28
- 帖子
- 3253
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
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
越前止まる殇
多於的回憶 |
|
|
|
|
|
|