#include "campo.h"

main(int argc, char **argv)
{
        int semaforo;
        int mutex;
        int coda;
        int numgiocatori;
        char arg_gioc[3];
        int shm_id;
        matrice* campo;

        if (argc > 1)
        {
        if (atoi(argv[1]) == 0)
        {
                delsem(creasem(CHIAVE,1));
                delsem(creasem(KEYMTX,1));
                delshm(shm_id = creashm(KEYSHM, sizeof(matrice)));
                delcoda(creacoda(KEYCODA));
        }
        else if (atoi(argv[1]) == 1)
                {
                if (((semaforo=creasem(CHIAVE,1)) != -1)&&
                    ((mutex=creasem(KEYMTX,1)) != -1)&&
                    ((coda=creacoda(KEYCODA))!= -1))
                        {
                        initsem(semaforo,2);
                        initsem(mutex,1);
                        printf("\n Quanti giocatori? ");
                        scanf("%s",arg_gioc);

                        if ((shm_id = creashm(KEYSHM, sizeof(matrice))) != -1)
                                if ((campo = (matrice *)attachshm(shm_id)) != (matrice *) -1)
                                        {
                                                inizializzacampo(campo,atoi(arg_gioc));
                                                stampacampo(campo,atoi(arg_gioc));
                                                deattachshm(campo);
                                        }
                        }
                        if (execl("2ngiocatori","2ngiocatori",arg_gioc,NULL) == -1) printf("\n Errore lancio programma 2ngiocatori\n");
                        }
                else printf("\n\nParametro errato, deve essere 0 o 1\n");
                }
                else printf("\n\nManca il parametro (0 oppure 1)\n");
        }