看这篇文章之前请保证你有基本的程序编程概念如(VB,C++等等!)!或比较理性的逻辑分析能力。否则请关闭本网页!
大家一直以来都对升武器抱着这样那样的道理!放怎样首饰~怎样矿~垫刀怎样的!我听的头很疼~!总想找个机会让大家不要有这样想法!因为我一直认为这个是靠运气!实直今日我才记起来我是学软件的!也许一己之言能帮你们解答升武器的秘诀!
下面我就拿VB语言!这个很基础的程序语言来做例子!
先说明下!任何程序语言全部都是按顺序结构,分支结构,循环结构三个结构关系来实现功能的!相信传奇游戏这个游戏软件也是这样!
根据我的理解!升武器这个系统功能一定是用了分支结构,也许套用了循环结构!下面我就用我所能理解编写一段分支结构的代码!我会详细说明的其中因果关系!。
If 条件 Then IF同意思 :如果
语句块 Then同意思 :就
Elseif 条件 Then
Elseif :否则(当上个条件不成立时则执行Elseif后面的条件)
语句块
End If End If同意思 :无论条件是否成立!退出!
条件:执行程序的条件是否成立。
If 放入龙之手镯一对 and 力量戒指一只 and 狂风项链 Then
武器升级成功
Elseif 放入圣战手镯 and 麻痹戒指 and 金项链
Then
(武器升级失败)
Elseif ······(继续设置各种条件):
End If (条件成立语句结束,条件不成立也结束)
大家如果看懂上面的代码的话!相信你们就会发现!在平时放入各种收拾各种兵器实际上只是各种执行武器升级系统的各种条件罢了。但是条件会发生改变的!而且变化很多!不确定的因素也很多。光装备大约就有数十种!其中的各种装备的顺序组合怕是有数万到数十万了!当初编写传奇游戏的程序员要顾及到这些首饰和矿的各种因素而尽量编写出来完美的编码。
怕是很困难~!而且如果第一次编写出来的是
If 放入龙之手镯一对 and 力量戒指一只 and 狂风项链 Then
武器升级成功
End if
那种以后每次放入相同的首饰都会成功。但是事实并不是这样!你这次放了龙之手镯泊金戒指等等升级成功难保下次或下下次升级会不会成功。所以这里就涉及到一个几率问题。
看到这里也许有些朋友不耐烦了!他们会说:还有其他因素啊。比如垫刀,找谁试刀。怎么时候试刀。如果他们这样说,那么我会感到很不幸!几千年的文化让中国人习惯感性看待事物。任何事都可以发挥无限的想象力。但编码就是编码。它是一个理性的存在。不是谁可以随便可以想象就是了的!
下面我们来谈谈刚才所说的概率问题。如果放入同样的首饰难以保证一而再的成功。因为那样大家都买卖同一种首饰好了。(那种首饰价钱肯定非常高),事实上同一种首饰能成功两次我就很祝福你啦!矿也是一样!。
三种语句结构顺序结构是最基本的,功能最少的!刚才又说了分支结构。但也很显然无法满足升级武器这个系统!那种只有用循环结构或条件结构套用循环结构。
设置七个变量。分别是一个头盔,两只手镯,两只戒指,矿,武器。以及一个成功几率。
首饰和矿的代码早已经写进程序。武器也应该有!但在这个升级系统里面起怎么作用我不知道。现在这权且当它也是升级武器中的一个变数吧!
但你们把首饰和矿以及武器放入老头里以后。实际上是给系统几个数值。系统应该早已经写好怎么手镯是多少~怎么头盔是多少。等等等~~!
放入以后!系统接受六个数值。
(这里只做形容!具体多少我并不知道)
圣战,法神,天尊系列每件装备分别为7
祖玛系列分别为5
普通系列分别为3
这个时候系统会计算你给的给出装备的数值是多少!当数值大于30时系统就会执行下面这
句。
两只手镯数值+头盔数值+两只戒指+矿数值+武器数值=总数值
If 总数值>30 Then
执行语句块(给出随机数值)请注意问题在这里。套用For循环语句
For I=1 to 3 设置For循环并循环三次。
J=Int(10*Rnd) 产生0—10的随机数值给J
Q=Q&J 把J的值给Q
Next I 循环结束得到数值Q
整个过程循环三次。得到随机三位数值。
继续套用If分支结构语句 。
If Q>500 Then 用Q的值比对!当大于500的时候条件成立
End if
Elseif 总数值>20 A nd数值<30 Then
执行语句块(给出随机数值。)请注意问题在这里。
For I=1 to 3 设置For循环并循环三次。
J=Int(10*Rnd) 产生0—10的随机数值给J
Q=Q&J 把J的值给Q
Next I 循环结束
得到数值Q
整个过程循环三次。得到随机三位数值。
继续套用If分支结构语句 。
If Q>800 Then 用Q的值比对·当大于800的时候条件成立
武器升级成功
执行武器升级成功。
End if
Elseif 总数值>10 A nd数值<20 Then
执行语句块(给出随机数值。)请注意问题在这里。
For I=1 to 3 设置For循环并循环三次。
J=Int(10*Rnd) 产生0—10的随机数值给J
Q=Q&J 把J的值给Q
Next I 循环结束
得到数值Q
整个过程循环三次。得到随机三位数值。
继续套用If分支结构语句 。
If Q>1000 Then 用Q的值比对当大于等于1000的时候条件成立
End if
问题出现在执行语中!。 。
当数值>30的时候执行:
设置三个变量。并编写For循环。
For I=1 to 3 设置For循环并循环三次。
J=Int(10*Rnd) 产生0—10的随机数值给J
Q=Q&J 把J的值给Q
Next I 循环结束
得到数值Q
整个过程循环三次。得到随机三位数值。
继续套用If分支结构语句 。
If q>800 Then
武器升级成功
Elseif 武器升级失败
End if
当几个变量的数值大于30的时候那么随机给出一个三位数数值。这个三位数数值大于500的时候升级就可以成功。而当几个变量的数值大于20又小于30并产生一个三位数数值但这个时候升级条件变了!这个数值必须大于800才能成功。而小于20大于10产生的三位数的数值必须大于等于1000才能成功!这样把升级成功的条件提高了!
(思前想后!也只有这样的逻辑关系才能正确执行程序!如果一时看不懂请多看两遍!或参考下VB有关的资料书籍!)
(如果写完了文章以后能传上图片也许会更好!每次我排版好累!希望173考虑下!)
谢谢大家的观看!代码也许有些错误!有段时间没碰了!而且这毕竟只是VB的做出来的流层图罢了!我在这里只表达一个意思!升级有几率!并不是大家所想象的那样!有红名与否以及试刀的概念!系统不会计算这些的!如果真的要计算的话!那么肯定会占去很多容量。再希望借此文章希望大家不要再为这些莫须有的事物所争辩。做点更实际的事!
再次谢谢大家长时间的支持!很高兴为大家服务!再接下来的一段时间里~也许要到十·一我才会出新的小说!因为学习紧张!我在班上还只能排倒数十位左右!压力大!
原文链接:https://www.f2er.com/vb/259552.html