僵尸大战小游戏的奇葩算法

来自我的Blog

很多童鞋都知道打僵尸游戏。这种游戏类似于你和一堆僵尸在一起,你需要蛇皮走位避免僵尸的攻击然后骚气的把僵尸打死,你才能胜利
(P.S.:不知道的小伙伴们去这个大佬的Blog下载Zombie玩玩)
但是,如果让同学们来写这个僵尸游戏,很多同学对于僵尸的移动都会这么写:

//伪代码版本
if 僵尸在玩家下面  僵尸向上走
if 僵尸在玩家上面  僵尸向下走
if 僵尸在玩家左面  僵尸向右走
if 僵尸在玩家右面  僵尸向左走

玩家表示:只要一丢丢的走位和骚气的biu两下就通关了
作为程序员的你,你怎么可以这样子被你的用户调戏嘲笑?
也许,我们需要一种新的算法去解决这个问题

神仙:你知道,什么叫做包围吗?
你:当然知道!
神仙:那么,你咋不包围玩家呢?
你:(突然愣住.png)

其实我们可以把僵尸移动的算法这么写
首先,令玩家出生坐标和僵尸出生坐标为随机的
再令一只僵尸为僵尸王,一只为僵尸2号,一只为僵尸3号……
然后,循环判断每个僵尸的位置在玩家的那个位置(上?下?左?右?)
在这里,我们需要特判一下:如果在玩家的某一个位置没有僵尸怎么办?
那么,我们就要把玩家往墙那边赶!
关于怎么把玩家往墙上赶的算法,我们暂时不提~~(很简单嘛,坐标一直往墙那里靠近不就ok了。。)~~
还有一种实现方法,对于僵尸比较少的时候,可以用这个方法
判断位置照搬
然后,那个地方缺了,僵尸王去补
如果僵尸王死了,僵尸二号去补……
再就是三号,四号……
然后利用下面躲子弹的教学把玩家堵住就好拉

还有一个小技巧,是关于如何玄学躲避玩家子弹的
首先,让僵尸散开(这个判断不需要说吧。。。)
然后,如果子弹在僵尸左边,僵尸往右走
反之自己推哈

Thank You!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值