Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Tictactoe
- {
- class Program
- {
- static void Main()
- {
- int[] lines = new int[8];
- for (int i = 0; i < lines.GetLength(0); i++) lines[i] = 0;
- bool myTore = true;
- string[,] theGame = new string[3, 3];
- for (int i = 0; i < theGame.GetLength(0); i++)
- {
- for (int p = 0; p < theGame.GetLength(1); p++)
- {
- if (p == 0) theGame[i, p] = "| |";
- else theGame[i, p] = " |";
- }
- }
- showthegame(theGame);
- while (GetTheEmptyColumns(theGame) > 0)
- {
- System.ConsoleKeyInfo pKey = Console.ReadKey(true);
- for (int i = 1; i <= 9; i++)
- {
- if (pKey.Key.ToString() == "NumPad" + i && myTore)
- {
- int row = (i == 1 || i == 2 || i == 3) ? (2) : ((i == 4 || i == 5 || i == 6) ? (1) : (0));
- int column = (row == 0) ? (i - 7) : ((row == 1) ? (i - 4) : (i - 1));
- if ((theGame[row, column] == "| |" || theGame[row, column] == " |") && myTore)
- {
- theGame[row, column] = (column == 0) ? ("|X|") : ("X|");
- changeLines(lines, row, column);
- myTore = false;
- showthegame(theGame);
- if (getWinner(theGame) == 1) Console.WriteLine("the winner is USER!");
- else
- {
- System.Threading.Thread.Sleep(2000);
- PCchoose(theGame,lines);
- myTore = true;
- }
- }
- }
- }
- }
- }
- public static void showthegame(string[,] var)
- {
- Console.Clear();
- for (int i = 0; i < var.GetLength(0); i++)
- {
- for (int p = 0; p < var.GetLength(1); p++)
- {
- Console.Write(var[i, p]);
- }
- Console.WriteLine("");
- Console.WriteLine("");
- }
- }
- public static int GetTheEmptyColumns(string[,] var)
- {
- int empty = 0;
- for (int i = 0; i < var.GetLength(0); i++)
- {
- for (int p = 0; p < var.GetLength(1); p++)
- {
- if (var[i, p] == "| |" || var[i, p] == " |") empty++;
- }
- }
- return empty;
- }
- public static int getWinner(string[,] var)
- {
- int winner = 0;
- if ((var[0, 0] == "|X|" || var[0, 0] == "X|") && (var[1, 0] == "|X|" || var[1, 0] == "X|") && (var[2, 0] == "|X|" || var[2, 0] == "X|")) winner = 1;
- else if ((var[0, 1] == "|X|" || var[0, 1] == "X|") && (var[1, 1] == "|X|" || var[1, 1] == "X|") && (var[2, 1] == "|X|" || var[2, 1] == "X|")) winner = 1;
- else if ((var[0, 2] == "|X|" || var[0, 2] == "X|") && (var[1, 2] == "|X|" || var[1, 2] == "X|") && (var[2, 2] == "|X|" || var[2, 2] == "X|")) winner = 1;
- else if ((var[0, 0] == "|X|" || var[0, 0] == "X|") && (var[0, 1] == "|X|" || var[0, 1] == "X|") && (var[0, 2] == "|X|" || var[0, 2] == "X|")) winner = 1;
- else if ((var[1, 0] == "|X|" || var[1, 0] == "X|") && (var[1, 1] == "|X|" || var[1, 1] == "X|") && (var[1, 2] == "|X|" || var[1, 2] == "X|")) winner = 1;
- else if ((var[2, 0] == "|X|" || var[2, 0] == "X|") && (var[2, 1] == "|X|" || var[2, 1] == "X|") && (var[2, 2] == "|X|" || var[2, 2] == "X|")) winner = 1;
- else if ((var[0, 2] == "|X|" || var[0, 2] == "X|") && (var[1, 1] == "|X|" || var[1, 1] == "X|") && (var[2, 0] == "|X|" || var[2, 0] == "X|")) winner = 1;
- else if ((var[0, 0] == "|X|" || var[0, 0] == "X|") && (var[1, 1] == "|X|" || var[1, 1] == "X|") && (var[2, 2] == "|X|" || var[2, 2] == "X|")) winner = 1;
- else if ((var[0, 0] == "|O|" || var[0, 0] == "O|") && (var[1, 0] == "|O|" || var[1, 0] == "O|") && (var[2, 0] == "|O|" || var[2, 0] == "O|")) winner = 2;
- else if ((var[0, 1] == "|O|" || var[0, 1] == "O|") && (var[1, 1] == "|O|" || var[1, 1] == "O|") && (var[2, 1] == "|O|" || var[2, 1] == "O|")) winner = 2;
- else if ((var[0, 2] == "|O|" || var[0, 2] == "O|") && (var[1, 2] == "|O|" || var[1, 2] == "O|") && (var[2, 2] == "|O|" || var[2, 2] == "O|")) winner = 2;
- else if ((var[0, 0] == "|O|" || var[0, 0] == "O|") && (var[0, 1] == "|O|" || var[0, 1] == "O|") && (var[0, 2] == "|O|" || var[0, 2] == "O|")) winner = 2;
- else if ((var[1, 0] == "|O|" || var[1, 0] == "O|") && (var[1, 1] == "|O|" || var[1, 1] == "O|") && (var[1, 2] == "|O|" || var[1, 2] == "O|")) winner = 2;
- else if ((var[2, 0] == "|O|" || var[2, 0] == "O|") && (var[2, 1] == "|O|" || var[2, 1] == "O|") && (var[2, 2] == "|O|" || var[2, 2] == "O|")) winner = 2;
- else if ((var[0, 2] == "|O|" || var[0, 2] == "O|") && (var[1, 1] == "|O|" || var[1, 1] == "O|") && (var[2, 0] == "|O|" || var[2, 0] == "O|")) winner = 2;
- else if ((var[0, 0] == "|O|" || var[0, 0] == "O|") && (var[1, 1] == "|O|" || var[1, 1] == "O|") && (var[2, 2] == "|O|" || var[2, 2] == "O|")) winner = 2;
- return winner;
- }
- public static void PCchoose(string[,] var,int[] lines)
- {
- int column = 0;
- int row = 0;
- bool finded = false;
- for (int i = 0; i < lines.GetLength(0); i++)
- {
- if (lines[i] == -2 && !finded)
- {
- if (i == 0)
- {
- row = (var[0, 0] == "| |" || var[0, 0] == " |") ? (0) : ((var[1, 0] == "| |" || var[1, 0] == " |") ? (1) : (2));
- column = 0;
- }
- if (i == 1)
- {
- row = (var[0, 1] == "| |" || var[0, 1] == " |") ? (0) : ((var[1, 1] == "| |" || var[1, 1] == " |") ? (1) : (2));
- column = 1;
- }
- if (i == 2)
- {
- row = (var[0, 2] == "| |" || var[0, 2] == " |") ? (0) : ((var[1, 2] == "| |" || var[1, 2] == " |") ? (1) : (2));
- column = 2;
- }
- if (i == 3)
- {
- row = 0;
- column = (var[0, 0] == "| |" || var[0, 0] == " |") ? (0) : ((var[0, 1] == "| |" || var[0, 1] == " |") ? (1) : (2));
- }
- if (i == 4)
- {
- row = 1;
- column = (var[1, 0] == "| |" || var[1, 0] == " |") ? (0) : ((var[1, 1] == "| |" || var[1, 1] == " |") ? (1) : (2));
- }
- if (i == 5)
- {
- row = 2;
- column = (var[2, 0] == "| |" || var[2, 0] == " |") ? (0) : ((var[2, 1] == "| |" || var[2, 1] == " |") ? (1) : (2));
- }
- if (i == 6)
- {
- row = (var[0, 0] == "| |" || var[0, 0] == " |") ? (0) : ((var[1, 1] == "| |" || var[1, 1] == " |") ? (1) : (2));
- column = row;
- }
- if (i == 7)
- {
- row = (var[0, 2] == "| |" || var[0, 2] == " |") ? (0) : ((var[1, 1] == "| |" || var[1, 1] == " |") ? (1) : (2));
- column = (row == 0) ? (2) : ((row == 1) ? (1) : (2));
- }
- finded = true;
- }
- }
- if (!finded)
- {
- for(int i = 0; i < lines.GetLength(0); i++)
- {
- if (lines[i] == 2 && !finded)
- {
- if (i == 0)
- {
- row = (var[0, 0] == "| |" || var[0, 0] == " |") ? (0) : ((var[1, 0] == "| |" || var[1, 0] == " |") ? (1) : (2));
- column = 0;
- }
- if (i == 1)
- {
- row = (var[0, 1] == "| |" || var[0, 1] == " |") ? (0) : ((var[1, 1] == "| |" || var[1, 1] == " |") ? (1) : (2));
- column = 1;
- }
- if (i == 2)
- {
- row = (var[0, 2] == "| |" || var[0, 2] == " |") ? (0) : ((var[1, 2] == "| |" || var[1, 2] == " |") ? (1) : (2));
- column = 2;
- }
- if (i == 3)
- {
- row = 0;
- column = (var[0, 0] == "| |" || var[0, 0] == " |") ? (0) : ((var[0, 1] == "| |" || var[0, 1] == " |") ? (1) : (2));
- }
- if (i == 4)
- {
- row = 1;
- column = (var[1, 0] == "| |" || var[1, 0] == " |") ? (0) : ((var[1, 1] == "| |" || var[1, 1] == " |") ? (1) : (2));
- }
- if (i == 5)
- {
- row = 2;
- column = (var[2, 0] == "| |" || var[2, 0] == " |") ? (0) : ((var[2, 1] == "| |" || var[2, 1] == " |") ? (1) : (2));
- }
- if (i == 6)
- {
- row = (var[0, 0] == "| |" || var[0, 0] == " |") ? (0) : ((var[1, 1] == "| |" || var[1, 1] == " |") ? (1) : (2));
- column = row;
- }
- if (i == 7)
- {
- row = (var[0, 2] == "| |" || var[0, 2] == " |") ? (0) : ((var[1, 1] == "| |" || var[1, 1] == " |") ? (1) : (2));
- column = (row == 0) ? (2) : ((row == 1) ? (1) : (2));
- }
- finded = true;
- }
- }
- if (!finded)
- {
- do
- {
- Random rand = new Random();
- column = rand.Next(0, 3);
- row = rand.Next(0, 3);
- }
- while (var[row, column] != "| |" && var[row, column] != " |");
- }
- }
- var[row, column] = (column == 0) ? ("|O|") : ("O|");
- showthegame(var);
- if (getWinner(var) == 2) Console.WriteLine("the PC is the winner!");
- else PCchangeLines(lines, row, column);
- }
- public static void changeLines(int[] var, int row, int column)
- {
- if ((row == 0 && column == 0) || (row == 1 && column == 0) || (row == 2 && column == 0)) var[0]++;
- if ((row == 0 && column == 1) || (row == 1 && column == 1) || (row == 2 && column == 1)) var[1]++;
- if ((row == 0 && column == 2) || (row == 1 && column == 2) || (row == 2 && column == 2)) var[2]++;
- if ((row == 0 && column == 0) || (row == 0 && column == 1) || (row == 0 && column == 2)) var[3]++;
- if ((row == 1 && column == 0) || (row == 1 && column == 1) || (row == 1 && column == 2)) var[4]++;
- if ((row == 2 && column == 0) || (row == 2 && column == 1) || (row == 2 && column == 2)) var[5]++;
- if ((row == 0 && column == 0) || (row == 1 && column == 1) || (row == 2 && column == 2)) var[6]++;
- if ((row == 0 && column == 2) || (row == 1 && column == 1) || (row == 2 && column == 0)) var[7]++;
- }
- public static void PCchangeLines(int[] var, int row, int column)
- {
- if ((row == 0 && column == 0) || (row == 1 && column == 0) || (row == 2 && column == 0)) var[0]--;
- if ((row == 0 && column == 1) || (row == 1 && column == 1) || (row == 2 && column == 1)) var[1]--;
- if ((row == 0 && column == 2) || (row == 1 && column == 2) || (row == 2 && column == 2)) var[2]--;
- if ((row == 0 && column == 0) || (row == 0 && column == 1) || (row == 0 && column == 2)) var[3]--;
- if ((row == 1 && column == 0) || (row == 1 && column == 1) || (row == 1 && column == 2)) var[4]--;
- if ((row == 2 && column == 0) || (row == 2 && column == 1) || (row == 2 && column == 2)) var[5]--;
- if ((row == 0 && column == 0) || (row == 1 && column == 1) || (row == 2 && column == 2)) var[6]--;
- if ((row == 0 && column == 2) || (row == 1 && column == 1) || (row == 2 && column == 0)) var[7]--;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment