-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHeader.h
76 lines (61 loc) · 2.48 KB
/
Header.h
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
#ifndef HEADER_
#define HEADER_
#include <iostream>
#include <cstring> // folosit pentu memset.
#include <arpa/inet.h> // pentru funtia inet_ntop
#include <netdb.h>
#include <sys/socket.h>
#include <pthread.h>
#include <vector>
#include <list>
#include <iterator>
#include <sstream>
#include <inttypes.h>
#include <errno.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/wait.h>
using namespace std;
// Declaratii funtiile server
int server_listen() ;
int connect_to_server(int server_fd);
int server_send(int fd, string data);
void *treat(void *arg) ;
//constantele serverului
const char * PORT = "12345" ;
const int MAXLEN = 1024 ; // Lungimea maxima a unui mesaj.
const int MAXFD = 10 ; // Numarul maxim de descriptori. Este egala cu numarul maxim de clienti
const int BACKLOG = 5 ; // Numarul maxim de conexiuni care pot astepta inainte de a fi acceptate
extern int errno; // codul de eroare returnat de anumite apeluri
// Trebuie sa fie declarata volatile pentru ca poate fi modificata de un alt thread. Adica un compilator nu poate
// optimiza codulul pentru ca, este declarat asa fel incat nu numai programul poate schimba variabila dar si programe externe,
// adica threaduri in cazul nostru
volatile fd_set the_state;
pthread_mutex_t mlock = PTHREAD_MUTEX_INITIALIZER; // variabila mutex ce va fi partajata de threaduri
pthread_mutex_t mutextabla = PTHREAD_MUTEX_INITIALIZER; // mutex locker pentru vectorul tablei de sah.
// Declaratii functii sah
void newgame();
void printeaza_tabla_sah(int clientelnet);
bool isblack(int x , int y) ;
void muta_piesa(char * mutare) ;
void do_gamer_command(char * command, int client) ;
void printeaza_la_toti_si_verifica_castigator();
int quit(int x);
int winner (int x);
void do_spectator_command(char * command, int client);
void reseteaza();
bool mutare_valida(char * mutare);
bool mutare_valida_alb(char * mutare);
bool mutare_valida_negru(char * mutare);
int move_validator=0;
vector<vector<string> > tablasah; // Folosim un vector 2D pentru tabla de sah
list <string> piese_capturate; // Folosim o lista inlantuita pentru a stoca piesele omorate
list <string>::iterator it_capt; // Folosim un iterator pentru a lucra cu ele
// Culori
const string culoare_text ("\033[22;30m");
const string culoare_abc ("\033[01;32m");
const string culoare_neagra ("\033[22;30m");
const string culoare_alba ("\033[01;30m");
const string culoare_patrat_negru("\033[01;34m") ;
const string culoare_patrat_alb("\033[01;36m") ;
#endif