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); }
//écrit un message et l'envoie public void write <T>(T tmp) where T : new () { byte[] message = wifi.getBytes <T>(tmp); wifi.getNetworkStream().Write(message, 0, message.Length); }
//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); }