下一个位置是黑锅这种情况比较简单,除了要把黑锅在地图数组中对应的元素值从4改为5(1代表狼,4代表锅,4+1=5,所以5代表狼在锅里)之外,其他的操作和为空几乎一模一样。
不过这一点我有点不满,灰太狼自己怎么能够进锅里面呢?直播铁锅炖自己么?
对于我提出的这点诟病,老爹丢下了一句话:「觉得不满意就自己改。」
这肯定不能忍,于是我就加了一点逻辑,当地图数组元素的值等于5时,把黑锅隐藏起来,只显示灰太狼,其他的逻辑不变。
对于我的不将就,老爹给予了充分的赞许。
不过我还来不及高兴,就被最后一种情况给虐得体无完肤,因为这种情况比是羊还麻烦。
和下个位置是羊一样,需要考虑下下个位置分别是空、树、羊、黑锅和羊在黑锅里五种情况。
其中下下个位置是树、羊和羊在黑锅里不用做任何处理,因为灰太狼推不动。
首先是下下个位置如果是空,那么羊就从锅里面推出来了,而灰太狼自己掉进了锅里,本来也不怎么复杂,将下下个位置对应在地图数组里的元素从0修改成2,下个位置从原来的6变成5,灰太狼的位置从1变成0,然后再修改他们在窗体中的位置。
但是因为我自己作死,之前添加了灰太狼掉进锅里的时候隐藏锅。既然那边都添加了逻辑,这边肯定也不能落下啊。
现在就剩下最后一种情况,下下个位置是黑锅。这个时候羊从一个锅移动到了另外一个锅,所以下下个位置在地图数组中对应的元素就从原来的4变成了6,紧接这灰太狼掉进了原来羊所在的锅,所以这个锅在地图数组中对应的元素从6变成了5,灰太狼原来的位置从1变成了0。
这个时候我有点想抽自己两下,没得事自作聪明修改个什么劲儿?这不是自己坑自己么?
有道是:天作孽,犹可恕。自作孽,不可活。自己挖的坑,哭着也要往里面跳。
在费尽九牛二虎之力后,推箱子这个游戏的核心功能终于让我给完成了!此时我觉得成就感爆棚,仿佛自己真的就成了造物主,创造了一个世界。
但是我总觉得好像少了点什么,不过哪能想这么多,先玩儿一把过过瘾。
为了方便分析,老爹找的这个地图很简单,根本不用脑子就能完成,此时我有些不满足这个游戏的难度,于是在网上找了一个比较难的地图,用肉眼解析,将地图数组中的数据换了。
这个时候我就感受到了使用数组来存放地图数据以及用for和if结合来加载地图的好处,因为虽然我换了数据,其他逻辑完全不受影响。
所以如果要切换关卡,就只需要修改地图数组中的数据就行了。
花了些时间将所有的羊都推进了黑锅,我终于意识到了问题所在。