diff --git a/TODO.txt b/TODO.txt index 81d3c99..1e5070b 100644 --- a/TODO.txt +++ b/TODO.txt @@ -9,4 +9,6 @@ - define per i semafori invece di usare 1/-1 -- abbandono player \ No newline at end of file +- abbandono player + +- pulire f4client mettendo var con nomi normali \ No newline at end of file diff --git a/src/F4Client.c b/src/F4Client.c index 6a1d359..afc3f5e 100644 --- a/src/F4Client.c +++ b/src/F4Client.c @@ -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); diff --git a/src/F4Server.c b/src/F4Server.c index bf6f4d9..e706c08 100644 --- a/src/F4Server.c +++ b/src/F4Server.c @@ -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))); diff --git a/src/custom_shm.c b/src/custom_shm.c index b65c38b..fcf9b19 100644 --- a/src/custom_shm.c +++ b/src/custom_shm.c @@ -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) {