////////////////////////?????????????????? private static void dobor_kart() { string temp = "добор"; string temp1 = "добор"; if (vse1.Count == 0 && KOZIR1 != null) { vse1.Add(KOZIR1); KOZIR1 = null; } if (vse1.Count > 0) { for (int i = player1.Count; i < 6; ++i) { int nomerkarti = rand.Next(0, vse1.Count);//??? может быть надо count-1 player1.Add(vse1[nomerkarti]); vse1.Remove(vse1[nomerkarti]); temp += "#" + player1[i].dost + "#" + player1[i].mast; } } if (vse1.Count > 0) { for (int i = player2.Count; i < 6; ++i) { int nomerkarti = rand.Next(0, vse1.Count); player2.Add(vse1[nomerkarti]); vse1.Remove(vse1[nomerkarti]); temp1 += "#" + player2[i].dost + "#" + player2[i].mast; } } if (vse1.Count == 0) { if (player1.Count == 0) { writer1.WriteLine("выйграл игрок 1"); writer.WriteLine("выйграл игрок 1"); game = false; } if (player2.Count == 0) { writer1.WriteLine("выйграл игрок 2"); writer.WriteLine("выйграл игрок 2"); game = false; } } if (game) { //if(temp1.IndexOf("#")!=-1) writer1.WriteLine(temp1); //if (temp.IndexOf("#") != -1) writer.WriteLine(temp); } }
static void Main(string[] args) { bool hodPlayer1 = true; bool attack = true; Console.WriteLine(@"1ip("") 2port("")"); string ip1 = Console.ReadLine(); if (ip1 == "") { ip1 = "192.168.1.64"; } string portTemp; portTemp = Console.ReadLine(); port = portTemp == "" ? 12345 : Convert.ToInt32(portTemp); TcpListener listener = new TcpListener(new IPEndPoint(IPAddress.Parse(ip1), port)); listener.Start(); TcpClient server = listener.AcceptTcpClient(); server.ReceiveTimeout = 50; reader = new StreamReader(server.GetStream()); writer = new StreamWriter(server.GetStream()); Console.WriteLine("1 подключился"); // reader.ReadLine(); writer.AutoFlush = true; writer.WriteLine("имя#1"); TcpClient server1 = listener.AcceptTcpClient(); server1.ReceiveTimeout = 50; reader1 = new StreamReader(server1.GetStream()); writer1 = new StreamWriter(server1.GetStream()); // reader.ReadLine(); writer1.AutoFlush = true; Console.WriteLine("2 подключился"); writer1.WriteLine("имя#2"); for (int i = 0; i < 4; ++i) { for (int o = 0; o < 9; ++o) { vse1.Add(new karta(o, i)); } } int kozirInt = rand.Next(0, 36); KOZIR = vse1[kozirInt].mast; writer1.WriteLine("козырь" + "#" + vse1[kozirInt].dost + "#" + KOZIR); writer.WriteLine("козырь" + "#" + vse1[kozirInt].dost + "#" + KOZIR); KOZIR1 = new karta(vse1[kozirInt].dost, KOZIR); vse1.Remove(vse1[kozirInt]); dobor_kart(); while (game)//досчитать кто победил отстановка цикла кнопки типо взять карты и тд { //writer.WriteLine("111111#111"); string tekkarta = ""; if (hodPlayer1) { tekkarta = read(); } else { tekkarta = read1(); } string[] tempmass = tekkarta.Split('#'); switch (tempmass[0]) { // case "имя": // break; case "закончить": //сейчас просто перемещает все в отбой и добирает до 6 карт добавить взятие в руки если не отбито до того что есть otboi.AddRange(centr); centr.Clear(); dobor_kart(); attack = attack == true ? false : true; // writer.WriteLine("закончить"); // writer1.WriteLine("закончить"); hodPlayer1 = hodPlayer1 == true ? false : true; break; case "карта_в_центр": //сравнивает только с верхней картой без нескольких и отправляет закинута ли карта в центр или нет karta tekkarta1 = new karta(Convert.ToInt32(tempmass[1]), Convert.ToInt32(tempmass[2])); if (!centr.Contains(tekkarta1)) { bool zakid = false; if (centr.Count == 0) { zakid = true; } else { if (centr.Count % 2 == 0) { for (int i = 0; i < centr.Count; ++i) { if (centr[i].dost == tekkarta1.dost) { zakid = true; } } } else { if ((centr[centr.Count - 1].dost < tekkarta1.dost && centr[centr.Count - 1].mast == tekkarta1.mast) || (tekkarta1.mast == KOZIR && centr[centr.Count - 1].mast != KOZIR)) { zakid = true; } } } if (zakid) { //attack = attack == true ? false : true;///////////////////////// centr.Add(tekkarta1); if (hodPlayer1) { player1.Remove(tekkarta1); int a = player1.Count; writer.WriteLine("помещено в центр" + "#" + tekkarta1.dost + "#" + tekkarta1.mast); writer1.WriteLine("помещено в центр" + "#" + tekkarta1.dost + "#" + tekkarta1.mast); } else { player2.Remove(tekkarta1); int a = player2.Count; writer1.WriteLine("помещено в центр" + "#" + tekkarta1.dost + "#" + tekkarta1.mast); writer.WriteLine("помещено в центр" + "#" + tekkarta1.dost + "#" + tekkarta1.mast); } hodPlayer1 = hodPlayer1 == true ? false : true; } else { // if (hodPlayer1) //{ //player1.Remove(tekkarta1); writer.WriteLine("не помещено в центр"); // } //else //{ //player2.Remove(tekkarta1); writer1.WriteLine("не помещено в центр"); //} } } break; case "взять": string temp = "взять"; foreach (karta i in centr) { temp += "#" + i.dost + "#" + i.mast; } if (hodPlayer1) { player1.AddRange(centr); writer1.WriteLine("взять"); writer.WriteLine(temp); } else { player2.AddRange(centr); writer.WriteLine("взять"); writer1.WriteLine(temp); } dobor_kart(); centr.Clear(); break; default: writer.WriteLine(""); writer1.WriteLine(""); break; } } }