Compare commits
16 Commits
draw_limit
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
edcf45967b | ||
|
|
5438795246 | ||
|
|
4bcb3b03c5 | ||
|
|
50080e151a | ||
|
|
8ff330b9d9 | ||
|
|
10d44297b5 | ||
|
|
61a08d8005 | ||
|
|
c68e96e96a | ||
|
|
91ff4568ff | ||
|
|
5f3588466f | ||
|
|
7746ffd307 | ||
|
|
6145dc22a3 | ||
|
|
c2821eed0a | ||
|
|
0b54d8c015 | ||
|
|
e1d5613392 | ||
|
|
1553685882 |
2
.gitignore
vendored
@@ -48,7 +48,7 @@ Thumbs.db
|
||||
*.mov
|
||||
*.wmv
|
||||
|
||||
# c object files
|
||||
# c files
|
||||
*.o
|
||||
fdf
|
||||
|
||||
|
||||
2
.gitmodules
vendored
@@ -1,3 +1,3 @@
|
||||
[submodule "libft"]
|
||||
path = libft
|
||||
url = git@bitbucket.org:hugogogo/libft.git
|
||||
url = git@bitbucket.org:hugogogo/int_01_libft.git
|
||||
|
||||
65
README.md
@@ -1,12 +1,65 @@
|
||||
# FDF
|
||||
# FDF - fil de fer (french for Wire)
|
||||
---
|
||||
|
||||
quick description
|
||||
This project is an introduction to 3D drawing. It takes a map file and render it with its height. It listen to keyboard events to apply transformations, such as translation, rotations, zoom, and change in altitude factor.
|
||||
|
||||
- [subject here](./fdf_subject.pdf)
|
||||
the input map is a simple text file that looks like this :
|
||||
|
||||
```
|
||||
$> cat -e map_test.fdf
|
||||
0 0 0 0 0$
|
||||
0 0 0 0 0$
|
||||
0 10 0 0 0$
|
||||
0 0 0 0 0$
|
||||
0 0 0 0 0$
|
||||
$>
|
||||
```
|
||||
|
||||
### ressources
|
||||
and the program converts it into a rectangular net, like a landscape with the height equal to the numbers :
|
||||
|
||||
- minilibx : https://harm-smits.github.io/42docs/libs/minilibx
|
||||
- draw a line : https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
|
||||

|
||||
|
||||
we can modify the map to see a new 3D model :
|
||||
|
||||
```
|
||||
$> cat -e map_test.fdf
|
||||
0 0 0 0 0$
|
||||
1 2 3 4 5$
|
||||
0 10 8 0 0$
|
||||
0 0 0 9 0$
|
||||
0 0 0 0 0$
|
||||
$>
|
||||
```
|
||||
|
||||

|
||||
|
||||
# ressources
|
||||
---
|
||||
|
||||
- it is based on a library called minilibx : https://github.com/42Paris/minilibx-linux
|
||||
- equations to transform a 2D drawing into a perspective : https://math.stackexchange.com/questions/2305792/3d-projection-on-a-2d-plane-weak-maths-ressources/2306853#2306853
|
||||
- drawing a line between two points : https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
|
||||
- bits manipulation for colors shifting : https://dev.to/freerangepixels/a-probably-terrible-way-to-render-gradients-1p3n
|
||||
- optimizing events response with debouncing and throttling : https://stackoverflow.com/questions/25991367/difference-between-throttling-and-debouncing-a-function
|
||||
- building images instead of asking the X library to draw each pixel one by one : https://github.com/Gontjarow/MiniLibX/blob/master/docs/mlx-tutorial-create-image.md
|
||||
|
||||
# transformations :
|
||||
---
|
||||
|
||||
**zoom :**
|
||||
|
||||

|
||||
|
||||
**turn :**
|
||||
|
||||

|
||||

|
||||
|
||||
**move :**
|
||||
|
||||

|
||||
|
||||
**altitude factor :**
|
||||
|
||||

|
||||
|
||||
|
||||
BIN
assets/fdf_demo.gif
Normal file
|
After Width: | Height: | Size: 823 KiB |
BIN
assets/fdf_demo_1.jpg
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
assets/fdf_demo_2.jpg
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
assets/fdf_loop_change_height_50.gif
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
assets/fdf_loop_flying_tube.gif
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
assets/fdf_loop_flying_tube_2.gif
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
assets/fdf_loop_move_down_tube.gif
Normal file
|
After Width: | Height: | Size: 3.6 MiB |
BIN
assets/fdf_loop_move_left_tube.gif
Normal file
|
After Width: | Height: | Size: 3.5 MiB |
BIN
assets/fdf_loop_turn_down_pylone.gif
Normal file
|
After Width: | Height: | Size: 4.3 MiB |
BIN
assets/fdf_loop_turn_left_pyramide.gif
Normal file
|
After Width: | Height: | Size: 2.7 MiB |
BIN
assets/fdf_loop_zoom_element.gif
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
assets/fdf_pylone.gif
Normal file
|
After Width: | Height: | Size: 3.1 MiB |
BIN
assets/fdf_pyramide.gif
Normal file
|
After Width: | Height: | Size: 4.2 MiB |
BIN
assets/fdf_pyramide_loop_square_1.gif
Normal file
|
After Width: | Height: | Size: 19 MiB |
BIN
assets/fdf_pyramide_loop_square_2.gif
Normal file
|
After Width: | Height: | Size: 16 MiB |
BIN
assets/fdf_pyramide_loop_square_combine.gif
Normal file
|
After Width: | Height: | Size: 22 MiB |
BIN
assets/fdf_pyramide_loop_square_zoom.gif
Normal file
|
After Width: | Height: | Size: 5.6 MiB |
BIN
assets/fdf_t2.gif
Normal file
|
After Width: | Height: | Size: 14 MiB |
BIN
builds/fdf.o
BIN
builds/modifs.o
BIN
builds/parse.o
@@ -74,20 +74,54 @@ int is_color(char *color);
|
||||
void size_map(t_fdf *fdf, char *raw, int height);
|
||||
int **parse_map(t_fdf *fdf, int fd);
|
||||
|
||||
// steps size for the hight transform with p and o
|
||||
// steps size for the height transform with p and o
|
||||
// must be > 0
|
||||
// 100 is small, 1 is the biggest
|
||||
# define Z_HEIGHT 50
|
||||
# define Z_HEIGHT 10
|
||||
// then define the speed for height transform
|
||||
// must be > 0
|
||||
// 1 is small, 100 is big
|
||||
# define Z_HEIGHT_UP 20
|
||||
# define Z_HEIGHT_DOWN 20
|
||||
|
||||
// color for altitude
|
||||
# define COLOR_START 0xffffff
|
||||
/*
|
||||
- 50 : pink - blue
|
||||
- elem : purple - green
|
||||
- pylone : brown - purple
|
||||
- pyramide : white - pink
|
||||
- semitube : green - pink
|
||||
- t2 : white - green
|
||||
- test : white - pink
|
||||
*/
|
||||
// color for altitude
|
||||
# define COLOR_START 0xffffff // white
|
||||
/*
|
||||
# define COLOR_START 0xf263a6 // pink
|
||||
# define COLOR_START 0xa263f6 // purple
|
||||
# define COLOR_START 0x1423e6 // blue
|
||||
# define COLOR_START 0x877264 // brown
|
||||
# define COLOR_START 0x00d700 // green
|
||||
*/
|
||||
/*
|
||||
# define COLOR_END 0x877264 // brown
|
||||
# define COLOR_END 0x1423e6 // blue
|
||||
# define COLOR_END 0xf263a6 // pink
|
||||
# define COLOR_END 0xffffff // white
|
||||
# define COLOR_END 0x00d700 // green
|
||||
*/
|
||||
# define COLOR_END 0x1423e6 // blue
|
||||
# define COLOR_END 0xa263f6 // purple
|
||||
|
||||
// zoom change for each keypress
|
||||
# define ZOOM 1
|
||||
|
||||
// degree rotation for each keypress
|
||||
# define ROT 3
|
||||
|
||||
// pixels deplacement for each keypress
|
||||
# define MOVE 10
|
||||
|
||||
// minimum time in milliseconds between two keypress
|
||||
# define DEBOUNCE_TIME 40
|
||||
# define DEBOUNCE_TIME 50
|
||||
|
||||
# define ESCAPE 65307
|
||||
# define UP 65362
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
0 0 0 0 0 0 0 0 0 0
|
||||
0 10 10 10 10 10 10 10 10 0
|
||||
0 10 20 15 12 15 17 20 10 0
|
||||
0 10 15 10 12 15 15 15 10 0
|
||||
0 5 15 10 12 15 15 13 10 0
|
||||
0 5 10 5 7 12 12 12 10 0
|
||||
0 8 8 10 10 10 10 10 10 0
|
||||
0 8 10 10 12 15 17 20 10 0
|
||||
0 8 10 10 12 15 15 15 10 0
|
||||
0 5 10 10 12 15 15 13 10 0
|
||||
0 5 8 5 7 12 12 12 10 0
|
||||
0 5 7 1 2 7 5 5 7 0
|
||||
0 3 0 0 1 2 2 2 5 0
|
||||
0 1 0 0 0 0 0 0 3 0
|
||||
|
||||
156
maps_2/semi_tube.fdf
Normal file
@@ -0,0 +1,156 @@
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
25 21 18 16 15 14 13 12 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6 6 7 7 8 8 9 10 10 11 12 12 13 14 15 16 18 21 25
|
||||
5
maps_2/test.fdf
Normal file
@@ -0,0 +1,5 @@
|
||||
0 0 0 0 0
|
||||
0 0 0 0 0
|
||||
0 10 0 0 0
|
||||
0 0 0 0 0
|
||||
0 0 0 0 0
|
||||
10
notes.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# FDF
|
||||
|
||||
- [subject here](./fdf_subject.pdf)
|
||||
|
||||
### ressources
|
||||
|
||||
- minilibx : https://harm-smits.github.io/42docs/libs/minilibx
|
||||
- draw a line : https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
|
||||
|
||||
|
||||
@@ -55,8 +55,8 @@ void init_fdf(t_fdf *fdf)
|
||||
{
|
||||
struct timeval current_time;
|
||||
|
||||
fdf->win_size_x = 700;
|
||||
fdf->win_size_y = 700;
|
||||
fdf->win_size_x = 902;
|
||||
fdf->win_size_y = 913;
|
||||
fdf->img_size_x = fdf->win_size_x;
|
||||
fdf->img_size_y = fdf->win_size_y;
|
||||
init_offset(fdf);
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
void keypress_more(int keycode, t_fdf *fdf)
|
||||
{
|
||||
if (keycode == A)
|
||||
fdf->zoom += 1;
|
||||
fdf->zoom += ZOOM;
|
||||
else if (keycode == W)
|
||||
fdf->zoom -= 1;
|
||||
fdf->zoom -= ZOOM;
|
||||
else if (keycode == U)
|
||||
{
|
||||
fdf->rot_x = 0;
|
||||
@@ -28,10 +28,9 @@ void keypress_more(int keycode, t_fdf *fdf)
|
||||
fdf->zoom = 0;
|
||||
}
|
||||
else if (keycode == O)
|
||||
fdf->altitude++;
|
||||
fdf->altitude += Z_HEIGHT_UP;
|
||||
else if (keycode == P)
|
||||
//if (fdf->altitude > 0)
|
||||
fdf->altitude--;
|
||||
fdf->altitude -= Z_HEIGHT_DOWN;
|
||||
}
|
||||
|
||||
int should_ignore_keypress(const struct timeval *current_time, t_fdf *fdf)
|
||||
@@ -44,21 +43,6 @@ int should_ignore_keypress(const struct timeval *current_time, t_fdf *fdf)
|
||||
last_milliseconds = (fdf->last_keypress_time.tv_sec % 1000) * 1000 + fdf->last_keypress_time.tv_usec / 1000;
|
||||
is_less = (current_milliseconds - last_milliseconds) < DEBOUNCE_TIME;
|
||||
|
||||
/*
|
||||
[1 705 151 587 ,905 277,49579540-1000000]
|
||||
1 705 151 587 000
|
||||
1 705 151 587 905
|
||||
1 705 151 587 % 1000 = 587
|
||||
587 * 1000 + 905 277 / 1000 = 587 000 + 905 = 587905
|
||||
|
||||
[836 763,836 066]
|
||||
ft_putchar('[');
|
||||
ft_putnbr(current_milliseconds);
|
||||
ft_putchar(',');
|
||||
ft_putnbr(last_milliseconds);
|
||||
ft_putchar(']');
|
||||
*/
|
||||
|
||||
if (!is_less)
|
||||
fdf->last_keypress_time = *current_time;
|
||||
return is_less;
|
||||
@@ -82,21 +66,21 @@ int keypress(int keycode, t_fdf *fdf)
|
||||
if (keycode == ESCAPE)
|
||||
shut_down(fdf);
|
||||
else if (keycode == LEFT)
|
||||
fdf->rot_x += 1;
|
||||
fdf->rot_x += ROT;
|
||||
else if (keycode == RIGHT)
|
||||
fdf->rot_x -= 1;
|
||||
fdf->rot_x -= ROT;
|
||||
else if (keycode == UP)
|
||||
fdf->rot_y += 1;
|
||||
fdf->rot_y += ROT;
|
||||
else if (keycode == DOWN)
|
||||
fdf->rot_y -= 1;
|
||||
fdf->rot_y -= ROT;
|
||||
else if (keycode == Q)
|
||||
fdf->mov_x -= 6;
|
||||
fdf->mov_x -= MOVE;
|
||||
else if (keycode == D)
|
||||
fdf->mov_x += 6;
|
||||
fdf->mov_x += MOVE;
|
||||
else if (keycode == Z)
|
||||
fdf->mov_y -= 6;
|
||||
fdf->mov_y -= MOVE;
|
||||
else if (keycode == S)
|
||||
fdf->mov_y += 6;
|
||||
fdf->mov_y += MOVE;
|
||||
else
|
||||
keypress_more(keycode, fdf);
|
||||
draw_image(fdf);
|
||||
|
||||