Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/questiowo/daedalus
A maze generating and rendering program using recursive backtracking written in Sigma16
https://github.com/questiowo/daedalus
assembly maze maze-algorithms maze-generation maze-generation-algorithms maze-generator recursive-algorithm recursive-backtracking-algorithm sigma16
Last synced: about 2 months ago
JSON representation
A maze generating and rendering program using recursive backtracking written in Sigma16
- Host: GitHub
- URL: https://github.com/questiowo/daedalus
- Owner: QuestioWo
- License: mit
- Created: 2020-12-11T23:42:47.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-08-17T10:23:10.000Z (over 3 years ago)
- Last Synced: 2024-05-02T04:31:17.077Z (8 months ago)
- Topics: assembly, maze, maze-algorithms, maze-generation, maze-generation-algorithms, maze-generator, recursive-algorithm, recursive-backtracking-algorithm, sigma16
- Language: Python
- Homepage: https://questiowo.github.io/Daedalus
- Size: 36.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
README
This was written cause I was bored during the exam diet and needed something to do. It also served as a way of better testing the [Sigma17](https://questiowo.github.io/Sigma17) emulator.
## Results
In the output of the emulator after running this horrid program, there will be an ascii interpretation of the generated maze printed. For a 4x4 maze with the seed `1234`, as is the default when running this project, the below will be printed:```
*--*--*--*--*
| | |
* *--*--* *
| | |
*--*--* * *
| | | |
* *--* * *
| |
*--*--*--*--*
```For a more complex example, here is a 16x16 with a seed of `1234` :
```
*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
| | | | |
* *--*--* * *--* * * * *--*--*--* *--*--*
| | | | | | | | |
*--*--* * *--*--*--* * *--* *--*--*--* * *
| | | | | | | | | | |
* * * *--* * * * * * *--* * * *--* *
| | | | | | | | | | | |
* *--*--* * *--* *--*--*--*--*--* * * * *
| | | | | | | | | |
* * * *--* * *--*--* * *--* * * * * *
| | | | | | | | | | | | | |
* * * * * * * * * *--* *--*--*--* *--*
| | | | | | | | | |
* * * * *--* *--* * *--*--*--* * *--* *
| | | | | | | | |
* *--*--*--* *--*--* *--* *--* *--*--* * *
| | | | | | | | | | |
*--* * *--*--*--* * * * *--*--* * * *--*
| | | | | | | | |
* *--*--* *--*--* *--* * * *--*--* *--* *
| | | | | | | | |
* * * *--* * *--* *--*--*--* *--*--* *--*
| | | | | | | | | |
* *--*--*--* * * *--* *--* * * * *--* *
| | | | | | | | | |
*--*--*--* * * * * *--*--* * * *--*--* *
| | | | | | | |
* *--*--*--*--*--*--* * * *--* *--* * *--*
| | | | | | | | |
*--*--* * *--*--* *--* * *--*--* *--*--* *
| | | | |
*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
```## Running
This atrocious program can be ran by copying the [Daedalus.asm.txt](https://raw.githubusercontent.com/QuestioWo/MazeGeneratorSigma16/main/Daedalus.asm.txt) file into the text area in the `Editor` tab of the [Sigma16 emulator](https://questiowo.github.io/Sigma17). This program was only written for use in [this](https://questiowo.github.io/Sigma17) emulator as it was easier than using the original.It can be made to run in the original emulator by exporting it to Raw Compatible using the down-arrow next to the Download button on the same Editor tab. You will also have to remove line `3` as the copyright symbol is invalid in the orignal.
## Changing the output
The output of the maze will be the same for each running, unless some constant values are changed.The values that can be changed without incident are `height`, `width` and `seed`. These can all be found at the bottom of the file denoted by the `parameters` comment on line `733`. The `seed` will change the maze design as it changes the random number generator's seed. The `width` and `height` will, of course, change the widths and heights of the mazes generated.
There does exist combinations of maximum widths and heights. As of v1.1, that limit is a number of cells of around 7211 cells. This is due to the program taking `0x279`, aka 633 cells of memory, and each additional cells requiring nine cells of memory as well - 2 for its position in the stack and 7 for its coordinate and boolean wall values. this limit can be achieved by running the program with the parameters of `height` = 1 and `width` = 7211, using up to and including `0xfff9`. Alternatively, for a more interesting maze than just a corridor, a maze of size 84x85 can be used as the parameters, using up to and including `0xfd7a`.
## `main.py`
This contains a python version of the Sigma16 program for better understanding of the program. This can be ran using `python3 main.py` and requires no extra libraries. It can be modified in a similar way to Sigma16 version; changing the values of the `width`, `height`, and `seed` variables.## Author
This Sigma16 program was written by [Jim Carty](https://questiowo.github.io). Email: [email protected]
## License
This project is licensed under the terms of the MIT license. See `LICENSE.txt` for the full license.