作为一个有趣的个人项目,我想通过编写PHP & Ajax应用程序来学习另一个PHP MVC框架,并实现翻转棋/奥赛罗游戏。大部分都是直截了当的内容。出于多种原因,我决定不使用多维数组,而是使用一维数组(在这种情况下是64个元素长)以及几种方法来将坐标转换为整数。
为了纪念,我写的coord2int方法如下:
因此,我很好奇,是否有其他更快的算法可以将整数转换为坐标点?
function int2coord($i){
$x = (int)($i/8);
$y = $i - ($x*8);
return array($x, $y);
}
//Not a surprise but this is .003 MS slower on average
function int2coord_2($i){
$b = base_convert($i, 10, 8);
$x = (int) ($b != 0 ? $b/8 : 0); // could also be $b < 8 for condition
$y = $b % 10;
return array($x, $y);
}
为了纪念,我写的coord2int方法如下:
function coord2int($x, $y){
return ($x*8)+$y;
}
更新:
所以在这个奇怪的世界上,结果并不是我期望的,但使用预先计算好的查找表已经被证明是最快的,猜测用内存换速度总是赢家?
- 这里有一个时间表,但由于与SO的样式问题而被删除。