0

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つ)の場所を移動できるとしましょう。ユーザーが移動できる位置をどのように操作できますか?

4

1 に答える 1

2

私は次のことを行います(疑似コードで):

reachable={1}
for i=0 to 4 (exclusive)
  newreachable={}
  for elem in reachable
    add map[elem] to newreachable
  reachable=newreachable

反復ごとに、移動reachable可能な位置を含み、newreachable移動可能な各位置を取得します。

于 2012-11-17T17:38:50.717 に答える