8品小说

手机浏览器扫描二维码访问

第65章 自动寻路(第1页)

段雷对谢维康细说说:“我不是在开rpg游戏嘛,所有功能和剧情都已经搞定了,现在正做优化。之前一直用键盘操作,人物会跟着按键方向沿道路走,后来我想加个鼠标操作的功能,只要点击地图上任意一点,人物就能自己走过去。”

谢维康立刻赞同道:“这主意挺好啊,有什么问题吗?”

“问题就在这儿,”段雷接着说道,“点击之后,怎么检测从当前位置到鼠标点的路径呢?中间可能有障碍物,人物移动时得主动避开才行。”

谢维康摩挲着下巴沉思起来:“你说的确实是个关键,得想个自动寻路的办法,这事儿有点意思,你让我琢磨琢磨。”

说着,他让段雷打开游戏,按prt_s键截了张图,放进画图板里仔细观察,还时不时拿纸笔写写画画,专注地梳理思路。

段雷见他想得认真,也不打扰,就静静坐在身后看着。

大约过了十多分钟,谢维康突然一拍桌子,激动地喊道:“有啦!”

这一嗓子把段雷吓了个激灵,随即也跟着兴奋起来问道:“想出办法了?”

“嗯,有了。”谢维康点点头,指着屏幕讲解道,“先,你创建一个和地图等大的二维数组当标记,先把数组全清零,标成,终点标成-。然后遍历整个数组,每个点都检查周围四个点的状态,如果没标记且是道路,就赋上比当前点大的值,比如检测到,周围未标记的通路就标成,下一轮遍历再把检测到的周围标成,依此类推。每次遍历都记录能标记的点数,要是某次遍历一个点都没找到,说明到终点没通路,如果当前点周围找到了-,就说明打通了通道。这时从终点按标记数值降序搜下去,周围有相同数字就随机选一个,这串点就是路径,把顺序倒过来就行。”

段雷听完,思索片刻后瞬间就明悟,马上在谢维康的电脑上按谢维康提供的算法写成代码。

写的时候他还稍作修改,改成从终点往遍历,这样最终的路径数据就不用倒转了。

大概花了一个小时后,代码写完,按下f运行。

两人满怀期待地盯着屏幕,当段雷点击屏幕上的点,游戏主角果然自己动了起来,还自动绕开所有障碍物,精准抵达指定位置。

段雷高兴得又要凑上去亲他,吓得谢维康连忙怪叫道:“去去去,滚远点!别老是搂搂抱抱的,劳资对男人不感兴趣,不搞基!”

段雷目不转睛地看着他,认真说道:“哥,论写代码你不如我,但有一点是我拍马也赶不上的。”

谢维康疑惑道:“啥?我的c语言能有现在的水平,还是你领的路,你怎么反倒夸起我来了?”

“是你的逻辑思维能力,”段雷语气诚恳地说道,“这可能是天生的,你脑子也太好使了,再难的问题,你都能梳理出完整的逻辑方案,我是打心底佩服你。”

被段雷这么一夸,谢维康反倒有些不好意思,讪笑道:“哪里哪里,我也就是瞎琢磨。”

“你瞎琢磨都比我强,”段雷撇撇嘴,顺势往谢维康床上一躺,“你要是认真起来,还有我什么事?比如我最近重温位运算那一章,感觉太难了,位移、位或、位与、位段,搞得我脑瓜子嗡嗡的。”

谢维康又开始吹牛:“位运算有啥难的?我觉得挺简单啊。”

段雷立马翻身坐起,满眼希冀地说道:“哥,老实说,你是不是藏了什么秘诀?快交出来!”

谢维康轻轻拍了拍他的脑袋说道:“想学位运算,写个俄罗斯方块不就行了?”

“切,我还以为是什么好办法,”段雷不屑道,“你之前写的俄罗斯方块我看过,全是数组,没什么新鲜的。”

谢维康当即打开一段代码,一边指着屏幕一边介绍道:“但我后来重写过,全程用的位运算,你看。”

段雷凑近屏幕一看,惊呼道:“哇哦,还真是!这么多位运算操作!”说着兴奋地推了推谢维康的肩膀,“快说说,什么原理?”

谢维康不慌不忙地解释道:“俄罗斯方块的容器是宽十格、高二十格,里面有七种形状的方块往下掉,堆积到底部后,满一层就消除,上面的整行下落,对吧?”

段雷点点头。

“而且方块在屏幕上只有显示和不显示两种状态,对应和o,表示显示,o表示不显示。”谢维康继续说道,“一行有十列,char型数据显然不够用,那就用short型,十六位还富余六位。我用表示一行容器数据,两边赋,中间十位是游戏可视空间。”

段雷挠挠头,不解地问道:“为啥非得用?用不行吗?”

谢维康又拍了拍他的头说道:“也行啊,我有强迫症,不弄对称我睡不着觉,这总行了吧?”

“切,我还以为有什么特殊要求。”段雷轻哼一声。

谢维康作势还要拍他的头,段雷赶紧歪头躲开责怪道:“哥,别老打我头!本来就没你聪明,再打就更笨了。”

本小章还未完,请点击下一页继续阅读后面精彩内容!

谢维康没理他,接着讲解道:“现在把左移到对应位,和这一行数据做位与运算,得到非零值就显示这个点,否则就不处理,这样就能把游戏绘制到屏幕上。方块往左移动时,把方块数据左移一位后,和对应容器行做位与,值为零说明没有重叠,可以移动,非零就是有重叠,不能动。而且容器两边事先设了当墙壁,位与到这里时肯定是非零,连判断是否到边缘的步骤都省了。往右、往下移动的原理一样。方块不能往下移时,做位或运算就能堆进容器。判断一行是否填满,直接检查容器行数据是不是oxffff就行。你看,游戏逻辑一下就简单了,而且写完这个游戏,你肯定能深刻理解位运算,位或、位与、位移搞懂了,位异或之类的还不是照葫芦画瓢?最重要的是,这样写出来的代码执行效率特别高。”

段雷看着他,由衷赞道:“哥,我说你脑子比我好使吧,你还不信!这么损的学习方法都能想出来,不过是真好用,用写游戏来学知识,这主意绝了。”

谢维康谦虚道:“我也是被逼出来的,想快点学好编程,所以现在全身心都扑在上面。你也得加油,游戏什么时候都能玩,现在学习是第一位的。等咱们总结好经验,以后一起创业怎么样?”

段雷认真点头:“好!到时候咱哥俩一起干。对了,你那个麻将游戏弄好了吗?”

谢维康讪笑:“还没呢,国标麻将的ai不好写,之前的方案有不少缺点,正打算重写。我想到个好办法,按麻将规则扫描每一张牌,根据能组合的牌型估值,值越大越该保留,每次打最小的那张。估值方案我已经想好了,正在修改,结果被你打断了。”

“没事,就你这脑子,写出来的ai肯定惊艳。”段雷爽快地说。

谢维康鄙夷地看他:“得了吧,我不喜欢别人拍马屁。”

“我没拍!我说的是实话。”段雷委屈道。

“我估计还有一个月能完工,”谢维康提议,“到时候我把我的游戏给你玩,你也把你的给我,咱们互相提意见、找bug,让游戏质量再上一个台阶。”

段雷竖起大拇指:“还是你脑子好使,这主意太棒了!到时候咱们交叉测试,好好打磨打磨。”

两人相视一笑,伸出手紧紧握在一起。

不知不觉天已经黑了,楼下传来陈银珍的喊声:“臭小子,吃饭了!成天对着你那破电脑瞎按,饭也不煮,有本事你按一辈子!”

段雷听到这话,无奈地摇摇头,对谢维康轻声说:“我回家的时候,我妈也总这么说我。”

谢维康拍了拍他的肩膀:“没办法,他们对编程这种新兴行业接受不了,很正常。”

请关闭浏览器阅读模式后查看本章节,否则将出现无法翻页或章节内容丢失等现象。

热门小说推荐
仲冬心跳

仲冬心跳

在朱伊伊的母亲大人眼里,她人生有三大错事。一是没能考上名校。二是交到一个极品男朋友但主动分手。三是在谋划许久的相亲局上,收到来自前男友的孕检报告。母亲咬牙切齿怎么个事儿?!朱伊伊弱小无助且惊恐母鸡啊2贺绅,人如其名,身高腿长,家境殷实,名校学历,从小到大家长口中的别人家孩子,女生眼里的最佳绅士。顺风顺水的人生,他只回了三次头。一是回头答应了和普通平凡的朱伊伊谈恋爱。二是回头默认了朱伊伊的赌气分手。三是回头给正在相亲的前女友,寄去了她的孕检报告。3一个是集团总部继承人,一个是毫不起眼的小职员,全公司没谁以为贺绅会和朱伊伊有交集。直到那天。清晨,公司的员工电梯人挤人,朱伊伊护着微微隆起的小腹退到角落,不料脚滑险些跌倒一双手牢牢扶住她的腰。众人倒吸一口凉气,上班怨气最重的时候撞到顶头Boss,霎时,噤若寒蝉。朱伊伊也面露尴尬,要退开。男人西装革履,眉骨清冷,伸手一拽,熟稔又自然地将朱伊伊重新揽入怀里,平常淡漠的嗓音,此时添了几分宠溺抱歉,我太太身体不舒服,我带她乘高层专梯。所有人?贺绅推了推高挺鼻梁上的金丝眼镜改日赠我跟伊伊的结婚喜糖表示感谢。所有人!朱伊伊心跳如擂鼓。不是,说好的和平分手分道扬镳呢。孩他爸,你冷静啊...

农门娇妻:带着萌娃发家致富

农门娇妻:带着萌娃发家致富

温凰眼看名利双收,睡醒睁眼变成了懦弱的古代农户之女!一家子都被极品亲戚各种折辱,两个萌崽妹妹更是饿的如同根棍。21世纪顶级医师,她绝不屈服认输!此仇不报非君子。渣渣们,等着吧!麻利分家,一路手撕极品,带着爹娘养软萌妹妹。一手好医术再有金手指加成,竟然轻松暴富!可捡来快死的男人怎麽是当朝将军,不做官非得混在乡野,还要以身相许於她以此报恩。大佬,大可而不必啊!...

我才是真正的打工皇帝

我才是真正的打工皇帝

大家好,我叫朝日奈元歌,是朝日奈家新收养的女儿,今日搬到有着十几位哥哥还有一位姐姐的公寓里住。我非常有着自己身为养女的自觉,每天除了上学就是去打兼职赚钱,秉承着绝对不多花家里的一分钱的原则,我去做了很多的兼职,只是为什么我兼职的场所里面总会有这两个家伙的存在啊!!这位金发麦肤的美人,和他一起兼职的日子总是有莫名其妙的凶杀案件或是枪击炸弹案,听说他还兼职一份侦探的工作,难道现在的侦探工作效率都这么高了吗?这位大长腿的帅哥,和他一起兼职的日子更为离谱,水族馆的玻璃破裂,咖啡店的客人投诉所有的食物都变得齁甜,鬼屋的客人声称自己真的见到了鬼,总之大千世界无奇不有,什么都让倒霉的她撞上了。他们两是怎么活到现在的?话说你们两个这么诡异真的不会让这里所有的商铺都拒绝招聘你们吗?请不要拖累我!我要做真正的打工皇帝!...

每日热搜小说推荐