-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogic.c
126 lines (108 loc) · 3.29 KB
/
logic.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
#include "logic.h"
bool verifVictoire(int **matrix, int lignes, int colonnes, int nbPlayer)
{
for (int l = 1; l <= nbPlayer; l++)
{
for (int i = 0; i < lignes; i++)
{
for (int j = 0; j < colonnes; j++)
{
if (matrix[i][j] == l)
{
if (i + 3 < lignes && matrix[i + 1][j] == l && matrix[i + 2][j] == l && matrix[i + 3][j] == l)
{
return true;
}
if (j + 3 < colonnes && matrix[i][j + 1] == l && matrix[i][j + 2] == l && matrix[i][j + 3] == l)
{
return true;
}
if (i + 3 < lignes && j + 3 < colonnes && matrix[i + 1][j + 1] == l && matrix[i + 2][j + 2] == l && matrix[i + 3][j + 3] == l)
{
return true;
}
if (i + 3 < lignes && j - 3 >= 0 && matrix[i + 1][j - 1] == l && matrix[i + 2][j - 2] == l && matrix[i + 3][j - 3] == l)
{
return true;
}
}
}
}
}
return false;
}
int jouerJeton(plateau_t matrix, int lignes, int column, int player)
{
for (int i = lignes - 1; i >= 0; i--)
{
if (matrix[i][column] == 0)
{
matrix[i][column] = player;
return 0;
}
}
return -1;
}
plateau_t creerPlateau(int n, int m)
{
plateau_t matrix = (plateau_t)malloc(n * sizeof(int *));
for (int i = 0; i < n; i++)
{
matrix[i] = (int *)malloc(m * sizeof(int));
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
matrix[i][j] = 0;
}
}
return matrix;
}
// void jouerPartie()
// {
// struct winsize w;
// ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
// int raw_lines = w.ws_row;
// int raw_columns = w.ws_col;
// int p4_lines, p4_columns;
// if (raw_lines % 7 > 0 || raw_columns % 10 > 0)
// {
// p4_lines = raw_lines / 7;
// p4_columns = raw_columns / 10;
// }
// else
// {
// p4_lines = raw_lines / 7 - 1;
// p4_columns = raw_columns / 10 - 1;
// }
// int n, m;
// printf("Entrez la taille du plateau (ligne colonne) max (%d %d): ", p4_lines, p4_columns);
// scanf("%d %d", &n, &m);
// if (n > p4_lines || m > p4_columns)
// {
// n = p4_lines;
// m = p4_columns;
// }
// plateau_t plateau = creerPlateau(n, m);
// int player = REDPLAYER;
// while (verifVictoire(plateau, n, m) == false)
// {
// printf("\033[H\033[J");
// afficherPlateau(plateau, n, m);
// printf("Joueur %d, entrez la colonne ou vous voulez jouer: ", player);
// int column;
// scanf("%d", &column);
// if (jouerJeton(plateau, n, column - 1, player) == -1)
// {
// printf("Colonne pleine, veuillez en choisir une autre\n");
// continue;
// }
// else
// {
// player = player == REDPLAYER ? YELLOWPLAYER : REDPLAYER;
// }
// }
// afficherPlateau(plateau, n, m);
// printf("Joueur %d a gagne\n", player == REDPLAYER ? YELLOWPLAYER : REDPLAYER);
// }