Beispiel #1
0
        public T getStruct <T>(int size) where T : new()
        {
            byte[] bytes     = new byte[size];
            int    bytesRead = link.getNetworkStream().Read(bytes, 0, bytes.Length);

            return(ConnectWork.fromBytes <T>(bytes));
        }
Beispiel #2
0
        public int round_victory(ConnectWork link)
        {
            roundVictory vic = new roundVictory();

            vic = getStruct <roundVictory>(Marshal.SizeOf(vic));
            Console.WriteLine("le gagnant de cette mache est le joueur " + vic.playerId + " avec un(e) " + (Type)vic.type + " de " + (Couleur)vic.color);
            return(0);
        }
Beispiel #3
0
        public int RepConnection(ConnectWork link) //1
        {
            info str = new info();

            str = getStruct <info>(Marshal.SizeOf(str));
            _ID = str.id;
            Console.WriteLine("Vous etes le joueur " + str.id);
            return(0);
        }
Beispiel #4
0
        public int readHeader(ConnectWork link) //0
        {
            Header str = new Header();

            str = getStruct <Header>(Marshal.SizeOf(str));
            //   Console.WriteLine("id_command = " + str.id_command);

            return(str.id_command);
        }
Beispiel #5
0
        public int print_victory(ConnectWork link)
        {
            victory str = new victory();

            str = getStruct <victory>(Marshal.SizeOf(str));
            Console.WriteLine("l'équipe gagnante est l'équipe n° " + str.team);
            Console.WriteLine("elle gagne avec " + str.score + " points");
            return(0);
        }
Beispiel #6
0
        public T read <T>() where T : new ()
        {
            T tmp = new T();

            byte[] bytes     = new byte[Marshal.SizeOf(tmp)];
            int    bytesRead = wifi.getNetworkStream().Read(bytes, 0, bytes.Length);

            tmp = ConnectWork.fromBytes <T>(bytes);
            return(tmp);
        }
Beispiel #7
0
        public int AskCard(ConnectWork link)
        {
            askcontrat str = new askcontrat();
            deck       deck;
            played     pile;
            responce   res = new responce();
            string     saisie;
            bool       turn   = true;
            int        i      = 0;
            int        numval = 0;

            str  = getStruct <askcontrat>(Marshal.SizeOf(str));
            deck = str.deck;
            pile = str.contrats_pile;
            if (str.turn == _ID)
            {
                Console.WriteLine("les cartes déjà jouer sont :");
                for (int j = 0; j < 4; j++)
                {
                    if (pile.value[j] != -1)
                    {
                        Console.WriteLine("la " + j + " em carte est un(e) " + (Type)pile.ids[j] + " de " + (Couleur)pile.couleur[j] + " qui vaut " + pile.value[j]);
                    }
                }
                while (turn == true)
                {
                    Console.WriteLine("Votre deck est composé de :");
                    i = print_deck(deck);
                    Console.WriteLine("veulliez saisir l'index de la carte que vous voulez jouer");
                    saisie = Console.ReadLine();
                    if (saisie != "")
                    {
                        numval = Convert.ToInt32(saisie);
                        if (numval < i && numval >= 0)
                        {
                            turn = false;
                        }
                    }
                }
                res.value   = numval;
                res.couleur = -1;
                byte[] message = link.getBytes <responce>(res);
                link.getNetworkStream().Write(message, 0, message.Length);
            }
            return(0);
        }
Beispiel #8
0
        //public unsafe struct askcontrat //2 //3
        public int AskContract(ConnectWork link)
        {
            bool     turn     = true;
            int      stronger = 0;
            responce res      = new responce();
            // Console.WriteLine("AskContract");
            played     tmp;
            deck       deck;
            askcontrat str = new askcontrat();
            string     saisie;
            int        numval = 0;

            str = getStruct <askcontrat>(Marshal.SizeOf(str));
            //Console.WriteLine("turn = " + str.turn);
            tmp         = str.contrats_pile;
            deck        = str.deck;
            res.couleur = -1;
            res.value   = -1;
            for (int i = 0; i < 4; i++)
            {
                if (tmp.ids[i] != -1)
                {
                    if (tmp.value[i] > stronger)
                    {
                        stronger = tmp.value[i];
                    }
                    Console.WriteLine("le joueur " + tmp.ids[i] + " a fait un contrat de " + tmp.value[i] + " de la couleur " + (Couleur)tmp.couleur[i]);
                }
            }
            if (str.turn == _ID)
            {
                Console.WriteLine("A vous de proposer un contrat");
                Console.WriteLine("Votre deck est composé de :");
                print_deck(deck);
                while (turn == true)
                {
                    Console.WriteLine("veuillez saisir le montant du contrat (il doit valoir 0 ou être suppérieur au plus haut des contrats, ce dernier vaut : " + stronger);
                    saisie = Console.ReadLine();
                    if (saisie != "")
                    {
                        numval = Convert.ToInt32(saisie);
                        if (numval == 0 || numval > stronger)
                        {
                            turn = false;
                        }
                    }
                }
                res.value = numval;
                turn      = true;
                while (turn == true)
                {
                    Console.WriteLine("veuillez la couleur du contrat: 0 -> carreau, 1 -> trèfle, 2 -> Pick, 3 -> Coeur");
                    saisie = Console.ReadLine();
                    if (saisie != "")
                    {
                        numval = Convert.ToInt32(saisie);
                        if (numval <= 3 && numval >= 0)
                        {
                            turn = false;
                        }
                    }
                }
                res.couleur = numval;
            }
            if (res.couleur != -1 && res.value != -1)
            {
                byte[] message = link.getBytes <responce>(res);
                link.getNetworkStream().Write(message, 0, message.Length);
            }
            return(0);
        }