-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_main copy 2.c
130 lines (118 loc) · 3.54 KB
/
test_main copy 2.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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <unistd.h>
#include <stdlib.h>
struct solve_state
{
int board[10][4][4];
int views[4][9];
int N;
};
void ft_putchar(char c);
void print_board(struct solve_state current);
int get_cell_value(struct solve_state current, int x, int y);
struct solve_state populate_array(struct solve_state current);
int main(void)
{
struct solve_state current;
current.N = 4;
current = populate_array(current);
/* current.board[0][0][0] = 1;
current.board[0][1][3] = 1;
current.board[0][2][2] = 1;
current.board[0][3][1] = 1;
current.board[1][0][1] = 2;
current.board[1][1][0] = 2;
current.board[1][2][3] = 2;
current.board[1][3][2] = 2;
current.board[2][0][2] = 3;
current.board[2][1][1] = 3;
current.board[2][2][0] = 3;
current.board[2][3][3] = 3;
current.board[3][0][3] = 4;
current.board[3][1][2] = 4;
current.board[3][2][1] = 4;
current.board[3][3][0] = 4;
current.board[9][0][0] = 1;
current.board[9][0][1] = 1;
current.board[9][0][2] = 1;
current.board[9][0][3] = 1;
current.board[9][1][0] = 1;
current.board[9][1][1] = 1;
current.board[9][1][2] = 1;
current.board[9][1][3] = 1;
current.board[9][2][0] = 1;
current.board[9][2][1] = 1;
current.board[9][2][2] = 1;
current.board[9][2][3] = 1;
current.board[9][3][0] = 1;
current.board[9][3][1] = 1;
current.board[9][3][2] = 1;
current.board[9][3][3] = 1;*/
/* {{{1, 0, 0, 0}, {0, 0, 0, 1}, {0, 0, 1, 0}, {0, 1, 0, 0}},
{{0, 2, 0, 0}, {2, 0, 0, 0}, {0, 0, 0, 2}, {0, 0, 2, 0}},
{{0, 0, 3, 0}, {0, 3, 0, 0}, {3, 0, 0, 0}, {0, 0, 0, 3}},
{{0, 0, 0, 4}, {0, 0, 4, 0}, {0, 4, 0, 0}, {4, 0, 0, 0}},
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}},
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}},
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}},
{{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 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}, {1, 1, 1, 1}, {1, 1, 1, 1}}};*/
print_board(current);
return (0);
}
struct solve_state populate_array(struct solve_state current)
{
int i = 0;
int j = 0;
int k = 0;
while (k < 10) {
j = 0;
while (j < current.N){
i = 0;
while (i < current.N){
current.board[k][j][i] = 0;
i++;
}
j++;
}
k++;
}
return (current);
}
void print_board(struct solve_state current)
{
int x;
int y;
y = 0;
while (y < current.N) // goes through every row
{
x = 0;
ft_putchar(get_cell_value(current, x, y) + '0'); //Prints the first digit of the row
x++;
while (x < current.N)
{
ft_putchar(' ');
ft_putchar(get_cell_value(current, x, y) + '0');
x++;
}
ft_putchar('\n');
y++;
}
}
int get_cell_value(struct solve_state current, int x, int y)
{
int i;
i = 0;
if (current.board[9][y][x] == 1) {
if (current.board[0][y][x] != 0)
return (1);
while (current.board[i][y][x] == 0)
i++;
return (current.board[i][y][x]);
}
return (0);
}
void ft_putchar(char c)
{
write(1, &c, sizeof(c));
}