/ Event_April_2023 / ex08 / blackjack.c
blackjack.c
 1  #include <stdio.h>
 2  #include <ctype.h>
 3  
 4  int	convert_char(char c)
 5  {
 6  	if (isdigit(c))
 7  	{
 8  		if (c == '1' || c == '0')
 9  			return (-1);
10  		return (c - '0');
11  	}
12  	else
13  	{
14  		if (c == 'T' || c == 'J' || c == 'D' || c == 'K')
15  			return (10);
16  		if (c == 'A')
17  			return (1);
18  	}
19  	return (-1);
20  }
21  
22  int	main(int argc, char **argv)
23  {
24  	char	*string;
25  	int		sum;
26  	int		ret;
27  	int		ace;
28  	int		i;
29  
30  	if (argc != 2)
31  		return (1);
32  	string = argv[1];
33  	sum = 0;
34  	ace = 0;
35  	i = -1;
36  	while (string[++i] != '\0')
37  	{
38  		ret = convert_char(string[i]);
39  		if (ret < 0)
40  			return (1);
41  		if (ret == 1)
42  		{
43  			ace++;
44  			continue ;
45  		}
46  		sum += ret;
47  	}
48  	i = 0;
49  	while (ace--)
50  	{
51  		if (!i++ && sum < 21)
52  		{
53  			ret = 11;
54  			if (sum + ret > 21)
55  				ret = 1;
56  		}
57  		else
58  			ret = 1;
59  		sum += ret;
60  	}
61  	if (sum == 21)
62  		printf("Blackjack!\n");
63  	else
64  		printf("%d\n", sum);
65  	return (0);
66  }