我正在用 PHP 制作游戏(不要问大声笑),玩家有一个整数位置。有一个旅行页面,这基本上显示了一个 5x5 平铺地图。每个图块都是玩家世界的不同部分。通过点击它,他可以前往那里。只是为了让您了解地图背后的整数:
- 11、12、13、14、15
- 21、22、23、24、25
- 31、32、33、34、35
- 41、42、43、44、45
- 51、52、53、54、55
假设玩家从 33(中间)开始,我想根据他走了多远向他收取不同的费率。因此,例如,任何方向的 1 个图块是 100 学分,2 个图块是 200,依此类推。
所以我想出的是这个。$ol
代表玩家的当前位置,$nl
是他们要去的地方...
if($ol-11==$nl || $ol-10==$nl || $ol-9==$nl || $ol+1==$nl || $ol+11==$nl || $ol+10==$nl || $ol+9==$nl || $ol-1==$nl || $ol-11==$nl ){
echo "cost 100 credits!";
}
else if($ol-22==$nl || $ol-21==$nl || $ol-20==$nl || $ol-19==$nl || $ol-18==$nl || $ol-8==$nl || $ol+2==$nl || $ol+12==$nl || $ol+22==$nl
|| $ol+21==$nl || $ol+20==$nl || $ol+19==$nl || $ol+18==$nl || $ol+8==$nl || $ol-2==$nl || $ol-12==$nl ){
echo "cost 200 credits!";
}
这是 1 和 2 瓦旅行的代码。如您所见,这是一个冗长的声明。
我基本上为我设置的网格制定了一个模式。例如,向上移动 1 个图块将始终是当前图块的 -10。
在我输入更可笑的长 if 语句之前,有没有更简洁或更有效的方法来做到这一点?