rifunziona pt 30000
This commit is contained in:
parent
cab69abfea
commit
c051085e4a
4
TODO.txt
4
TODO.txt
|
@ -6,6 +6,4 @@
|
||||||
|
|
||||||
- messaggio speciale per abbandono
|
- messaggio speciale per abbandono
|
||||||
|
|
||||||
- se le ipcs non si sono chiuse bene non funzia
|
- se le ipcs non si sono chiuse bene non funzia
|
||||||
|
|
||||||
- fa errore quando un giocatore abbandona
|
|
|
@ -62,10 +62,13 @@ int main(int argc, char *argv[]){
|
||||||
|
|
||||||
int turns_left = _INPUT_S.rows * _INPUT_S.collums;
|
int turns_left = _INPUT_S.rows * _INPUT_S.collums;
|
||||||
int turn = 0;
|
int turn = 0;
|
||||||
tile_t result;
|
tile_t result = -1;
|
||||||
move_t move;
|
move_t move;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
//FIXME: tmp
|
||||||
|
printf("result: %d\n", result);
|
||||||
|
|
||||||
// apro semaforo al player di turno
|
// apro semaforo al player di turno
|
||||||
semOp(_SEMID, turn, 1);
|
semOp(_SEMID, turn, 1);
|
||||||
|
|
||||||
|
@ -86,13 +89,12 @@ int main(int argc, char *argv[]){
|
||||||
// next turn
|
// next turn
|
||||||
turn ^= 1;
|
turn ^= 1;
|
||||||
|
|
||||||
} while (--turns_left && !(result = checkWin(move.move)));
|
} while (--turns_left && (result = checkWin(move.move)) == -1);
|
||||||
|
|
||||||
|
|
||||||
printf("result: %d\n", result);
|
printf("result: %d\n", result);
|
||||||
if (!result) {
|
if (result == -1) {
|
||||||
printf(PSERVER "Game ended in a draw\n");
|
printf(PSERVER "Game ended in a draw\n");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
printf(PSERVER "%s won\n", name[result]);
|
printf(PSERVER "%s won\n", name[result]);
|
||||||
}
|
}
|
||||||
|
@ -102,7 +104,7 @@ int main(int argc, char *argv[]){
|
||||||
sndGame_end(&game_end);
|
sndGame_end(&game_end);
|
||||||
|
|
||||||
printf("%d %d\n", _PIDS[0], _PIDS[1]);
|
printf("%d %d\n", _PIDS[0], _PIDS[1]);
|
||||||
|
|
||||||
kill(_PIDS[0], SIGUSR1);
|
kill(_PIDS[0], SIGUSR1);
|
||||||
kill(_PIDS[1], SIGUSR1);
|
kill(_PIDS[1], SIGUSR1);
|
||||||
|
|
||||||
|
|
|
@ -47,8 +47,6 @@ void sigHandlerServer(int sig) {
|
||||||
|
|
||||||
kill(_PIDS[0], SIGUSR1); //FIXME: fare una funzione per queste robe perche anche gia scritta a fine F4Server
|
kill(_PIDS[0], SIGUSR1); //FIXME: fare una funzione per queste robe perche anche gia scritta a fine F4Server
|
||||||
kill(_PIDS[1], SIGUSR1);
|
kill(_PIDS[1], SIGUSR1);
|
||||||
|
|
||||||
printf("adesso vi chiudo\n");
|
|
||||||
|
|
||||||
raise(SIGTERM);
|
raise(SIGTERM);
|
||||||
}
|
}
|
||||||
|
@ -159,9 +157,11 @@ void sigHandlerClient(int sig) {
|
||||||
printBoard();
|
printBoard();
|
||||||
if (winner.winner == ID) {
|
if (winner.winner == ID) {
|
||||||
printf("YOU WON!!!\n");
|
printf("YOU WON!!!\n");
|
||||||
} else {
|
} else if (winner.winner == -1) {
|
||||||
printf("YOU LOST!!!\n");
|
printf("YOU LOST!!!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
raise(SIGTERM);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
10
src/forza4.c
10
src/forza4.c
|
@ -53,7 +53,7 @@ int checkLine(int pos, int delta) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// checks _BOARD for a win
|
// checks _BOARD for a win
|
||||||
// returns player tile_t on win, otherwise 0
|
// returns player id on win, otherwise -1
|
||||||
int checkWin(int pos) {
|
int checkWin(int pos) {
|
||||||
int result = checkLine(pos, ORIZONTAL);
|
int result = checkLine(pos, ORIZONTAL);
|
||||||
if (result) {
|
if (result) {
|
||||||
|
@ -75,7 +75,7 @@ int checkWin(int pos) {
|
||||||
return _BOARD[pos] - 1;
|
return _BOARD[pos] - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int checkWinAll(){
|
int checkWinAll(){
|
||||||
|
@ -114,10 +114,10 @@ void printTile(tile_t t) {
|
||||||
printf(" ");
|
printf(" ");
|
||||||
break;
|
break;
|
||||||
case PLAYER1:
|
case PLAYER1:
|
||||||
printf("\033[91m%c\033[39m", _TOKEN1);
|
printf("\033[94m%c\033[39m", _TOKEN1);
|
||||||
break;
|
break;
|
||||||
case PLAYER2:
|
case PLAYER2:
|
||||||
printf("\033[94m%c\033[39m", _TOKEN2);
|
printf("\033[91m%c\033[39m", _TOKEN2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -150,7 +150,7 @@ int checkMove(int collums) {
|
||||||
|
|
||||||
void insertMove(int pos, int turn) {
|
void insertMove(int pos, int turn) {
|
||||||
printf("playing %d in %d\n", (turn == 0) ? PLAYER1 : PLAYER2, pos);
|
printf("playing %d in %d\n", (turn == 0) ? PLAYER1 : PLAYER2, pos);
|
||||||
_BOARD[pos] = (turn == 0) ? PLAYER2 : PLAYER1;
|
_BOARD[pos] = (turn == 0) ? PLAYER1 : PLAYER2;
|
||||||
}
|
}
|
||||||
|
|
||||||
int isValid(int pos) {
|
int isValid(int pos) {
|
||||||
|
|
Loading…
Reference in New Issue