# [PHP], <del>385</del> <del>335</del> <del>307</del> 286 bytes or ***265 bytes*** [if output is numeric][1] `22311322` instead of `DDRUURDD`. <!-- language-all: lang-php --> function c(&$m,$x,$r=-1,$l=0,$d=0){$v=[L,U,D,R];if($r<0)$r=array_search(P,$m);$m[$l=$r]=V;if(!in_array(T,$m))die;foreach([$r%$x?$r-1:0,$m[$r-$x]?$r-$x:0,$m[$r+$x]?$r+$x:0,$r%$x<$x-1?$r+1:0]as$o=>$n)if($n&&$m[$n]!=M&&$m[$n]!=V){echo$v[$o];c($m,$x,$n,$r,$o);}if($l)echo$v[[3,2,1,0][$d]];} Uses a recursive depth-first search to crawl the map until all treasures are found. Input is a one-dimensional array map, and number of columns `s( $m, 13 );`, output list to `STDOUT`. **Ungolfed** This could stand a bit more golfing (and possibly a bit more cleverness). function c( &$m, $x, $r=-1, $l=0, $d=0 ) { // table of direction names $v = [ 'L', 'U', 'D', 'R' ]; // locate starting position on first move if( $r < 0 ) $r = array_search( 'P', $m ); // move to new sqaure $l = $r; // mark square with . to show it has been visited $m[ $r ] = '.'; // end if no more treasures if ( ! in_array( 'T', $m ) ) exit; // generate list of adjacent squares $dirs = [ $r % $x ? $r-1 : false, // Left $m[ $r - $x ] ? $r - $x : false, // Up $m[ $r + $x ] ? $r + $x : false, // Down $r % $x < $x-1 ? $r+1 : false // Right ]; // consider valid directions for next move foreach ( $dirs as $o => $n ) if ( $n && $m[$n] != 'M' && $m[$n] != '.' ) { // if not a Mountain and not Visited display the direction echo $v[$o]; // and recursively keep crawling c( $m, $x, $n, $r, $o ); } // if this is a dead end, go back to previous square if ( $l ) echo $v[[3,2,1,0][ $d ]]; // display the reverse direction } [Basic Case][TIO-jtg7wf2u] [PHP]: https://php.net/ [TIO-jtg7wf2u]: https://tio.run/##rZJRa8IwEMef56eIcKsNXqGZb4uZL3ucIKPzJQQpta4Fm5TTSYf42V2iDve6zYfjwj//3@WOS1u1x/GkrVpWEjlaUNk62tb2PU65PK4@bLGtnWVFHEGD0CGQSgTCWqUIS5XyPeyUfsE3fMZXI@tVDDROuXflRPnnYlPmVFTxDKHhEhrtQSCj5sHZr@3i5IqzcM2XdSlXjsrcAxroHroJUCIe/UsepAQ6Mzmlb2V4VoZnJQBj6BIRJE@ZfANOPYHloSsbRYGxpq@m1@Oc78uicrDT4Iws4suM1ldDcFweArrmF48e4QMKTI2GpTHycIRGMMV0724wG@CA/S48xf5FZX@ipj8iu0mH2U3mMrLXCwsQyMTIf70v "PHP – Try It Online" `DDDDDRUUUUURDDRUURDDRUURDDDLDLLLDRRRRURUUUURDDDDDLRRU` [Locked Up][2] `DDRUURDD` [No Treasure:][3] ` ` (no output) [Back Alley][4] `DDDDDRUUUUURDDDDDRUUUUURDDDDDRUUUUURDDDDDRUUUUURRRRRLLLLLDDRRRRRLLLLLDDRRRRR` [No way to move][5] ` ` (no output) [1x1][6] ` ` (no output) [Hedge Maze][7] (an original creation) +-+-+-+-+-+-+-+-+-+-+-+-+-+ |P|M| |T|M| | | |M| |M|M|T| +-+-+-+-+-+-+-+-+-+-+-+-+-+ | |M| |M| | |M|T|M|T| | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+ |T| | |M| |M| |T|M|M|M| |M| +-+-+-+-+-+-+-+-+-+-+-+-+-+ |M|M| | | |M| |M|M| | | |M| +-+-+-+-+-+-+-+-+-+-+-+-+-+ |T| | |M| |M| | | | |M| |M| +-+-+-+-+-+-+-+-+-+-+-+-+-+ |M|M| |T| | |M|M|M|M|M| |T| +-+-+-+-+-+-+-+-+-+-+-+-+-+ `DDRRUURLDDDDLLRRDRRUULRUURURRDDLDDRRRURRUULLUDRRRUDLDDDDR` [1]: https://tio.run/##rZLRaoMwFIav51OkcKaGRjDr3WLmExR6Ib2RIKJxCjWR0w4cpc/uknZju93Wi0PC///f4ZyQqZ@WLJ/6iWhEixXqyeJpMK9xSsXSvZnmNFhDmjiEkcHMAGXCGRxkyqCVKT0PXQyYpdQZNWL9Xh11jU0f7xiMVMBYuiygknvhkqvBVNdUXHibtoMWnUVdO6AEfIQ5B0z4s2vuQExgVvn1@FLWN2V9UzyQwZxwLzlK1Uew8gUM9VOZMPSMUSu5/b7u6Vk3vQUrmvhzJeM6MbBUXDx2oN4vN@yJcZaqElolLguMnEhSBg/RLmIR@V05ivyLKv5EbX9UcZcJi7vspUQQ@MfnjPCN@2Uf [2]: https://tio.run/##tZLBa8IwFMbP86@I8GYTTKF1t8XMi0cFEfVSgpRa14JNytNBh/i3u5euMJFdZOzwSPK970e@R1IX9XU8qYua5YgOt5jXDk@lfeeRUNf9h81OpbMs4wOoJDQSUIexhIOOJOx0JM7lngOOI0GNFDH93B7zFLOCLyRUQkGVkBfQ6I0iZ7@029bFV74tdmWu9g7zlIBkpt8An6GZAIbxayTXdCYcQ2jMpF1InHbi8FsctuKyI8fQhLFXCTfpERzpVviEdjDwmDV9Pf/ZbsQ5zwoHTmW8G8/ShBKcUBePHYTv@2RLf8nMZ5r6DGuTwM6oyxWqEdMs6T0Fi0AG7K7mv2g3RRT7E7V6iJp3rvt6PCH7F8qoXs8/xEiy@IV@3xc [3]: https://tio.run/##tVJRS8MwEH52vyKDs01ZJh0DH8zSvexxhTH0qYRSusxV1iRc66jIfvtM69RNVATx4Uhy333fXT7ObuxhMrUbSxSiwRSVNVgX@p6GAT@sH3VeF0aTikLJoAmewYpE8rx7WpdhGWL2lFYqw3xDFwzKIOD7d15OPVfpvZYCMtiKkMFKhE5pJ5K5iJZsKaI5uxPRjM1EdCc5lAmgFP6Vz4s17Rc67XrQ205cNUVNHyqjU6Vzs1IUrOvodAH52qDK3BitLuAlNFPA4egmbNWLqlI17bSH0Mhg2p0Om51hgyM26LDlUWcCzXDUZp2YzCowLq8DNx1oz2t5WvZF/HF1s7dWJVKAOTULdGeCcRa15O1b0S6B1dnHAQVs@X5/gPKaCJL0LvyFz3xyjPgkyPfhWF8h8Q9xzoo/sX7XK/7zhORfWJL3eu0ijxkZjd12vwA [4]: https://tio.run/##vZLLasMwEEXX9VcoMLUtIoNNs6qsepNlAiEk2RhhjB@1IZbMJAWXkG9PJdfQRQt9LLoYJN25B91B6pv@Fid905MKUWOGVa/x3KpnP6T8Vr@o4txqRQrfhY7BwABFEDE4ipBBKUJ6aWsfMA6paeSI@Wt2qnIsGn/DoKMcutR4AaU4cOOctSobXf7OtmnZVrzWWOUGSFfiCfAehgQwiB5Dtjdng2MAg0zGxYjLSZy/i/NR3E5kDEMQWdXgMj@BNrqiNqFyXYspORPrj@2BXqqi0aB54U/jKTMhA0351WJHavs22dZesrKZljbDXqZQSn69QbcggqTOnbfxmEd@UTuPGeo71/pz/YD6ov7trr/PJbnj2IdYMBI9mN/3Bg [5]: https://tio.run/##7VKxbsIwEJ3LVwTpmjjCVIkqlhqHhREkhMoUWVEUTElFbOuSolQV305tl9Iydu9wsn3v3rvz05m9OU9nZm8CiaixQGk0drV6IUnMzrs3VXW1VkFLoKHQxx9geC5Y5Z/GZmiJWL4XrSyx2pMVhSaO2enKq0hoK8OvUkAKB55Q2PLEKh15vuDZmq55tqAbns3pnGcbwaDJAQWPHiJW78iwVoXvQZ69uOzrjry2WhVSVXorCRjb0eoCsp1GWdoxnC7gPfQzwHH6lDj1um1lR7z2GHoRz/xpsfkNNrpgI4@tLzpT6Mepy1oxUbagbV7FdjpQYeh4Sgz58udqZ3dW5YKD/m0WKG@CthY58uG76JjD9ubjgBwO7HQ6QzMJeJAP7qJlRP8a/6xrrCxLsMHALfKEBumj3e5P [6]: https://tio.run/##VZFNb8IwDIbv/IoieW0qwlROSAspF45MQmicqqiqShidaBK5Heo08duZk7EPTkn82o@d1@7oroulO7pII1osUTuLfWNeWZaK6@Hd1H1jTdQxaDkM6Sc4WShRh6ejCK8Qq4@y0xXWR7bh0KapuPzW1SymzPg7FZDDSWYc9jIj0lkWa5lv@Vbma76T@YqvZL5TAtoCUMnkMRHNgY0bU4Ye7CXA9dD07K2zptSmtnvNwFFH4gKKg0Vd0RieC/gAwxJwOnvKPL3pOt2zwJ7CoNJlOElb3WmTmzYJ2vbGWcAwnfkowVTVgaW4SWk6MHHs64way@e/K83urSqUBPvfLDDBBEsW@eLTT9K5gP3dxwElnMTlcoV2HsmoSDaJEqORX8OcRzNazRc [7]: https://tio.run/##jVJNa8JAED3XXxFhqlncQELBQ9etF48uiEQvYZEQYxMwu2G0kCL@djurlqahpT0Ms3kfM2@T1EV9mUzrovZyRIsbzGuLx9K8@iETl92byY6lNV7mD6Di0HBAGUQc9jLksJUhO5U7H3ASMiJSxPR9c8hTzAp/waFiAqqEtIBargUp@6XZXFV@7Gi2LXOxs5inZEjm8gXwEZopYBA9h3xFz2THABo9vTYCZ3dwdANHV3B5d06gCSKHkl2nB7CEG@YSmsHA2YzuS/V1XLNTnhUWrMj8@/UM3ZCDZeLsbHvmeJds6ZbMXaaZy7DSCWy1OF@gGnvSS3oPw8WQDxWVRxW3zp@lWl3dNOTqMm113OqtSeSKf5nb3q2@c@RS/0jV4f7Y9cukzq7uBPVDQvc2tOj13IcYcy96or/vAw