commit
This commit is contained in:
parent
4168ada3e2
commit
4c6e50dfc2
6
TODO.txt
6
TODO.txt
|
@ -5,10 +5,8 @@
|
||||||
- al momomento i client non sanno ancora le dimensioni del campo (le hanno ricevute ma non settate)
|
- al momomento i client non sanno ancora le dimensioni del campo (le hanno ricevute ma non settate)
|
||||||
(in realta non so perche funzioni la checkwin al momento)
|
(in realta non so perche funzioni la checkwin al momento)
|
||||||
|
|
||||||
- sistemare se usare printfServer/Client
|
|
||||||
|
|
||||||
- ho messo input del server globale, alcune funzioni non ne usufruiscono ancora (tip shm);
|
- ho messo input del server globale, alcune funzioni non ne usufruiscono ancora (tip shm);
|
||||||
|
|
||||||
- printfServer mette \n all'inizio quindi non stampa lultima riga al momento
|
- define per i semafori invece di usare 1/-1
|
||||||
|
|
||||||
- ho fatto le define per i semafori invece di usare 1/-1
|
- ctrl+c con time
|
|
@ -159,7 +159,7 @@ int main(int argc, char *argv[]){
|
||||||
int pos;
|
int pos;
|
||||||
do {
|
do {
|
||||||
scanf("%d", &move.move);
|
scanf("%d", &move.move);
|
||||||
move.move = checkMove(boardClient, move.move);
|
move.move = checkMove(boardClient, move.move - 1);
|
||||||
} while (move.move == -1);
|
} while (move.move == -1);
|
||||||
|
|
||||||
// mando mossa al server
|
// mando mossa al server
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include <custom_sig.h>
|
#include <custom_sig.h>
|
||||||
|
|
||||||
int main(int argc, char *argv[]){
|
int main(int argc, char *argv[]){
|
||||||
printf("Il mio pid per killarmi: %d\n", getpid()); //TMP
|
printf("Il mio pid per killarmi: %d\n", getpid()); //FIXME: TMP
|
||||||
|
|
||||||
// CHECK_INPUT
|
// CHECK_INPUT
|
||||||
_INPUT_S = check_input(argc, argv);
|
_INPUT_S = check_input(argc, argv);
|
||||||
|
|
|
@ -19,8 +19,6 @@ void setupServerSem() {
|
||||||
}
|
}
|
||||||
|
|
||||||
resetServerSem(_SEMID);
|
resetServerSem(_SEMID);
|
||||||
|
|
||||||
printf("%d\n", _SEMID);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void semOp(int semid, short sem_num, short sem_op) {
|
void semOp(int semid, short sem_num, short sem_op) {
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include <custom_shm.h>
|
#include <custom_shm.h>
|
||||||
|
|
||||||
#include <errExit.h>
|
#include <errExit.h>
|
||||||
|
#include <forza4.h>
|
||||||
|
|
||||||
int _SHMID;
|
int _SHMID;
|
||||||
|
|
||||||
|
@ -17,21 +18,25 @@ int getShmid(int row, int col) {
|
||||||
}
|
}
|
||||||
|
|
||||||
tile_t * shmServerAt(int shmid) {
|
tile_t * shmServerAt(int shmid) {
|
||||||
tile_t *result = (tile_t *)shmat(shmid, NULL, 0);
|
tile_t *board = (tile_t *)shmat(shmid, NULL, 0);
|
||||||
if (result == SHMERR) {
|
if (board == SHMERR) {
|
||||||
errExit("shmat", "shmServerAt");
|
errExit("shmat", "shmServerAt");
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
for (int i=0; i < _ROWS * _COLLUMS; i++) {
|
||||||
|
board[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return board;
|
||||||
}
|
}
|
||||||
|
|
||||||
tile_t * shmClientAt(int shmid) {
|
tile_t * shmClientAt(int shmid) {
|
||||||
tile_t *result = (tile_t *)shmat(shmid, NULL, SHM_RDONLY);
|
tile_t *board = (tile_t *)shmat(shmid, NULL, SHM_RDONLY);
|
||||||
if (result == SHMERR) {
|
if (board == SHMERR) {
|
||||||
errExit("shmat", "shmClientAt");
|
errExit("shmat", "shmClientAt");
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return board;
|
||||||
}
|
}
|
||||||
|
|
||||||
void shmDt(void *shm_ptr) {
|
void shmDt(void *shm_ptr) {
|
||||||
|
|
|
@ -67,7 +67,7 @@ void sigHandlerServer(int sig) {
|
||||||
// msgq
|
// msgq
|
||||||
if (_MSGQID) {
|
if (_MSGQID) {
|
||||||
printf(PSERVER "Deleting msg\n");
|
printf(PSERVER "Deleting msg\n");
|
||||||
if (msgctl(_MSGQID, IPC_RMID, NULL) == -1) { //TODO: funzione
|
if (msgctl(_MSGQID, IPC_RMID, NULL) == -1) { //TODO: funzioni
|
||||||
errExit("msgctl", "sigHandlerServer");
|
errExit("msgctl", "sigHandlerServer");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
22
src/forza4.c
22
src/forza4.c
|
@ -82,22 +82,18 @@ int checkWinAll(tile_t *board){
|
||||||
|
|
||||||
void printBoard(tile_t *board) {
|
void printBoard(tile_t *board) {
|
||||||
for (int i=0; i < _ROWS; i++) {
|
for (int i=0; i < _ROWS; i++) {
|
||||||
|
printf("|");
|
||||||
for (int j=0; j < _COLLUMS; j++) {
|
for (int j=0; j < _COLLUMS; j++) {
|
||||||
|
printf(" ");
|
||||||
printTile(board[getIndex(i, j)]);
|
printTile(board[getIndex(i, j)]);
|
||||||
if (j != _COLLUMS - 1) {
|
printf(" ");
|
||||||
printf(" | ");
|
|
||||||
} else {
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int j=0; i != _ROWS - 1 && j < _COLLUMS - 1; j++) {
|
|
||||||
printf("----");
|
|
||||||
}
|
|
||||||
if (i < _ROWS - 1) {
|
|
||||||
printf("---\n");
|
|
||||||
}
|
}
|
||||||
|
printf("|\n");
|
||||||
}
|
}
|
||||||
|
for (int i=0; i<_ROWS; i++) {
|
||||||
|
printf("--");
|
||||||
|
}
|
||||||
|
printf("------\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void printTile(tile_t t) {
|
void printTile(tile_t t) {
|
||||||
|
@ -118,7 +114,7 @@ void printTile(tile_t t) {
|
||||||
// gli si passa la colona partendo da 1
|
// gli si passa la colona partendo da 1
|
||||||
// se
|
// se
|
||||||
int checkMove(tile_t *board, int collums) {
|
int checkMove(tile_t *board, int collums) {
|
||||||
if (collums <= 0 || collums > _COLLUMS) {
|
if (collums < 0 || collums >= _COLLUMS) {
|
||||||
char buf[100];
|
char buf[100];
|
||||||
sprintf(buf, "the collums must be between 1 and %d", _COLLUMS);
|
sprintf(buf, "the collums must be between 1 and %d", _COLLUMS);
|
||||||
warningMsg(buf);
|
warningMsg(buf);
|
||||||
|
|
Loading…
Reference in New Issue