如果我有这样定义的PHP地图
$map = array(
'0' => array('1','2','3','4'),
'1' => array('0','5'),
'2' => array('0','6'),
'3' => array('0','7'),
'4' => array('0','8'),
'5' => array('1','9','10'),
'6' => array('2','10','11'),
'7' => array('3','11','12'),
'8' => array('4','12','9'),
'9' => array('8','5'),
'10' => array('5','6'),
'11' => array('6','7'),
'12' => array('7','8'),
);
看起来像这样:
9-------5-------10
| | |
| 1 |
| | |
8---4---0---2---6
| | |
| 3 |
| | |
12------8-------11
现在,我可以说我在第1位,我可以移动4个(也就是4个)位置,我该如何处理用户可以移动到哪个位置?
答案 0 :(得分:2)
我会做以下(伪代码):
reachable={1}
for i=0 to 4 (exclusive)
newreachable={}
for elem in reachable
add map[elem] to newreachable
reachable=newreachable
对于每次迭代,reachable
包含可能的位置,newreachable
获取您可以移动的每个位置。