-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJoc.c
More file actions
127 lines (101 loc) · 2.6 KB
/
Joc.c
File metadata and controls
127 lines (101 loc) · 2.6 KB
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
#include <stdio.h>
#include <unistd.h>
#include <stdbool.h>
#define MSGSIZE 16
int nr1 = 1;
int nr2 = 2;
int nr3 = 3;
int matrix[8][8];
int matrix_size=8;
bool setupMatrix(int size){
for(int i = 0 ; i < size ; i++)
for(int j = 0 ; j < size ; j++)
matrix[i][j]=0;
}
//Urmatoarele 3 functii sunt pentru verificarea si aplicarea deciziei jucatorului
bool columnFull(int columnIndex){
if(matrix[0][columnIndex]!=0) return true;
return false;
}
int firstEmptyRow(int columnIndex){
for(int i=matrix_size-1;i>=0;i--)
if(matrix[i][columnIndex]==0)
return i;
}
bool addInColumn(int columnIndex,int value){
if(columnFull) return false;
int row=firstEmptyRow(columnIndex);
matrix[row][columnIndex]=value;
return true;
}
//Urmatoarele functii sunt pentru verificarea jocului
bool latitude(int row, int column){
int i=column-1,j=column+1;
int color=matrix[row][column];
int sum=1;
while(i>=0&& matrix[row][i]==color)
sum++;
while(j<=matrix_size&&matrix[row][j]==color)
sum++;
if(sum>=4)
return true;
return false;
}
bool longitude(int row, int column){
int i=row-1,j=row+1;
int color=matrix[row][column];
int sum=1;
while(i>=0&& matrix[i][column]==color)
sum++;
while(j<=matrix_size&&matrix[j][column]==color)
sum++;
if(sum>=4)
return true;
return false;
}
bool diagonal(int row,int column){
int color=matrix[row][column];
int sum1=1;
int i1=-1, j1=1;
while( row+i1>=0 && column+i1>=0 && matrix[row+i1][column+i1]==color)
{
i1-=1;
sum1+=1;
}
while( row+j1<matrix_size && column+j1<matrix_size && matrix[row+j1][column+j1]==color)
{
j1+=1;
sum1+=1;
}
if(sum1>=4) return true;
int sum2=1;
int i2=-1,j2=1;
while( row+i2>=0 && column-i2<matrix_size && matrix[row+i2][column-i2]==color)
{
i2-=1;
sum2+=1;
}
while( row+j2<matrix_size && column-j2<matrix_size && matrix[row+j2][column+j2]==color)
{
j2+=1;
sum2+=1;
}
if(sum2>=4) return true;
return false;
}
bool fourInRow(int row,int column){
if(diagonal(row,column)||latitude(row,column)||longitude(row,column))
return true;
return false;
}
int endGame(){
for(int i=0;i<matrix_size;i++)
for(int j=0;j<matrix_size;j++)
if(fourInRow(i,j))
return matrix[i][j];
return 0;
}
int main()
{
return 0;
}