植物大战僵尸一代毕业论文(6)~规划问题

内容摘要:本文从颇有新意的角度出发,重点研究了"植物大战僵尸"的游戏问题,针对不同的游戏规则,通过数学建模的方法,为玩家提供各种既满足设计要求且又十分刺激的游戏方案,从数学规划的角度求得最优方案;在此基础上,利用Lingo软件求得问题的最优方案
关键词:植物大战僵尸 数学建模 数学规划
注:在下面豌豆射手我给写成了豌豆荚,为了省事打三个字
1 游戏介绍
1.1 游戏规则
作为一款小游戏,“植物大战僵尸”成功地借鉴了一些战略游戏的要素——选择资源并合理规划资源(资源调配)游戏中可以选用的植物有四十多种,而每个场景最多选用十种植物,这就需要玩家根据自己的游戏策略做出取舍,然后根据不同关卡中僵尸出场的频率和类型,合理的为每个格子配备不同植物,这就相当于线性规划中的一个典型例子:任务分配问题。

为了建立模型的可操作性,本论文只针对这款游戏的初级关卡设置问题即建立模型,现在只有三种角色:向日葵,豌豆射手,普通僵尸。向日葵产生阳光,用鼠标点击阳光才能将其收集存储,过一定时间不点击阳光就会消失。种植向日葵和豌豆射手需要花费阳光。
屏幕上的游戏场地是横平竖直、大小相等的网格,一个格内只能种植一株豌豆射手屏幕上的游戏场地是横平竖直、大小相等的网格,一个格内只能种植一株豌豆射手。
1.2 数据收集
为了收集较为准确,我找了两个同伴帮忙, ,一个正在打游戏,另一个同伴在旁边掐表计算时间,收集到如下数据,僵尸每秒钟走一步,用10步时间走3个格,豌豆射手发射豌豆的频率为每1秒发射1颗,豌豆每1秒飞行2格的距离,僵尸被10粒豌豆打中立即消亡。僵尸走到豌豆射手或向日葵所在的格开始吞噬,用1秒的时间将其吃掉。向日葵产生1 朵阳光所用时间为10秒,僵尸走1 格的时间不点击阳光,阳光就会消失。2朵阳光可以种植1 株向日葵,4朵阳光可以种植1 棵豌豆射手。场地只有从左至右的9个格。

2 问题提出
本论文从游戏设计者的角度出发,为了增加游戏的激烈性,游戏设计成如下结局,当最后一只僵尸刚好到达屏幕最左边是,僵尸被豌豆射手发射的豌豆打死。本着从易到难的游戏规则,设计中提出三个问题,并建立相应的数学模型。
1)屏幕左边只有一株豌豆射手,屏幕右边等时间间隔的出现。求出不同僵尸出现的时间间隔下,僵尸死亡位置与出现次序的关系;
2)最初屏幕左边有一株豌豆射手,但每个5s钟系统会自动产生一朵25个单位的阳光,每100个单位的阳光可以种植1株豌豆射手,僵尸按逐级加速的方式从屏幕右侧走出。求出僵尸出现的最优时间间隔,使得游戏紧张有趣,并给出僵尸死亡位置与出现次序的关系;
3)系统在初始时刻有6朵150个单位的阳光,2朵阳光可以种植一株向日葵,4朵阳光可以种植一株豌豆射手。向日葵每5s生产一朵阳光,阳光3s不点击将会消失掉。僵尸从屏幕右侧出现,出现时间间隔逐级缩短。如何设计植物种植顺序和僵尸出现时间间隔,可以使得游戏在运行中充满刺激,紧张有趣。
3 建立模型
3.1 问题一
屏幕最左边有一株豌豆射手,屏幕右边等间距的出现僵尸。游戏设计中最后一只僵尸将到达豌豆荚右边,求出僵尸出现时间间隔与僵尸数量间的关系。
3.1.1 基本假设
1)豌豆射手种在屏幕最左格的正中间;
2)当第一个僵尸刚出现在屏幕最右边方格线上时,豌豆射手开始发射豌豆;
3)僵尸间时间间隔为僵尸走一步的整数倍;
3.1.2 符号说明
t…………………………………………………………僵尸走一步所需时间,为1s
T…………………………………………………………僵尸间时间间隔
N…………………………………………………………僵尸数量
k…………………………………………………………第k只僵尸
s(k) …………………………………………………… 第k只僵尸出现位置
S(k) …………………………………………………… 第k只僵尸死亡位置
3.1.3 模型建立
如图(3-1)所示,将屏幕分为从左到右的9个格子,即僵尸走30步的距离,豌豆荚种在第一格中间。游戏开始时,第一只僵尸距豌豆射手距离为28.3步,第k只僵尸距豌豆荚距离为
28.3+(k-1)×T/t (3-1)
当豌豆射手开始向第k只僵尸发射豌豆时,豌豆射手共发射出了粒豌豆,所用时间为s,此时僵尸距豌豆射手距离为
s(k)=28.3+(k-1)×T/t-10×(k-1)/t (3-2)
当豌豆射手开始向第k只僵尸发射第10粒豌豆时,僵尸距豌豆射手距离为
28.3+(k-1)×T/t -(10×k-1)/t (3-3)
已知僵尸走一步用时t为一秒,10秒走3格,豌豆飞行速度为1秒飞行两格,则豌豆飞行速度为僵尸行走速度的20/3倍。则第k只僵尸死亡位置为
S(K)=[28.3+(k-1)×T/t-(10×k-1)/t]×[1-1/(1+20/3)
(3-4)


3.1.4 模型求解
式(3-4)给出了第k只僵尸死亡位置的公式,当最后一只僵尸到达豌豆射手右边时,即第N只僵尸的死亡位置为S(N)=0,将t=1s带入得
N=(27.3-T) /(10-T) (3-5)
由式(3-5)可知,当T10,N的值将失去意义,也可以这么理解,当僵尸出现的时间间隔为10秒时,所有的僵尸将死在同一位置,僵尸将永远不能吞噬掉豌豆射手,故将该时间定义为最长时间间隔。表格3-1所示为对应不同时间间隔,僵尸最终走到豌豆射手右边时所需的最少数量。将不同的k值代入式(3-4)即可计算出各个僵尸死亡位置。由于自豌豆射手开始向第k只僵尸发射豌豆所用时间为10(k-1)秒,可认为僵尸的死亡时间间隔大致相等,即均为10秒。
3.2 问题二
屏幕最左边有一株豌豆射手,每隔5秒系统产生一朵阳光,4朵阳光可以种植一株豌豆射手。僵尸自屏幕右边采用逐级加速的方式出现,如何设计僵尸出现时间间隔,使得最后一只僵尸能够走到最左边的豌豆射手,且游戏中充满刺激性因素。
考虑到问题的复杂性,在问题一所声明的基本假设的基础上,再添加一些新的假设,并对一些新出现的变量赋予数学符号。
3.2.1 基本假设
1)豌豆射手种在每格的正中间;
2) 豌豆射手依次自左向右种植;
3) 每次产生的阳光在消失前都会被点击到。
3.2.2 符号说明
M …………………………………………种植的豌豆射手总数
m …………………………………………第m株豌豆荚
T(m) …………………………………… 种植m株豌豆荚时,僵尸时间间隔
TL(m) ……………………………………种植m株豌豆荚时,僵尸最长时间间隔
3.2.3 模型建立
在问题一中,我们得出,当种植一株豌豆荚时,僵尸间最长时间间隔为10秒。采用类似的方法可以得出种植m株豌豆荚时,所对应僵尸间最长时间间隔,即取10/m,如表3-2所示。根据问题一中对僵尸间隔时间为走一步所需时间的整数倍,种植5株以上豌豆荚的效果相同,模型中选取种植的豌豆荚不超过5株。

从问题中可以发现,每隔20秒可以种植一株豌豆荚。在种植第m株豌豆荚时,总共发射的豌豆数为粒,并打死了只僵尸。此时第只僵尸出现的位置为

则该僵尸的死亡位置为



将t=1s代入,该问题即转化为在满足一系列约束方程下,最优化某一设定目标的整数规划模型,数学描述如下:



利用数学软件Lingo解该整数规划问题得,T(1)、T(2)=(3,1),max=-4.3。用同样的方法可以求解出M为3、4、5时的整数规划解,并给出目标函数最优质。如表3-3所示。

2) M=3时,有

3) M=4时,有

4) M=5时,有

综上所述,可以发现豌豆荚种植方案应选择M=5,僵尸出现顺序应为:前3只僵尸间隔9s,第3到7只僵尸间隔4s,第7到13只僵尸之后间隔时间为3s,第13到21只僵尸以后间隔时间为2s,自第21只僵尸后间隔1s。前两只僵尸的出现位置及死亡位置可从表3-1中提取,将解(9,4,3,2,1)代入式(3-7)、(3-9),即可计算出自第三只僵尸以后的僵尸死亡位置。图3-2给出了僵尸死亡位置随僵尸次序的关系,从图中可以发现,设计游戏时,僵尸数量不易超过20只,否则后续的僵尸将吃掉植物。

3.3 问题三
系统在初始时刻有6朵150个单位的阳光,2朵阳光可以种植一株向日葵,4朵阳光可以种植一株豌豆荚。向日葵每5s生产一朵阳光,阳光3s不点击将会消失掉。僵尸从屏幕右侧出现,出现时间间隔逐级缩短。如何设计植物种植顺序和僵尸出现时间间隔,可以使得游戏在运行中充满刺激,紧张有趣。
3.3.1 基本假设
1) 豌豆荚、向日葵自左向右种植;
2) 向日葵生产的阳光全部可以被点击到;
3) 除初始时刻外,不能在同时刻中两株植物。
3.3.2 符号说明
N’……………………………………… 共种植N’ 株植物
mn……………………………………… 第m株豌豆荚,第n株植物
τ(m) ………………………………… 第m、m+1株豌豆荚间时间间隔
T(mn) …………………………………… 种植m株豌豆荚时,僵尸时间间隔
3.3.3 模型建立




3.3.4 模型求解
求解上述整数规划问题时需要分两步进行。第一步,先给出选择种植植物的顺序,并对求解方程中的参数进行初步限制,减少方程的数量。第二步,针对具体一种种植次序下的方程进行求解。
1) 植物种植次序
由初始条件可知,6朵阳光可进行三种种植方式:三株向日葵;两株向日葵,剩余两朵阳光;一株向日葵,一株豌豆荚。
当选择种植三株向日葵时,第四格种植豌豆荚,需等待10s的时间,再用10s时间才能打死第一只僵尸,20s时间内第一只僵尸会走进第四格内并吞噬掉豌豆荚,所以该方案不能执行。
选择种植两株向日葵并剩余两朵阳光时,第三格种植豌豆荚需等待5s,再用10s时间才能打死第一只僵尸,即第一只僵尸将死在第五格中间。为了使得游戏紧张有趣,需要僵尸间时间间隔不大于最长时间间隔,则第五格内将没有机会种植植物。仅选择种植一株豌豆荚,方案与问题一中相同,这里不做过多讨论,舍弃该方案。选择种植两株豌豆荚是可作为一种方案。
选择种植一株向日葵,一株豌豆荚,可用10s时间打死第一只僵尸,即僵尸将死在第六格右端。由于随豌豆荚数量增多,僵尸会逐级加速,若使得僵尸不能进入第六格,需要每级僵尸时间间隔都选择最长时间间隔,所有僵尸死在同一地点,游戏失去紧张性,故排除该方案。对于第三、四、五格的植物种植方案可有7种选择,如表3-3中方案2~8所示,其中每种方案的最后一株植物应选择种植豌豆荚才有意义。

2) 规划求解
a) 方案一
由植物种植次序,初始种植完两株向日葵,还剩余两多阳光,种植第一株豌豆荚需等待5s,种植第二株豌豆荚需10s,等到种植第三株豌豆荚需在等待10s,即:分别为5s、10s、10s。整数规划问题变为

该规划最优解为T(1)、T(2)=(1,1),max=-6.3。
b)方案二
初始种植完一株向日葵和一株豌豆荚后,需等待20s可以种植第二株豌豆荚,再等待20s可以种植第三株豌豆荚。即:分别为0s、20s、20s。整数规划问题为

该规划最优解为T(1)、T(2)=(5,1),max=-2.3
c) 方案三
初始种植完一株向日葵和一株豌豆荚后,等待到第二、三、四株豌豆荚各用20s,即:分别为0s、20s、20s、20s。规划问题为

该规划最优解为T(1)、T(2)、T(3)=(9,3,1),max=2.2。
d) 方案四
初始种植完一株向日葵和一株豌豆荚后,等待种二、三株豌豆荚时间分别为20s、10s,即:分别为0s、20s、10s。规划问题为

该规划最优解为T(1)、T(2)=(3,1),max=-4.3。
e) 方案五
用类似的方法分析得分别为0s、20s、20s、20s、20s,规划问题为

该规划最优解为T(1)、T(2)、T(3)、T(4)=(9,4,3,1),max=4.2。
f) 方案六
用类似的方法分析得分别为0s、20s、10s、10s。规划问题为

该规划最优解为T(1)、T(2)、T(3)=(5,4,1),max=-0.8。
g) 方案七
分析得到分别为0s、20s、20s、10s。规划问题为

该规划最优解为T(1)、T(2)、T(3)=(9,2,1),max=1.2。
h) 方案八
分析得分别为0s、25s、5s。规划问题为

该规划最优解为T(1)、T(2)=(4,3),max=-1.3。
从表3-4不难发现,采用方案五得植物种植次序时,游戏显得紧张有趣,将方案五的最优解(9,4,3,1)代入式(3-16)、(3-18)可得僵尸死亡位置与出现次序的关系,如图3-3所示,为保证游戏紧张有趣且玩家能够取胜,该方案下僵尸数量设置不易超过15只。

论文评价
优点:将复杂的游戏转化为简单的数学符号,模型达到了化繁为简的目的。采用简单的整数规划解决问题,方便快捷。
模型建立过程中,突出重点,假设合理,整体考虑,避免在一些细节问题上的纠缠。
采用从简到难,逐级推进的方式,提高了游戏的准确性。
缺点:论文中只考虑了简单的问题,在相关变量较少的情况下建立模型,已解决相关问题,而在一款趣味性及难度系数有一定要求的游戏,如果只解决简单的问题是远远达不到要求的。
模型改进方案及推广:将一维模型推广至二维,可将二维空间中的格子分解成数行进行讨论,但行与行间通过共享资源(阳光)相互联系。当增设其他植物和僵尸时,模型变为非线性,需附加相关条件。对于复杂的模型,原则上可以求出解析解,但可由简单模型出发,由简单解为起点,寻求局部最优解进行近似。
参考文献
[1] 赵静 但琦《数学建模与数学实验》第三版 高等教育出版社 2008.1
[2] 韩中庚《数学建模方法及其应用》解放军信息工程大学 高等教育出版社 2009
[3] 甘应爱 田丰 李维铮《运筹学》第三版 清华大学出版社 2005.6
[4] 姜启源 谢金星 叶俊《数学模型》第三版 高等教育出版社 2003.8

论文有什么不足请指正,我其实想说的是最近的这些改版是给一些特殊群体玩的,从官方的角度而言,它的游戏受众肯定是从宏观考虑,但是如果给玩家改版像那些95,β之类的,它仅仅服务于特定群体,尽管非营利性民间组织他搞出来的肯定不如官方,目前来说官方设计的关卡不仅仅是植物大战僵尸,像僵尸水族馆,Xbox360版本推车大战僵尸的那种关卡。玩家永远追不上官方的高度。它所设计游戏的意味与层次。但我发现目前国内PVZ界从来没有人真正意义去解读这个游戏的内涵,尽管有些视频是做到了。

我希望PVZ界的各位不要老从技术角度去思考问题,而要试着从官方的角度去把游戏的内涵信息解读出来,UT界做到了,MC界做到了,但PVZ界却没有完全做到,大量的PVZ视频是借助其他文化作为载体来宣传唤醒观众的深层PVZ童年,有些人只能靠柏学来激发PVZ本身的魅力,甚至做起了标题党。但我想说PVZ的文化是需要深挖的,这才能达到目的。
这篇论文在其他平台上有发过,不过么,对于那些见解不同的人,我希望不要引发矛盾,因为现阶段引发矛盾是有危险的。在此我想说明一下:
需求是制造热点的经济基础,
想象力是技术的本源,技术是执行力的属性
矛盾是需求的维度要素,
想象力推进执行力,
因为矛盾而猜疑,
猜疑创造时空因果。
技术最终服务于资本
探索缺乏想象和执行
因此,通过矛盾制作热点,我觉得一些PVZ UP主似乎是在演戏制作假的矛盾来引起观众的参与,但是我有一些同学不了解PVZ的,也都已经感受到PVZ文化正在变土。。。。。我希望能看到这篇文章的各位不要老想着自己的作品能带动多少节奏,能不能从官方的角度去把握作品,因为它设计的初衷肯定不是你想的这样,你们所缺的肯定是解读,没有解读全。那两个视频我想也仅仅解读了一部分。
这篇改版后的论文可能有点跑题了,据我所知,当年给这个游戏设计主题的人(不是指乔治 范创作者之流),有一位是本科哲学系毕业的,因为当年那个宝开工作室当初设计游戏人员和测试人员参与广泛,我们这边本土人脉也没有人去和官方交流过(我不知道有人交流过没有,但似乎没有)

我希望有些东西不要忘记本心,有些喷PVZ的喷子也不要说全部整死,有些毕竟有用,不要让我们的游戏文化让人感到很强势有一种垄断感。版权的问题这个一定要处理到位,目前是个很严重的问题
没有什么要说的了。如果对上述的技术语言有漏洞的欢迎挑刺。
