-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheckers.c
executable file
·116 lines (106 loc) · 3.02 KB
/
checkers.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* checkers.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: msalena <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/10/02 17:11:02 by msalena #+# #+# */
/* Updated: 2021/10/02 17:11:02 by msalena ### ########.fr */
/* */
/* ************************************************************************** */
#include "fractol.h"
int modern_atoi(const char *nptr)
{
size_t i;
long int n;
size_t z;
i = 0;
n = 0;
z = 1;
while (nptr[i] == '\t' || nptr[i] == '\n' || nptr[i] == '\v'
|| nptr[i] == '\f' || nptr[i] == '\r' || nptr[i] == ' ')
i++;
if (nptr[i] == '-' || nptr[i] == '+')
if (nptr[i++] == '-')
z = -1;
while (nptr[i] >= '0' && nptr[i] <= '9')
{
n = n * 10 + (nptr[i] - '0');
i++;
}
n *= z;
if (n < 0 || n > D_WIDTH)
invalid_messag(0);
return (n);
}
void invalid_messag(int fl)
{
printf ("\n !!!invalid arguments!!!\n\n");
if (fl == 1)
{
printf (" Please, enter one of this command:\n");
printf (" mandelbrot\n");
printf (" julia\n\n");
}
else
printf ("Please, enter two numbers: from 0 to %d\n\n", D_WIDTH);
exit (0);
}
/* Check arguments on quantity and correctiness */
void check_arguments_on_disability(int argc, char **argv, t_data *img)
{
char ret_j;
char ret_m;
ret_j = julia_or_mandelbrot("julia\0", argv);
ret_m = julia_or_mandelbrot("mandelbrot\0", argv);
if (ret_j == 'n' && ret_m == 'n')
invalid_messag(1);
else if (ret_j == 'y' && ret_m == 'n')
img->type_fl = 'j';
else if (ret_j == 'n' && ret_m == 'y')
img->type_fl = 'm';
if (argc == 3)
invalid_messag(0);
if (argc > 3 && (check_on_invalid_nums(argv[2]) == 'n'
|| check_on_invalid_nums(argv[3]) == 'n'))
{
invalid_messag(0);
}
}
/*Check arguments for correctiness: it should be just numbers
from 0 to 1500*/
char check_on_invalid_nums(char *argv)
{
int i;
char fl;
i = 0;
fl = 't';
while (argv[i])
{
if (argv[i] != '0' && argv[i] != '1' && argv[i] != '2'
&& argv[i] != '3' && argv[i] != '4' && argv[i] != '5'
&& argv[i] != '6' && argv[i] != '7' && argv[i] != '8'
&& argv[i] != '9')
{
fl = 'f';
}
i++;
}
if (fl == 'f')
return ('n');
else
return ('y');
}
/*Check which str (mandelbrot or julia) came from input*/
char julia_or_mandelbrot(char *str, char **argv)
{
int i;
i = 0;
while (argv[1][i] == str[i] && argv[1][i] && str[i])
i++;
if (!argv[1][i] && !str[i])
return ('y');
else
return ('n');
}