From aac0e4628a11b81485b26f92e13cd67787af8750 Mon Sep 17 00:00:00 2001 From: Karma Riuk Date: Sun, 27 Aug 2023 18:36:38 +0200 Subject: [PATCH] testing something with the readme --- README.md | 36 +++++++++++++++++++----------------- assets/videos/bfs.gif | Bin 0 -> 1865944 bytes 2 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 assets/videos/bfs.gif diff --git a/README.md b/README.md index 3b5baed..664fab2 100644 --- a/README.md +++ b/README.md @@ -38,22 +38,22 @@ After downloading `maze-solver` from the [assets of the latest release](releases/latest "Latest release"), you can use it with the following arguments -| Short | Long | Default | Description | -| ----- | ----------------- | ---------- | ---------------------------------------------------------------------------------------- | -| -h | --help | | Print help information | -| -v | --verbose | 0 | Verbose level of the solver see [verbose levels](#verbose-levels) | -| -i | --input | `maze.png` | Input file, can be a `.txt` or `.png` file | -| -o | --output | `sol.png` | Output file, can be a `.txt` or `.png` file | -| | --path-char-in | `' '` | Character to represent the path in an input text file. | -| | --wall-char-in | `'#'` | Character to represent the wall in an input text file. | -| | --path-char-out | `' '` | Character to represent the path in an output text file. | -| | --wall-char-out | `'#'` | Character to represent the wall in an output text file. | -| | --cell-size-in | 3 | Size of a cell (in pixels) for input file of image type. | -| | --cell-size-out | 3 | Size of a cell (in pixels) for output file of image type. | -| -a | --algo | a-star | Algorithm to solve the maze see [solving algorithms](#solving-algorithms) | -| | --visualize | | Visualizer the progress of the solver see [visualization methods](#visulazation-methods) | -| | --video-name | `sol.mp4` | Name of the output file if --visualize is set to 'video'. | -| | --video-framerate | 60 | Framerate of the video if --visualize is set to 'video'. | +| Short | Long | Default | Description | +| ----- | ----------------- | ---------- | ----------------------------------------------------------------------------------------- | +| -h | --help | | Print help information | +| -v | --verbose | 0 | Verbose level of the solver, see [verbose levels](#verbose-levels) | +| -i | --input | `maze.png` | Input file, can be a `.txt` or `.png` file | +| -o | --output | `sol.png` | Output file, can be a `.txt` or `.png` file | +| | --path-char-in | `' '` | Character to represent the path in an input text file. | +| | --wall-char-in | `'#'` | Character to represent the wall in an input text file. | +| | --path-char-out | `' '` | Character to represent the path in an output text file. | +| | --wall-char-out | `'#'` | Character to represent the wall in an output text file. | +| | --cell-size-in | 3 | Size of a cell (in pixels) for input file of image type. | +| | --cell-size-out | 3 | Size of a cell (in pixels) for output file of image type. | +| -a | --algo | a-star | Algorithm to solve the maze, see [solving algorithms](#solving-algorithms) | +| | --visualize | | Visualizer the progress of the solver, see [visualization methods](#visulazation-methods) | +| | --video-name | `sol.mp4` | Name of the output file if --visualize is set to 'video'. | +| | --video-framerate | 60 | Framerate of the video if --visualize is set to 'video'. | ### Verbose levels @@ -80,4 +80,6 @@ it with the following arguments | dijkstra | [Dijkstra's algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm "Wikipedia: Dijkstra's algorithm") | | a-star | [A\*](https://en.wikipedia.org/wiki/A*_search_algorithm "Wikipedia: A* search algorithm") | - +## Examples + +![bfs](./assets/videos/bfs.gif) diff --git a/assets/videos/bfs.gif b/assets/videos/bfs.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebfbf110e00f5d0fd8309a8777e6247a9ae10598 GIT binary patch literal 1865944 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