about summary refs log tree commit diff stats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README142
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