#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];