diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 142 |
1 files changed, 94 insertions, 48 deletions
diff --git a/README b/README index 76c9420..af6327f 100644 --- a/README +++ b/README @@ -11,11 +11,18 @@ Table of Contents ───────────────── 1. Demo -2. Installation -3. Documentation -4. Project Structure -5. Fornax Format +2. Usage +3. Installation +.. 1. Release +.. 2. From Source +4. Documentation +.. 1. Options +.. 2. Fornax Format +.. 3. Project Structure +5. Bugs 6. News +.. 1. v0.1.1 - 2021-11-16 +.. 2. v0.1.0 - 2021-11-03 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ @@ -56,7 +63,19 @@ Writings: <https://andinus.unfla.me/resources/projects/fornax/2021-11-16-DFS-60.mp4> -2 Installation +2 Usage +═══════ + + ┌──── + │ # Solve the maze. + │ raku algorithms/raku/DFS.raku resources/input/06 > /tmp/solution.fornax + │ + │ # Visualize the solution. + │ raku -Ilib bin/fornax /tmp/solution.fornax + └──── + + +3 Installation ══════════════ `fornax' is written in Raku, it can be installed with `zef'. You can @@ -66,7 +85,7 @@ Writings: • *Note*: `Cairo' module & `ffmpeg' program is required. -2.1 Release +3.1 Release ─────────── 1. Run `zef install 'fornax:auth<zef:andinus>'' @@ -77,14 +96,14 @@ Writings: get them from this repository. -2.2 From Source +3.2 From Source ─────────────── You can either download the release archive generated by cgit/GitHub or clone the project if you have `git' installed. -2.2.1 Without `git' +3.2.1 Without `git' ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ 1. Download the release: @@ -94,7 +113,7 @@ Writings: 3. Run `zef install .' in source directory. -2.2.2 With `git' +3.2.2 With `git' ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ All commits by /Andinus/ will be signed by this [PGP Key]. @@ -113,7 +132,7 @@ Writings: <https://andinus.nand.sh/static/D9AE4AEEE1F1B3598E81D9DFB67D55D482A799FD.asc> -3 Documentation +4 Documentation ═══════════════ Fornax parses /Fornax format/, generates a `PNG' for each iteration @@ -122,41 +141,60 @@ Writings: • Solved paths are highlighted if the iteration is preceded by `|'. • Illegal paths are highlighted if the iteration is preceded by `!'. - • *Note*: If the number of iterations are greater than an 8 digit - number then the slideshow might be incorrect. - -3.1 Options +4.1 Options ─────────── • `input': This takes solved input file in the /Fornax/ format. - • `frame-rate': Frame rate for the video. - • `output': Output directory (for solution video/images). + • `fps': Frame rate for the video solution. + • `skip-video': Skip generating the video solution. + • `batch': Number of iterations to process at once. -4 Project Structure -═══════════════════ +4.2 Fornax Format +───────────────── - • Algorithms are located in `algorithms/' directory, sub-directory - needs to be created for programming languages which will hold the - actual source. + Fornax format defines 2 formats: + • Maze (input) + • Solution (output) - • Sample solutions can be found in `resources/solutions/' directory. - • *Note*: Some solutions might output illegal moves (like walking - over blocked path), this error is only in visualization, the - solution is correct. +4.2.1 Grids +╌╌╌╌╌╌╌╌╌╌╌ - This has been fixed in commit - `8cef86f0eb8b46b0ed2d7c37fa216890300249f6'. + A grid is printed for every iteration. Grids are composed of cells. + + ━━━━━━━━━━━━━━━━━━━━━━━━━━ + Cell Symbol + ────────────────────────── + Path `.' + Blocked `#' + Start `^' + Destination `$' + ────────────────────────── + Visited `-' + Current Path `~' + Current Position `@' + ━━━━━━━━━━━━━━━━━━━━━━━━━━ -5 Fornax Format -═══════════════ +4.2.2 Maze (input) +╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ + + Maze input must be in this format: + ┌──── + │ ...rows + └──── + + It is upto the program to infer the number of rows & columns from the + input file or it ask the user. - Fornax format is an intermediate output file generated after solving - the maze. Algorithms must output the solution in this format. +4.2.3 Solution (output) +╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ + + Fornax solution format is an intermediate output file generated after + solving the maze. Algorithms must output the solution in this format: ┌──── │ rows:<number of rows> cols:<number of columns> │ @@ -182,26 +220,34 @@ Writings: • First iteration is assumed to be the maze. -5.1 Grids -───────── +4.3 Project Structure +───────────────────── - A grid is printed for every iteration. Grids are composed of cells. + • Algorithms are located in `algorithms/' directory, sub-directory + needs to be created for programming languages which will hold the + actual source. - ━━━━━━━━━━━━━━━━━━━━━━━━━━ - Cell Symbol - ────────────────────────── - Path `.' - Blocked `#' - Start `^' - Destination `$' - ────────────────────────── - Visited `-' - Current Path `~' - Current Position `@' - ━━━━━━━━━━━━━━━━━━━━━━━━━━ + • Sample solutions can be found in `resources/solutions/' directory. + + • *Note*: Some solutions might output illegal moves (like walking + over blocked path), this error is only in visualization, the + solution is correct. + + This has been fixed in commit + `8cef86f0eb8b46b0ed2d7c37fa216890300249f6'. + + +5 Bugs +══════ + + • If the number of iterations are greater than an 8 digit number then + the slideshow might be incorrect. + + • `/tmp' is assumed to exist. - • /Current Position/ is prioritized over /Blocked/ & /Destination/ - symbol if it makes sense. + • Might panic with: `MoarVM oops: MVM_str_hash_entry_size called with + a stale hashtable pointer'. This has been fixed: + <https://github.com/rakudo/rakudo/pull/4634>. 6 News |