#include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> #include <sys/wait.h> #include <sys/shm.h> #include <sys/msg.h> #include <signal.h> #include <time.h> //numero massimo di giocatori e //quindi di celle nella coda #define MAX 100 //permessi sulle risorse IPC: con 666 //ogni utente puo' leggere o scrivere #define PERMESSI 0666 //chiave per i semafori #define CHIAVE 1024 //chiave per la memoria condivisa #define KEYSHM 2048 //chiave per i semafori MUTEX #define KEYMTX 4096 //chiave per la coda di messaggi #define KEYCODA 8192 //definizione dei tipi utilizzati typedef enum {VERO = 1,FALSO = 0} bool; typedef struct { int sem_id; int punti; int pid; } data; typedef data notes[MAX]; typedef data smallnotes[2]; typedef struct { bool visitato; int punti; }casella; typedef struct { int mesg_len; long mesg_type; char mesg_data[MAX]; } sms; typedef casella matrice[MAX][MAX];