server_setup

This commit is contained in:
Lorenzo Bianchi 2023-05-29 11:49:35 +02:00
parent 14267e3aee
commit b1ab3a883f
4 changed files with 19 additions and 14 deletions

View File

@ -9,4 +9,6 @@
- define per i semafori invece di usare 1/-1
- abbandono player
- abbandono player
- pulire f4client mettendo var con nomi normali

View File

@ -143,11 +143,11 @@ int main(int argc, char *argv[]){
// PARTITA
move_t move = {.mtype = 2};
setRows(input.rows); //FIXME:
setRows(input.rows); //FIXME: da mettere in un setup
setCollums(input.collums);
setTokens(msg.server_in.player1Token, msg.server_in.player2Token);
while (1) { //FIXME: potenzialmente da cambiare questo while (ma forse bastano i segnali)
while (1) {
// aspetto il mio turno
semOp(semid, msg.player_id, -1); // mettere id eccetera in var
printBoard(boardClient);

View File

@ -47,7 +47,7 @@ int main(int argc, char *argv[]){
// aspetto secondo client
semOp(_SEMID, 2, -1);
// ricevuta nome secondo client
// ricevo nome secondo client
rcvPlayer(&player);
strcpy(name[player.id], player.name_player);
@ -59,14 +59,11 @@ int main(int argc, char *argv[]){
semOp(_SEMID, 1, 1);
// PARTITA
printf(PSERVER "Starting game\n");
printf("%d %d\n", _ROWS, _COLLUMS);
for (int i=0; i < _ROWS * _COLLUMS; i++) { //FIXME: tmp
_BOARD[i] = EMPTY;
}
int turns_left = _INPUT_S.rows * _INPUT_S.collums;
int turn = 0;
@ -74,23 +71,25 @@ int main(int argc, char *argv[]){
move_t move;
do {
// apro semaforo al player
semOp(_SEMID, turn, 1);
printf(PSERVER "%s's turn\n", name[turn]);
// aspetto che mi mandi una mossa
rcvMove(&move);
//TMP
printf("move: %d\n", move.move);
insertMove(_BOARD, move.move, turn);
// info
printf("move: %d\n", move.move);
printf("turns left: %d\n", turns_left - 1);
// dico al player che la mossa è stata effettuata per fargli stampare il campo
semOp(_SEMID, turn, 1);
turn ^= 1;
} while (--turns_left && !(result = checkWin(_BOARD, move.move)));

View File

@ -11,6 +11,10 @@ int _SHMID;
void setupServerShm() {
_SHMID = getShmid(_ROWS, _COLLUMS);
_BOARD = shmServerAt(_SHMID);
for (int i=0; i < _ROWS * _COLLUMS; i++) {
_BOARD[i] = EMPTY;
}
}
int getShmid(int row, int col) {