public static void SelectMenuJoin() { Console.Clear(); Display.WriteCyan(centerX - 20, centerY - 5, "Welcome to TicTacToe Network Version!"); Display.WriteGreen(Console.WindowWidth - 17, Console.WindowHeight - 1, "By Danger_boy21"); Display.WriteYellow(menuX - 5, menuY, "IP Address: " + IP); Display.WriteWhite(menuX - 5, menuY + 2, "Port number: " + Port); Display.WriteWhite(menuX - 5, menuY + 4, "Start"); Display.WriteWhite(menuX - 5, menuY + 8, "Back"); int index = 0; while (true) { ClearKeyBuffer(); ConsoleKeyInfo keyInfo = Console.ReadKey(true); if (keyInfo.Key == ConsoleKey.UpArrow) { if (index - 1 == 0) { index--; Display.WriteYellow(menuX - 5, menuY, "IP Address: " + IP); Display.WriteWhite(menuX - 5, menuY + 2, "Port number: " + Port); Display.WriteWhite(menuX - 5, menuY + 4, "Start"); Display.WriteWhite(menuX - 5, menuY + 8, "Back"); } else if (index - 1 == 1) { index--; Display.WriteWhite(menuX - 5, menuY, "IP Address: " + IP); Display.WriteYellow(menuX - 5, menuY + 2, "Port number: " + Port); Display.WriteWhite(menuX - 5, menuY + 4, "Start"); Display.WriteWhite(menuX - 5, menuY + 8, "Back"); } else if (index - 1 == 2) { index--; Display.WriteWhite(menuX - 5, menuY, "IP Address: " + IP); Display.WriteWhite(menuX - 5, menuY + 2, "Port number: " + Port); Display.WriteYellow(menuX - 5, menuY + 4, "Start"); Display.WriteWhite(menuX - 5, menuY + 8, "Back"); } } if (keyInfo.Key == ConsoleKey.DownArrow) { if (index + 1 == 3) { index++; Display.WriteWhite(menuX - 5, menuY, "IP Address: " + IP); Display.WriteWhite(menuX - 5, menuY + 2, "Port number: " + Port); Display.WriteWhite(menuX - 5, menuY + 4, "Start"); Display.WriteYellow(menuX - 5, menuY + 8, "Back"); } else if (index + 1 == 1) { index++; Display.WriteWhite(menuX - 5, menuY, "IP Address: " + IP); Display.WriteYellow(menuX - 5, menuY + 2, "Port number: " + Port); Display.WriteWhite(menuX - 5, menuY + 4, "Start"); Display.WriteWhite(menuX - 5, menuY + 8, "Back"); } else if (index + 1 == 2) { index++; Display.WriteWhite(menuX - 5, menuY, "IP Address: " + IP); Display.WriteWhite(menuX - 5, menuY + 2, "Port number: " + Port); Display.WriteYellow(menuX - 5, menuY + 4, "Start"); Display.WriteWhite(menuX - 5, menuY + 8, "Back"); } } else if (keyInfo.Key == ConsoleKey.Enter) { if (index == 1) { Port = 0; Display.WriteYellow(menuX - 5, menuY + 2, "Port number: "); Console.SetCursorPosition(menuX + 8, menuY + 2); try { Port = int.Parse(Console.ReadLine()); Display.WriteYellow(menuX - 5, menuY + 2, "Port number: " + Port); } catch (Exception e) { Display.WriteYellow(menuX - 5, menuY + 2, "Port number: " + "0 "); } } if (index == 2) { JoinGame jg = new JoinGame(); jg.Network(IP, Port); Game.first = " "; Game.second = " "; Game.third = " "; Game.fourth = " "; Game.fifth = " "; Game.sixth = " "; Game.seventh = " "; Game.eight = " "; Game.nineth = " "; Display.WriteCyan(centerX - 20, centerY - 5, "Welcome to TicTacToe Network Version!"); JoinGame.exit = false; JoinGame.txtME = " "; JoinGame.Winner = ""; Display.WriteGreen(Console.WindowWidth - 17, Console.WindowHeight - 1, "By Danger_boy21"); Display.WriteWhite(menuX - 5, menuY, "IP Address: " + IP); Display.WriteWhite(menuX - 5, menuY + 2, "Port number: " + Port); Display.WriteYellow(menuX - 5, menuY + 4, "Start"); Display.WriteWhite(menuX - 5, menuY + 8, "Back"); JoinGame.exit = false; } if (index == 0) { Display.WriteWhite(menuX - 5, menuY, "IP Address: "); Console.SetCursorPosition(menuX + 7, menuY); IP = Console.ReadLine(); Display.WriteYellow(menuX - 5, menuY, "IP Address: " + IP); } if (index == 3) { Console.Clear(); Display.WriteYellow(menuX, menuY + 1, "Join"); Display.WriteWhite(menuX, menuY + 3, "Host"); Display.WriteWhite(menuX, menuY + 5, "Back"); Display.WriteCyan(centerX - 20, centerY - 5, "Welcome to TicTacToe Network Version!"); Display.WriteGreen(Console.WindowWidth - 17, Console.WindowHeight - 1, "By Danger_boy21"); break; } } } }
public void StartHost(int port) { TcpListener server = new TcpListener(port); TcpClient client = new TcpClient(); try { server.Start(); int i1 = 0; client = server.AcceptTcpClient(); NetworkStream str = client.GetStream(); if (client.Connected && i1 == 0) { Display.WriteCyan(centerX - 20, centerY - 5, "Welcome to TicTacToe Network Version!"); i1++; Console.Clear(); Game.Table(); } while (true) { if (JoinGame.CheckIfWin("X") == true) { Display.WriteYellow(menuX - 10, menuY + 6, " "); Display.WriteYellow(menuX, menuY + 6, "Back"); Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 3, " "); Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 3, "Winner: " + JoinGame.Winner); while (true) { Program.ClearKeyBuffer(); ConsoleKeyInfo keyInfo = Console.ReadKey(true); if (keyInfo.Key == ConsoleKey.Enter) { Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 4, " "); server.Stop(); client.Close(); Console.Clear(); return; } } } if (JoinGame.CheckIfWin("O") == true) { Display.WriteYellow(menuX - 10, menuY + 6, " "); Display.WriteYellow(menuX, menuY + 6, "Back"); Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 3, " "); Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 3, "Winner: " + JoinGame.Winner); while (true) { Program.ClearKeyBuffer(); ConsoleKeyInfo keyInfo = Console.ReadKey(true); if (keyInfo.Key == ConsoleKey.Enter) { Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 4, " "); server.Stop(); client.Close(); Console.Clear(); return; } } } string text = ""; byte[] receiveBuffer = new byte[999]; byte[] sendData = new byte[999]; Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 4, " "); Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 4, "Other player turn: "); string msg; str.Read(receiveBuffer, 0, receiveBuffer.Length); msg = Encoding.ASCII.GetString(receiveBuffer, 0, receiveBuffer.Length); if (msg.Contains("1 1")) { Game.first = "O"; } if (msg.Contains("1 2")) { Game.second = "O"; } if (msg.Contains("1 3")) { Game.third = "O"; } if (msg.Contains("2 1")) { Game.fourth = "O"; } if (msg.Contains("2 2")) { Game.fifth = "O"; } if (msg.Contains("2 3")) { Game.sixth = "O"; } if (msg.Contains("3 1")) { Game.seventh = "O"; } if (msg.Contains("3 2")) { Game.eight = "O"; } if (msg.Contains("3 3")) { Game.nineth = "O"; } Game.Table(); for (int i = 0; i < receiveBuffer.Length; i++) { receiveBuffer[i] = 0; } if (JoinGame.CheckIfWin("X") == true) { Display.WriteYellow(menuX - 10, menuY + 6, " "); Display.WriteYellow(menuX, menuY + 6, "Back"); Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 3, " "); Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 3, "Winner: " + JoinGame.Winner); while (true) { Program.ClearKeyBuffer(); ConsoleKeyInfo keyInfo = Console.ReadKey(true); if (keyInfo.Key == ConsoleKey.Enter) { Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 4, " "); server.Stop(); client.Close(); Console.Clear(); return; } } } if (JoinGame.CheckIfWin("O") == true) { Display.WriteYellow(menuX - 10, menuY + 6, " "); Display.WriteYellow(menuX, menuY + 6, "Back"); Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 3, " "); Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 3, "Winner: " + JoinGame.Winner); Display.WriteYellow(menuX - 10, menuY + 5, " "); while (true) { Program.ClearKeyBuffer(); ConsoleKeyInfo keyInfo = Console.ReadKey(true); if (keyInfo.Key == ConsoleKey.Enter) { Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 4, " "); server.Stop(); client.Close(); Console.Clear(); return; } } } Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 4, " "); Display.WriteRed(Console.WindowWidth / 2 - 15, Console.WindowHeight / 2 + 4, "Your turn:"); Game.Start(); sendData = Encoding.ASCII.GetBytes(JoinGame.txtME); Game.Table(); str.Write(sendData, 0, sendData.Length); Game.ex = true; } } catch (SocketException e) { Console.Clear(); Display.WriteCyan(centerX - 20, centerY - 5, " Server already exist..."); Display.WriteYellow(menuX - 10, menuY + 6, " "); Display.WriteYellow(menuX, menuY + 6, "Back"); while (true) { Program.ClearKeyBuffer(); ConsoleKeyInfo keyInfo = Console.ReadKey(true); if (keyInfo.Key == ConsoleKey.Enter) { Console.Clear(); break;; } } } catch (Exception e) { Console.Clear(); Display.WriteCyan(centerX - 20, centerY - 5, " No player avaible..."); Display.WriteYellow(menuX - 10, menuY + 6, " "); Display.WriteYellow(menuX, menuY + 6, "Back"); while (true) { Program.ClearKeyBuffer(); ConsoleKeyInfo keyInfo = Console.ReadKey(true); if (keyInfo.Key == ConsoleKey.Enter) { Console.Clear(); break;; } } server.Stop(); client.Close(); } }