server_setup
This commit is contained in:
parent
14267e3aee
commit
b1ab3a883f
2
TODO.txt
2
TODO.txt
|
@ -10,3 +10,5 @@
|
|||
- define per i semafori invece di usare 1/-1
|
||||
|
||||
- abbandono player
|
||||
|
||||
- pulire f4client mettendo var con nomi normali
|
|
@ -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);
|
||||
|
|
|
@ -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)));
|
||||
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue