Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/W00dL3cs/Super-Maze
Programmatic maze generator and solver, built with Swift 3. Apple's WWDC17 scholarship winner.
https://github.com/W00dL3cs/Super-Maze
apple ios macos playground wwdc-scholarship wwdc17
Last synced: 25 days ago
JSON representation
Programmatic maze generator and solver, built with Swift 3. Apple's WWDC17 scholarship winner.
- Host: GitHub
- URL: https://github.com/W00dL3cs/Super-Maze
- Owner: W00dL3cs
- Created: 2017-04-03T16:44:22.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-04-03T18:25:06.000Z (over 7 years ago)
- Last Synced: 2024-08-04T00:06:08.820Z (4 months ago)
- Topics: apple, ios, macos, playground, wwdc-scholarship, wwdc17
- Language: Swift
- Homepage:
- Size: 8.21 MB
- Stars: 9
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- Awesome-Swift-Playgrounds - Super Maze - A programmatic maze generator and solver. (Miscellaneous / SpriteKit)
README
# Super Maze
**Super Maze** is a programmatic maze generator and solver, built with Swift 3.
The intent of this playground is to demonstrate how to create a **virtually** unlimited amount of tile-based maps, each one **different** from the other: you control a red ball, and your aim is to complete the maze as fast as possible... tilting the device.
## About
Super Maze represents my scholarship application for Apple's **WWDC17**: I started working on it on March, 22nd and submitted the project on April, 1st.
It's built using SpriteKit, while the ball movements are handled via accelerometer data received from CoreMotion.
## Technical Informations
Mazes are represented by a bi-dimensional matrix, which contains informations about the nodes of the map.
The algorithm used to carve the labirinth is a simple "Depth-first" search, with recursive backtracking.
While this ensures the correctness of the level, it does not provide any informations about its **difficulty**: that's why this project makes use of a Swift implementation of the A* search algorithm.
You can find **more informations** about how this works, in the main page of the playground.
## Maze Generation
![Generation](screenshots/maze-generation.png)
## Maze Solving
![Solving](screenshots/maze-solving.png)