游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6250|回复: 19

战略三国的专题(基本包含了战略三国的全部指令)

[复制链接]

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
发表于 2005-8-25 01:19:00 | 显示全部楼层 |阅读模式
专题1 格子
一、格子及其表示法
战略三国中游戏的地图是由各种格子拼凑起来的,每个格子都有一种地形。相关的地图编辑器可以编辑格子的地形。整个地图有100*100个格子,而屏幕上只能显示15*15个格子。每个格子的坐标为相应参考系的(列[从1开始],行[从1开始]),比如格子在屏幕中坐标为(1,2),在地图中坐标为(2,3)。用在地图中横纵坐标与在屏幕中横纵坐标差值并减1,来描述屏幕在地图中的相应位置。
为了方便描述元素在格子中位置的相互关系,以后用一个字符代表一个格子,用0代表没元素占据的格,其它用数字或字母来代表相应的元素。数字或字母既可以表示元素,又可以表示相应的格子位置,比如:
000
0ab
000
表示a部队与b部队间的位置关系。
二、相应元素的格子坐标规定。
1)武将
武将只能占据一格,所以武将的坐标=格子的坐标
2)部队
部队只能占据一格,所以部队的坐标=格子的坐标
3)军团
每个军团的控制范围是边长为11格的正方形,正方形的中心一定有部队,这个部队叫做中军,军团的坐标等于中军的坐标。
4)城池
每个城池是边长为3格的正方形,城池的坐标为正方形中心的坐标。
每个城池都有它的区域,在目前的战略三国中所有城池的区域都是矩形。因此用区域左上角坐标,区域左下角坐标,区域右上角坐标,区域右下角坐标就可以描述,区域在地图中的位置。城池区域一定要包含城池本身。
三、元素的移动
任何元素移动的本质都是元素坐标的改变。
1)武将
在战略三国中离开每个格子都有一定的秒数,武将离开各个地形的秒数如下:
        平地        丘陵        高山        河流        城池
t        1s        3s        5s        2s        1s       
2)部队
部队离开各个地形的秒数如下:
t        平地        丘陵        高山        河流        城池
步兵        3s        4s        5s        3s        3s       
骑兵        1s        7s        15s        3s        1s
输运队  3s        5s        15s        3s        3s               
3)军团
军团的移动方向是以中军的移动方向为军团中所有部队的移动方向而带动整个军团的移动,军团移动后军团内各个部队的相对位置不变。
设军团目前的坐标为(x,y),将要移动到的坐标为(wx,wy),军团中任意部队的坐标为(xn,yn),则任意部队要移动到的位置为(xn+(wx-x),yn+(wy-y))
4)元素在城池中的位置
每个元素通过遍历所有城池的区域坐标,就可以根据自己的坐标判定自己是在哪个城池里了。

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
 楼主| 发表于 2005-8-25 01:20:00 | 显示全部楼层

Re:战略三国的专题(基本包含了战略三国的全部指令)

专题二 编号与索引
一、各个元素唯一的标识符--编号
在战略三国中,每个元素都有相应的方法可以建立,索引就是按照元素的建立次序而排列的,当元素被删除时,相应元素的索引就会发生变动。
编号是在元素建立是所指定的,直到元素被删除之前,编号都是这个元素的唯一标识符。每个元素的编号都是非0的。
二、元素编号的引用
在城池中有个太守该怎么表示?就是用相应的武将编号
在势力中有个长史该怎么表示?就是用相应的武将编号
可见,很多时侯都需要引用相应元素的编号。在引用时,如果编号为非0则表示引用的是个存在的元素,如果编号为0表示引用的是个不存在的元素。比如:城池太守为0则表示城池没有太守。
三、元素的增加、删除、引用
1.增加
格式:add 编号
2.查找编号所对应的索引
格式:find 编号
原理:遍历各个元素,如果找到与编号相符的索引则返回索引,否则返回0
3.删除
1)按编号
格式:del 编号
2)按索引
格式:delindex 索引
4.清空所有元素
格式:clear
5.引用
1)按编号
格式:num 编号
2)按索引
格式:index 索引

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
 楼主| 发表于 2005-8-25 01:21:00 | 显示全部楼层

Re:战略三国的专题(基本包含了战略三国的全部指令)

专题三 元素之间的关系
一、元素的种类:武将、城池、势力、部队、军团、运输队
二、属性的类别
1.按性质分
1)底层属性:是描述元素的特征属性,可以Let/Get,需定义变量。
2)导出属性:是通过元素的底层属性导出的,只能Gett,不需定义变量。
3)半底层属性:在某些情况下,是底层属性;在另外情况下,是导出属性,需定义变量。如果由导出属性变为底层属性,则此时将导出属性赋予底层属性。
2.按内容分
1)基本属性:位置类、标识符类的属性,可以是导出属性、底层属性、半底层属性。
2)特有属性:描述元素的特征,可以是导出属性、底层属性、半底层属性。
3)领导属性:元素的领导,可以是导出属性、底层属性、半底层属性。
4)层次属性:与其它元素关系的属性,可以是导出属性、底层属性、半底层属性。
5)方法属性:为了完成某个方法的任务而引入的属性,可以是导出属性、底层属性、半底层属性。
三、各元素的基本属性
1.武将
1)坐标:表示武将的位置,是半底层属性。如果武将不属于部队是底层属性,如果武将属于部队、城池是导出属性。等于部队、城池的坐标。
2)编号,是底层属性。
2.城池
1)坐标:城池的中心坐标,是底层属性。
2)区域坐标:区域左上、左下、右上、右下的坐标,是底层属性。
3)编号,是底层属性。
3.势力
1)编号,是底层属性。
4.部队
1)坐标:表示部队的位置,是底层属性。
2)编号,是底层属性。
5.运输队
1)坐标:表示运输队的位置,是底层属性。
2)编号,是底层属性。
6.军团
1)坐标:中军部队的坐标,是导出属性
2)编号,是底层属性。
四、各元素的层次属性
1.武将
1)区域城池:遍历所有城池,通过坐标得到武将所在的区域城池,是导出属性。
2)城池:武将所在的城池,是底层属性。
3)部队:武将所在的部队,是底层属性。
4)军团:通过部队得到军团,是导出属性。
5)势力:武将所在的势力,是底层属性。
2.城池
1)武将:遍历所有武将,通过武将的城池而得到,是导出属性。
2)势力:城池所在的势力,是底层属性。
3)部队:遍历所有部队,通过部队的城池而得到,是导出属性。
3.部队
1)区域城池:遍历所有城池,通过坐标得到部队所在的区域城池,是导出属性。
2)武将:遍历所有武将,通过武将的部队而得到,是导出属性。
3)军团:遍历所有军团,如果在通过军团的范围内,且为同一势力,则得到相应军团编号,是导出属性。
4)势力:部队所在的势力,是底层属性。
5)城池:如果部队所在的坐标处于城池九格内则标记相应的编号,否则为0,是导出属性。
4.运输队
1)区域城池:遍历所有城池,通过坐标得到运输队所在的区域城池,是导出属性。
2)势力:运输队所在的势力,是底层属性。
5.军团
1)部队:遍历所有部队,通过部队的军团而得到,是导出属性。
2)势力:军团所在的势力,是底层属性。
3)武将:通过遍历军团所有部队,得到军团的所有武将,是导出属性。
6.势力
1)武将:遍历所有武将,通过武将的势力而得到,是导出属性。
2)城池:遍历所有城池,通过城池的势力而得到,是导出属性。
3)部队:遍历所有部队,通过部队的势力而得到,是导出属性。
4)运输队:遍历所有运输队,通过运输队的势力而得到,是导出属性。
5)军团:遍历所有军团,通过军团的势力而得到,是导出属性。
五、领导属性
1.城池
1)太守:太守是城池的领导。对城池的事务处理具有影响。太守一定领导所在的城池。是底层属性。如果该武将不属于该城池的武将,则改为0
2.势力
1)长史:长史是势力的领导。对势力的事务处理具有影响。长史一定领导所在的势力。是底层属性。如果该武将不属于该势力或不属于首府的武将,则改为0
2)军师:军师是势力的领导。对情报具有影响。军师一定领导所在的势力。是底层属性。如果该武将不属于该势力或不属于首府的武将,则改为0
3)君主:君主是势力的领导。如果不担任相应的官职,对事务处理不具有影响。君主一定领导所在的势力。君主仅仅是武将所属势力的一个标志。是底层属性。该武将一定属于该势力的武将。
4)首府:首府是势力的领导,是一座城池。长史、军师一定在首府。首府一定领导所在的势力。君主不一定在首府。对势力的事务处理具有影响。是底层属性。该城池一定属于该势力的城池。
3.部队
1)主将:主将是部队的领导,对部队的事务处理具有影响。主将一定领导所在的部队。是底层属性。如果该武将不属于该部队的武将,则改为0
4.军团
1)中军:中军是军团的领导,是一支部队。对中军的事务处理具有影响。中军部队一定有主将。中军部队一定领导所在的军团。是底层属性。该部队一定属于该军团的部队。
2)主帅:中军的主将就是军团的主帅。主帅一定领导所在的军团。是导出属性。
六、领导的任命
任意的官职任命,都需要先撤去原来的官职,再增加新的官职。武将的官职是通过遍历各个元素的领导属性而得到的。如果既是主将又是主帅则为主帅。是导出属性。
1.城池
1)太守:列出在该城的所有武将进行选择。
2.势力
1)长史:列出首府的所有武将进行选择。
2)军师:列出首府的所有武将进行选择。
3.部队
1)主将:列出部队的所有武将进行选择。
4.军团
1)主帅:列出军团的所有武将进行选择。任命后立刻调动到军团中军,成为军团中军的主将。

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
 楼主| 发表于 2005-8-25 01:21:00 | 显示全部楼层

Re:战略三国的专题(基本包含了战略三国的全部指令)

专题四 元素的创建、删除
一、元素的创建
1.武将的创建
1)初始化特有属性:姓名、武力、智力、政治、统率、忠诚
2)初始化层次属性:势力、部队、城池
3)初始化编号
2.城池的创建
1)初始化特有属性:金钱、粮食、马、兵力、城防、人口、生产等级、粮食上缴百分比、金钱上缴百分比
2)初始化层次属性:势力
3)初始化基本属性:坐标、区域坐标、编号
4)初始化控制权:如果势力与操作势力相同,则为T,否则为F。
5)将相应格子的地形改为城池
3.势力的创建
1)初始化领导属性:首府、君主
2)初始化基本属性:编号
3)初始化控制权:如果编号与操作势力相同,则为T,否则为F。
4.部队的创建(主将是从已选的武将中选择)
1)初始化特有属性:兵种、士气(100)、训练(0)
2)初始化层次属性:势力
3)武将、兵力、粮食的调运,如果是骑兵还需要马匹减少与兵力相等的数量(兵力一定不大于马匹)
4)初始化领导属性:主将
5)初始化坐标
6)初始化编号:最大索引的编号+1
7)初始化控制权:如果势力与操作势力相同,则为T,否则为F。
8)将相应的部队数组的值赋予部队,点刷新
5.运输队的创建
1)民夫(减少相应的户籍人口)、粮食的调运
2)初始化层次属性:势力
3)初始化坐标
4)初始化编号:最大索引的编号+1
5)初始化控制权:如果势力与操作势力相同,则为T,否则为F。
6)将相应的部队数组的值赋予运输队,点刷新
6.军团的创建(中军必须有主将才可执行)
1)初始化领导属性:中军
2)初始化层次属性:势力
3)初始化编号:最大索引的编号+1
4)中军点刷新
二、元素的删除
1.武将的删除
触发条件:消灭部队,俘虏武将,并斩首
步骤:删除武将
2.城池不可能删除
3.势力的删除
触发条件:首府被攻占
步骤:游戏结束
4.部队的删除
触发条件:部队兵力为0、解散
步骤:1.变为城池的募兵人口;2.武将状态如果是正常,则返回所在城池,否则生成执行俘虏画面的事件;3.设定武将的部队=0;4.如果是中军部队则引发军团的删除;5.数组中的相应变动,点刷;6.删除部队
5.运输队的删除
触发条件:解散
步骤:1.变为城池的募兵人口;2.数组中的相应变动,点刷;3.删除运输队
6.军团的删除
触发条件:解散,中军兵力为0
步骤:1.设置各部队的军团=0;2.删除军团

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
 楼主| 发表于 2005-8-25 01:22:00 | 显示全部楼层

Re:战略三国的专题(基本包含了战略三国的全部指令)

专题五 征兵和募兵
一、城池人口的导出属性
1)太守的政治和智力。导出,当城池太守存在时,为太守的政治和智力。否则分别在[50,70]和[20,50]随机。
2)城池治理值。导出,设headzz为太守政治,headzl为太守智力,cmana为城池治理值,crk为城池人口,对应关系为:
当headzz < 70时
jrk=40000
Y1=100*(1+(headzz-69)*0.02+(jrk-crk)/1000*0.01)
cmana=Y1*(1+(headzl-60)*0.005)
当headzz >= 70时
jrk=50000+(headzz-70)*5000
Y1=100*(1+(jrk-crk)/2000*0.02)
cmana=Y1*(1+(headzl-60)*0.005)
3)户籍比例。导出,设户籍比例为chjper,城池治理值为cmana,势力治理值为fmana
当cmana < 100时,chjper=70*(cmana/100*(1+(fmana-100)/2/100)/100)
当cmana >= 100时,chjper=80*(cmana/100*(1+(fmana-100)/2/100)/100)
4)城池人口的变化
5)户籍人口。导出。户籍人口=城池人口*户籍比例
6)非户籍人口。导出。非户籍人口=城池人口*(1-户籍比例)
城池人口在每年1月1日变化,人口数=上月人口*1.01,征兵人口增长=(上月人口-征兵人口-募兵人口)*户籍比例*0.6,募兵人口增长=(上月人口-征兵人口-募兵人口)*0.001*(1-户籍比例)*0.3
7)征兵人口。底层,创建城池时,征兵人口=户籍人口*0.6,当征兵人口减少时,总人口减少了征兵人口。
8)募兵人口。底层,创建城池时,募兵人口=非户籍人口*0.3,当募兵人口减少时,总人口减少了募兵人口。
二、城池人口的操作方法
1)人口增长
征兵人口+=(人口-征兵人口-募兵人口)*户籍比例*0.6
募兵人口+=(人口-征兵人口-募兵人口)*0.001*(1-户籍比例)*0.3
人口+=人口*1.01
2)征兵人口的减少(减少数)
征兵人口-=减少数
人口-=减少数
3)募兵人口的减少(减少数)
募兵人口-=减少数
人口-=减少数
三、城池的征兵和募兵
1)征兵
maxzb(最大征兵)=征兵人口*0.4
2)募兵
maxmb(最大募兵)=min(募兵人口*0.1*cmana/100,城池金钱*10)
四、势力治理值
zszl和zszz分别代表长史的智力和政治,fcouc势力城池数量
当zszz < 80时
jfcouc=4
Y1=100*(1+(zszz-79)*0.01+(jfcouc-fcouc)*0.1)
Y=Y1*(1+(zszl-70)*0.01)
当zszz >= 80时
jfcouc=5+(zszz-80)
Y1=100*(1+(jfcouc-fcouc)*0.05)
Y=Y1*(1+(zszl-70)*0.01)

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
 楼主| 发表于 2005-8-25 01:22:00 | 显示全部楼层

Re:战略三国的专题(基本包含了战略三国的全部指令)

专题六 赋税、买马和调运
一、赋税
1)生产能力值(produce),导出。
produce=rnd[(duce-1)*20+1,duce*20]
2)收金钱,在每月1日进行,遍历势力各个城池(包括首府)进行赋税,而后将赋税总和统计在首府增加。
城池金钱=税赋比例*城池户籍人口*produce/1000
3)收粮食,在每年7月1日进行,遍历势力各个城池(包括首府)进行赋税,而后将赋税总和统计在首府增加。
城池粮食=税赋比例*城池户籍人口*produce/1000
二、买马
在每年的1月1日和7月1日,定下买马的月份、城池、每匹马的价格(为[500,2000]的随机)。当执行买马功能时,如果满足月份和城池的势力为控制方就可以买马。
maxbuyhorse(最大买马)=金钱\每匹马的价格
三、调运
在本版的战略三国中,简化起见,所有的调运都是瞬时的。
调运分为离开原元素、靠近新元素、进入新元素的三个过程。
调运需要的指令参数:离开的元素(源元素)、要进入的元素(目标元素)
调运分为调进和调出。调进就是先选择目标元素,再选择源元素;调出就是先选择源元素,再选择目标元素。调进和调出的本质是一样的。
1.武将(相关元素:城池、部队(又称为大元素))
1)离开源元素
城池:武将的城池=0
部队:武将的部队=0
2)靠近目标元素
城池:武将坐标=目标城池的坐标
部队:武将坐标=目标部队的坐标
3)进入目标元素
城池:武将的城池=目标城池
部队:武将的部队=目标部队
2.金钱、粮食、马匹(称为小元素)的调运--需要指定调运量
1)离开源元素
源元素的相应小元素的量减少
2)靠近目标元素
暂不考虑
3)进入目标元素
目标元素的相应小元素的量增加
3.兵力的调运
1)离开源元素
源元素的相应小元素的量减少
2)靠近目标元素
暂不考虑
3)进入目标元素
目标元素的相应小元素的量增加
4.调运的源元素和目标元素的参数表示
大元素表示法:元素种类所对应的字母+相应的编号
参数为0,则表示无元素
小元素表示法:元素种类所对应的字母+相应的数量
元素种类所对应的字母表:
b:部队(用作目标元素)
c:城池(用作目标元素)
l:兵力(用作源元素)
m:马匹(用作源元素)
q:金钱(用作源元素)
s:粮食(用作源元素)
y:运输队(用作目标元素)
j:武将(用作源元素)
四、分兵
分兵就是组建部队和调出兵力两者功能的组合
要分兵到的那个格子的位置一定要紧靠源部队的位置,且那格没有敌方占据。
1)格子存在部队
则执行兵的调运,但是在执行调运之前必须保证源部队不为0且目标部队调运之后的兵力不大于5000。
分兵还可以调运:粮食、武将
2)格子不存在部队
在相应的格子组建部队,然后再按格子存在部队的方式处理。
五、装运和补给
装运和补给的本质也是调运。装运就是先选择目标元素,再选择源元素;补给就是先选择源元素,再选择目标元素。
1.装运
1)部队(需要选择从城池还是从运输队)
从城池:以源元素为城池,目标元素为部队的调运,必须在九格内
从运输队:以源元素为运输队,目标元素为部队的调运,必须在紧靠运输队
2)运输队(一定是从城池装运)
从城池:以源元素为城池,目标元素为运输队的调运,必须在九格内
从另一运输队:以源元素为另一运输队,目标元素为运输队的调运,必须在紧靠运输队
2.补给
1)运输队的补给
向部队:以源元素为运输队,目标元素为部队的调运,必须在紧靠运输队
向另一运输队:以源元素为运输队,目标元素为另一运输队的调运,必须在紧靠运输队
向城池:以源元素为运输队,目标元素为城池的调运,必须在九格内
六、舍弃
舍弃是目标元素为0的调运。所以舍弃的本质也是调运。舍弃的参数主要是源元素,因为目标元素是个常量0。
1)部队
部队可以舍弃金钱、马匹、粮食,执行时只需将舍弃的源元素为相应的元素即可。

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
 楼主| 发表于 2005-8-25 01:23:00 | 显示全部楼层

Re:战略三国的专题(基本包含了战略三国的全部指令)

专题七 训练、修建和战斗
一、训练--需要10回合
1)训练增长效果计算,设主将的统率为headts,设xl为训练,训练最大值xlmax=min(统率+20,100),需保证xl<xlamx。
当headts为[0,59]时,N=headts*20
当headts为[60,79]时,N=1000+(headts-60)*100
当headts为[80,89]时,N=3000+(headts-80)*500
当headts为[90,100]时,N=10000+(headts-90)*1000
效果=min((N/士兵)*(headts/10),20)
xl=min(xlmax,xl+效果)
2)训练被中断
复制原来的部队参数,新建一个尾处理事件,次数为1,周期为0。并且复制剩余回合,10回合后的效果。
训练最大值xlmax=min(统率+20,100)
效果=10回合后的效果*((10-剩余回合)/10)
xl=min(xlmax,xl+效果)
二、修建--每回合修建一次
条件:城防<100和金钱>=城防*20
城防增加=[城池治理值/60,城池治理值/40]
城防=min(城防增加+城防,100)
三、战斗
1)种类(如果既有交战、又有城战,则为城战)
城战:有敌部队位于[x-2,x+2]且[y-2,y+2]区域中,则为城战。
交战:有敌部队位于城池区域。
2)混战部队,导出属性。
遍历所有事件,找出源部队是该部队的事件集合,而后取集合中的目标部队即可。
3)混战部队数量,导出属性。就是混战部队的个数。
4)主攻部队的寻找,主攻部队是半底层的,如果主攻部队为0,则为导出的,如果为非0,则为底层的。
检查主攻部队是否在混战部队的范围内,如果不是则为0,变为导出属性。
在主攻部队为0前提下,当部队数量为0,则为0;当部队数量大于0,如果存在攻击部队且包含于混战部队,则为主攻部队,如果不存在攻击部队,则随机中从混战部队中选择。
5)使用兵力(攻击部队号)
如果混战部队数量为1,使用兵力为部队的兵力;
如果混战部队数量大于1,则当攻击部队号为主攻部队时,使用兵力为70%,当攻击部队号不为主攻部队时,使用兵力为30%(1/(混战部队数量-1))
6)将领统兵(编号)
若将统率(jts)为:
[0,30],主将统兵(jtb)=1800 + jts * 25
[30,60],jtb=2550 + ( jts - 30) * 30
[61,80],jtb=3450 + ( jts - 60) * 35
[81,90],jtb=4150 + ( jts - 80) * 40
[91,100],jtb=4550 + ( jts - 90) * 45
7)战斗力(使用兵力(usebl))
如果兵种为步兵,则满训战斗力(mxzdl)为60;为骑兵,mxzdl=100。
jtb=将领统兵(主将)
如果训练(xl)>士气(sq),则jtb = jtb * (1 + xl - headts) / 200)
Z1 = Sin(jtb / 5000 * 90 * 3.1415 / 180)
Z2 = 如果usebl > jtb, 则为Sin(90 * (usebl - jtb) / 5000 * 3.1415 / 180);反之, 则为0
jyx(将领影响) = (Z1 - Z2) * (usebl / 5000),jyx在[0.01,1]范围内
战斗力(zdl)=(10+(mxzdl-10)*(xl/10))*(sq/100)*jyx,战斗力如果是步兵为min(原战斗力,60),如果是骑兵为min(原战斗力,100)
8)兵力比常数n(源部队兵力,目标部队兵力),n在[0,0.99]范围内
    如果 源部队兵力 >= 目标部队兵力 则
        n = 源部队兵力 / 目标部队兵力 / 10
    否则
        n = 目标部队兵力 / 源部队兵力 / 10
9)伤亡率hd(n,源部队zdl(wzdl),目标部队战斗力(dzdl)),在[0,1]范围内
hd = ((|wzdl - dzdl| / 5 + 5) * wzdl / 50 * (1 + n)) / 100
10)伤亡率中的死亡率death(n,wzdl,dzdl),在[0,1]范围内
death = (20 * (1 - |wzdl - dzdl| / 100) *wzdl / 50 * (1 + n)) / 100
11)当源部队的地形为非城,当目标部队的地形为城及其反之,则发生城战:
如果目标部队的城池九格的所有部队势力相同且等于城池的势力,作用城防(usecf)=cf
如果城池九格的不满足所有部队势力相同,usecf=0.8cf
如果源部队的地形为非城,当目标部队的地形为城,则
cf-=目标部队的伤亡率*2*1/9
目标部队的伤亡率=目标部队的伤亡率(1-cf/2/100)
如果源部队的地形为城,当目标部队的地形为非城,则
目标部队的伤亡率=目标部队的伤亡率(1+f/2/100)
12)部队兵力(bl)=bl*(1-目标部队的伤亡率),部队伤兵(hurtb)+=bl*目标部队的伤亡率*(1-目标部队的死亡率),如果bl<=50,则hurtb+=bl,bl=0
四、一些情况的处理
1)城池是否被占据的检验
在执行点结束时,遍历所有城池,如果存在城池的所有部队势力相同且与城池的势力不同,则该城池被城池的部队势力方占领。
2)城池的占据
所有武将的城池为0,城池的所有武将被俘虏,生成武将俘虏的处理事件,城池的势力=城池的所有部队势力,城池在小地图上变色。
如果该城池为原势力的首府,则宣告该势力灭亡,游戏结束
3)部队数为0的处理
所有武将的部队为0
武将俘虏
删除部队
五、武将俘虏的处理
武将俘虏是一个一个武将进行处理,每个武将都有[斩首],[招降],[释放],其中[招降]只能使用一次.君主不可以招降,如果君主斩首,则宣告该势力灭亡。
斩首:
删除武将
招降:
如果rnd[1,100]<=100-武将对自己的势力的忠诚,则该武将投降,那么该武将的势力变为控制方的势力,并随机出现在控制方的一个城池中(简化起见)。
释放:
该武将随机出现在己方势力的一个城池中

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
 楼主| 发表于 2005-8-25 01:23:00 | 显示全部楼层

Re:战略三国的专题(基本包含了战略三国的全部指令)

专题八 行军、待命和攻击
一、行军
1)部队行军
建立一个数组wx,wy,记录这个部队将来要走到的格。
newx=wx(1)
newy=wy(1)
v=setvirb newx,newy,编号--设置相应格的部队编号,如果该部队是本回合走动,则v的第一位一定有"v",如果成功,则v=""
如果v=""
标记为走成功
否则
如果第一位不为"v"时,标记为走失败;否则得到"v"后面的编号,则v1=rnd[0,1],如果为1,则(wx,wy)的部队返回原地,部队进入(wx,wy)
2)运输队行军
newx=wx(1)
newy=wy(1)
v=setvirb newx,newy,"y" + 编号--标记是运输队占据该格
如果v=""
标记为走成功
否则
如果第一位不为"v"时,标记为走失败;否则得到"v"后面的编号,则v1=rnd[0,1],如果为1,则(wx,wy)的部队返回原地,部队进入(wx,wy)
3)军团行军
遍历军团中的每个部队,如果部队没有行军指令,则生成该部队的行军指令
4)行军与战斗的关系
如果部队的(wx,wy)与敌部队的(x,y)相等,则生成战斗指令,周期为0,次数为1。
二、待命
待命的本质就是停止行军。设置相应的部队或运输队行军事件的次数为-2。
三、攻击
攻击也是一种行军,是一种有目标的行军。在该部队没有相应的行军事件的前提下:
addx=sgn(目标.x-源.x)---sgn是一个取符函数
addy=sgn(目标.y-源.y)
如果|addx|+|addy|=2,则随机设置addx=0或addy=0
源.wx.add x+addx
源.wy.add y+addy
增加相应的行军事件,攻击是预处理事件。是生成行军事件的事件。

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-8-25 09:26:00 | 显示全部楼层

Re:战略三国的专题(基本包含了战略三国的全部指令)

不错

0

主题

61

帖子

63

积分

注册会员

Rank: 2

积分
63
发表于 2005-8-25 13:59:00 | 显示全部楼层

Re:战略三国的专题(基本包含了战略三国的全部指令)

Up
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-28 01:27

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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