annotate README.md @ 32:b1a605eb721a

accept user inputs
author Dennis C. M. <dennis@denniscm.com>
date Thu, 29 Jun 2023 19:45:49 +0100
parents 61104b22a25d
children 576431310c8a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 # algo-animator
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2
31
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
3 An interactive program to visualize sorting algorithms.
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
4
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
5 This project is inspired by - off course - the video by Timo Bingmann called
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
6 [15 sorting algorithms in 6 minutes](https://www.youtube.com/watch?v=kPRA0W1kECg).
21
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
7
24
bebd95177e96 add images
Dennis C. M. <dennis@denniscm.com>
parents: 21
diff changeset
8 ![Image 1](repo/1.png)
26
2945f5898960 fix typo
Dennis C. M. <dennis@denniscm.com>
parents: 24
diff changeset
9 ![Image 2](repo/2.png)
24
bebd95177e96 add images
Dennis C. M. <dennis@denniscm.com>
parents: 21
diff changeset
10
31
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
11
21
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
12 ## Compile
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
13
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 ```bash
28
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
15 mkdir build
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
16 cd build
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
17 cmake ..
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
18 make
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
19 ```
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
20
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
21 **Currently I've only tested this project on Linux. However, I would like to prepare it so
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
22 that it can be used on Mac and Windows. However, my cross-platform experience is almost
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
23 non-existent. Maybe in the future I'll check how to do it**
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
24
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
25 # Run
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
26
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
27 To customize the program you can pass the following arguments.
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
28
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
29 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
30 ./algo_animator WINDOW_WIDTH WINDOW_HEIGHT RECTANGLE_WIDTH SPACE_BETWEEN_RECTANGLES
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
31 ```
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
33 The default values are:
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
34
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
35 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
36 WINDOW_WIDTH = 1920
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
37 WINDOW_HEIGHT = 1080
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
38 RECTANGLE_WIDTH = 5
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
39 SPACE_BETWEEN_RECTANGLES = 1
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
40 ```
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
41
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
42 Run the program in a window with width of 1920 pixels and height of 1080 pixels,
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
43 fit the screen with rectangles with width of 50 pixels, and add a space between
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
44 rectangles of 3 pixels.
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
45
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
46 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
47 ./algo_animator 1920 1080 50 3
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
48 ```
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
49
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
50 ![Image 3](repo/3.png)
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
51
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
52
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
53 # Examples
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
54
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
55 ## Normal mode
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
56
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
57 Just run the program and press `ENTER`
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
58
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
59 ## Slow motion
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
60
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
61 Use `u` to increase the delay, then `ENTER` to run the algorithm
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
62 **The delay is applied after each iteration**
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
63
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
64 ## Pause mode
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
65
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
66 Press `ENTER` then `p`
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
67
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
68 ## Sequential mode
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
69
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
70 Press `q` then press `ENTER` to visualize the algorithm step by step.