Maze solving: Difference between revisions
Content added Content deleted
Line 1,434: | Line 1,434: | ||
=={{header|EasyLang}}== |
=={{header|EasyLang}}== |
||
[https://easylang.dev/show/#cod=hVTbjpswEH33V4zUF5Joqc2ClEjd/ghCFYvNggJ2ZLK73X59Z2xjTFt18wDMmZvn+EyW8ZeCJxAV0/gq4AgLIScQrCecc/gKmYYH4Hl1YJPSMNcNaAzU7Auw57a7vljzqiVwztnNmg6Wwbz/mFssk0POAKCbVGvpozcWRioLdwOhFuH4G3s0xgadPCD4+4lmNmJzcYDZSGwZXR+JS45vqaszE/a5XC4bNJs3hdWO0GNGjyMVWCCxtkirujtiRxB5tb6D183iHsuk1A0Z4YLlzPT9UtPBa5wLmRKQPegDNJ6M2TNxM8vKxlyjEQeNZJEhY50CHqGEJiWtBGneNRInwnkkgrbV0swwrtBoEXQnkrVsVnLpG3GJBKd006FOlNO4O8FSESQlrI6Exn1KclPJmDF5T1vOlJbkf/LqoasLFLVXtdPLf2QSNCLiVexi9T6qiCZ1/BeEh9Ak9r9dOri2LNduCFsSeBdVCKOUHc42UgZ/6358z1vO4tBsUwDuUyDEXh2VqOSVE7cKhO2X4WMHx0XwK4BP13oT/8nJvQziD5ZLGC1uqbMfUfA5e5nMczshvbTaeVhsM2ElvFme6hml5KM2qVh1f7U6khbnuXCv+XV9qpDvZeEJCiU+KWn6TfylkxJ4LQyrFsqQ6FciG3Ba0zvmRPRhO/rb86r1W4PKDk48F+V+++4njtuh/5C+ZyWj2NN6NyV9uvJbXMJTkg0bPRrO5/POE4lK4Jwlb1orHySYPwd3cizYbw== Run it] |
|||
[https://easylang.dev/show/#cod=fVTbbtswDH3XVxDoSy6oK6UOkABrfyQwBjeWEyGxFMhZuu7rR+ourFgeYvNQFMnDQz/B1P+RcJJa2v6ujIZeDzCb60PpE3sCNit0v4HYMo2PDazAIWsQbCScc3iBhYZn4M12ya5Sw3ToQONBTfEf/fFysuYX3so5ZzdrjjCfzedPl7eBhgHA8Sp7Sy+jsaDoWrgbCHcRjj81oqE6dPKA4O83mguFycUSJjNgyuT6KlyDepSuo7linv1+n6HJPCTetoIRI0ZsaYMXFFY+aeXxjtgKRLONz+B1vbi/+SrlDRnhgjXMjON8oMIP2BcyJWDxrJfQeTImz8TNzJGN6YBGajSRRcaQ7tnAK7TQlaS1MJhPjcSJUM+AoMV5mglUhJRF0FU0HIYukkvviA9IcEk3FbWmmM7NhKQRQVJCdBQ01iHFpIo2U3BNW8OkHsj/5tVDowsU9RdZ6eU/MgkaEWkU1Vldn9okkzJ+B2ERmsT+r0sHV45y6c5hSwLvYhuOUUiFs0zK2U/dt+95a1hqmmUF4D4FQuzFUYlKjpy4VSCsXoavCk6L4FcA/13qLP61k3sbxB8sF6AsbqmzX1HwTdhk/FBIGiUPAh7dpnsZxyL3nFc74VpHfflZ+64DtT48S+rDyv5SDNOMWdKtEwj4CZ/jhNtK6Isz9mBGx4dIPsxHHzOvRb8LqNcsfIr98e7bSprXbjDOjlUW8vZELChyHflv6dUncxH5NOb45g7InGnY7XaVJ7FXwA0rnrRA/pBgvhruhLcJyf8C Run it] |
|||
<syntaxhighlight lang="text"> |
<syntaxhighlight lang="text"> |
||
# maze generation and solving |
|||
# |
|||
size = 15 |
size = 15 |
||
n = 2 * size + 1 |
n = 2 * size + 1 |
||
Line 1,498: | Line 1,496: | ||
circle f / 3.5 |
circle f / 3.5 |
||
. |
. |
||
global found . |
|||
proc solve dir0 pos . . |
|||
if found = 1 |
|||
return |
|||
. |
|||
mark pos 900 |
mark pos 900 |
||
sleep 0.05 |
sleep 0.05 |
||
if pos = endpos |
if pos = endpos |
||
found = 1 |
found = 1 |
||
return |
|||
. |
. |
||
of = random 4 - 1 |
of = random 4 - 1 |
||
Line 1,509: | Line 1,511: | ||
dir = (h + of) mod1 4 |
dir = (h + of) mod1 4 |
||
posn = pos + offs[dir] |
posn = pos + offs[dir] |
||
if dir <> dir0 and m[posn] |
if dir <> dir0 and m[posn] = 0 |
||
solve (dir + 1) mod 4 + 1 posn |
solve (dir + 1) mod 4 + 1 posn |
||
if found = 0 |
if found = 0 |
||
mark posn 888 |
mark posn 888 |
||
Line 1,519: | Line 1,521: | ||
. |
. |
||
sleep 1 |
sleep 1 |
||
solve 0 n + 2 |
solve 0 n + 2 |
||
</syntaxhighlight> |
</syntaxhighlight> |
||