Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace ConsoleApp1
- {
- class Program
- {
- static void Main(string[] args)
- {
- string[,] p = new string[3, 3];
- string X = "X "; // 2 metavlites gia to X kai to O, ta kena xreiazonte gia logous omorfias stin emfanish
- string O = "O ";
- bool hasLost = false; //bool gia th NIKH
- //arxikopiisi kai emfanisi tou pinaka tis trilizas
- Console.WriteLine("oi theseis gia tis sintetagmenes (x,y) tis trilizas exoun ws e3hs: " +"\n"); //ODIGIES XRHSHSSS
- for (int i = 0; i <= 2; i++)
- {
- for (int j = 0; j <= 2; j++)
- {
- p[i, j] = "_ ";
- Console.Write("({0},{1}): {2}", j, i, p[i, j]);
- if (j == 2)
- {
- Console.WriteLine("\n");
- }
- }
- }
- //while hasLost gia epianalipsi
- while (hasLost == false)
- {
- int x = 0;
- int y = 0;
- //prwtos paixtis paizei me coords
- Arxh1: // arxh gia thn goto pio katw, o logos einai input validation, outws wste o xrhsths na mhn valei: arithmo mikrotero tou 0 kai megalitero tou 2
- //kai epishs na mhn valei theseis tis trilizas oi opies exoun hdh paixtei diladi p[x, y] != "_ "
- Console.Write("X player choose coord x = ");
- x = int.Parse(Console.ReadLine());
- Console.Write("X player choose coord y = ");
- y = int.Parse(Console.ReadLine());
- Console.WriteLine("\n");
- if (x > 2 || x < 0 || y > 2 || y < 0 || p[y, x] != "_ ") // an isxyei ayto to if simenei oti o xrhsths evale lathos inputs eite malakia arithmo gia coords,
- // eite ta coords pou edwse einai hdh pegmena
- {
- for (int i = 0; i <= 2; i++) // h diplh for APLA ksanaemfanizei tin triliza prin tou pei oti ekane lathos
- {
- for (int j = 0; j <= 2; j++)
- {
- Console.Write(p[i, j]);
- if (j == 2)
- {
- Console.WriteLine("\n");
- }
- }
- }
- Console.WriteLine("invalid input choose again");
- goto Arxh1;
- }
- Console.Beep();
- p[y, x] = X; //pernwntas tin parapanw if exoume sigourepsei oti ta inputs einai swsta, kai vazoume X stin thesi pou diale3e o xrhsths
- //afou epe3e 3anaemfanizw kai paizei o allos
- for (int i = 0; i <= 2; i++)
- {
- for (int j = 0; j <= 2; j++)
- {
- Console.Write(p[i, j]);
- if (j == 2)
- {
- Console.WriteLine("\n");
- }
- }
- }
- // oles oi pithanes winnin conditions me sintetagmenes kai logic operators epishs prepei se kathe condition na poume oti einai diaforo tou ""kenou""
- // to leme ayto giati sthn arxh ths trilizas oles oi theseis einai to idio opote evgene oti 1o stoixeio = 2o = 3o kai teleiwne ekei
- // kathws evaza kai ta sxolia parathrhsa oti se kathe condition xreiazotan mono ena diaforo tou kenou alla anyways to afinw etsi twra
- if (((p[0, 0] == p[0, 1] && p[0, 1] == p[0, 2]) && p[0, 0] != "_ " && p[0, 1] != "_ " && p[0, 2] != "_ " ||
- (p[1, 0] == p[1, 1] && p[1, 1] == p[1, 2]) && p[1, 0] != "_ " && p[1, 1] != "_ " && p[1, 2] != "_ " ||
- (p[2, 0] == p[2, 1] && p[2, 1] == p[2, 2]) && p[2, 0] != "_ " && p[2, 1] != "_ " && p[2, 2] != "_ " ||
- (p[0, 0] == p[1, 0] && p[1, 0] == p[2, 0]) && p[0, 0] != "_ " && p[1, 0] != "_ " && p[2, 0] != "_ " ||
- (p[0, 1] == p[1, 1] && p[1, 1] == p[2, 1]) && p[0, 1] != "_ " && p[1, 1] != "_ " && p[2, 1] != "_ " ||
- (p[0, 2] == p[1, 2] && p[1, 2] == p[2, 2]) && p[0, 2] != "_ " && p[1, 2] != "_ " && p[2, 2] != "_ " ||
- (p[0, 0] == p[1, 1] && p[1, 1] == p[2, 2]) && p[0, 0] != "_ " && p[1, 1] != "_ " && p[2, 2] != "_ " ||
- (p[0, 2] == p[1, 1] && p[1, 1] == p[2, 0]) && p[0, 2] != "_ " && p[1, 1] != "_ " && p[2, 0] != "_ " ))
- {
- hasLost = true;
- Console.WriteLine("O X nikaei");
- break;
- }
- if (p[0, 0] != "_ " && //ayth h if einai stin periptwsh isopalias, ousiastika an oles oi theseis tou pinaka DEN einai kenes, einai isopalia
- p[0, 1] != "_ " && // parathrhsh, logo kanonwn h isopalia simvenei MONO afou pai3ei o 1os paikths, (logo twn 9 thesewn) opote o elegxos xreiazete mono edw
- p[0, 2] != "_ " &&
- p[1, 0] != "_ " &&
- p[1, 1] != "_ " &&
- p[1, 2] != "_ " &&
- p[2, 0] != "_ " &&
- p[2, 1] != "_ " &&
- p[2, 2] != "_ ")
- {
- hasLost = true;
- Console.WriteLine("Isopalia");
- break;
- }
- //deyteros paixtis paizei me coords
- Arxh2: //arxh gia thn GOTO pio katw panomiotipi me pio panw
- Console.Write("O player choose coord x = ");
- int c = int.Parse(Console.ReadLine());
- Console.Write("O player choose coord y = ");
- int v = int.Parse(Console.ReadLine());
- Console.WriteLine("\n");
- if (c > 2 || c < 0 || v > 2 || v < 0 || p[v, c] != "_ ")
- {
- for (int i = 0; i <= 2; i++)
- {
- for (int j = 0; j <= 2; j++)
- {
- Console.Write(p[i, j]);
- if (j == 2)
- {
- Console.WriteLine("\n");
- }
- }
- }
- Console.WriteLine("invalid input choose again");
- goto Arxh2;
- }
- Console.Beep();
- p[v, c] = O;
- //afou epe3e 3anaemfanizw
- for (int i = 0; i <= 2; i++)
- {
- for (int j = 0; j <= 2; j++)
- {
- Console.Write(p[i, j]);
- if (j == 2)
- {
- Console.WriteLine("\n");
- }
- }
- }
- // oles oi pithanes winnin conditions me sintetagmenes kai logic operators epishs prepei se kathe condition na poume oti einai diaforo tou ""kenou""
- // to leme ayto giati sthn arxh ths trilizas oles oi theseis einai to idio opote evgene oti 1o stoixeio = 2o = 3o kai teleiwne ekei
- // kathws evaza kai ta sxolia parathrhsa oti se kathe condition xreiazotan mono ena diaforo tou kenou alla anyways to afinw etsi twra
- if (((p[0, 0] == p[0, 1] && p[0, 1] == p[0, 2]) && p[0, 0] != "_ " && p[0, 1] != "_ " && p[0, 2] != "_ " ||
- (p[1, 0] == p[1, 1] && p[1, 1] == p[1, 2]) && p[1, 0] != "_ " && p[1, 1] != "_ " && p[1, 2] != "_ " ||
- (p[2, 0] == p[2, 1] && p[2, 1] == p[2, 2]) && p[2, 0] != "_ " && p[2, 1] != "_ " && p[2, 2] != "_ " ||
- (p[0, 0] == p[1, 0] && p[1, 0] == p[2, 0]) && p[0, 0] != "_ " && p[1, 0] != "_ " && p[2, 0] != "_ " ||
- (p[0, 1] == p[1, 1] && p[1, 1] == p[2, 1]) && p[0, 1] != "_ " && p[1, 1] != "_ " && p[2, 1] != "_ " ||
- (p[0, 2] == p[1, 2] && p[1, 2] == p[2, 2]) && p[0, 2] != "_ " && p[1, 2] != "_ " && p[2, 2] != "_ " ||
- (p[0, 0] == p[1, 1] && p[1, 1] == p[2, 2]) && p[0, 0] != "_ " && p[1, 1] != "_ " && p[2, 2] != "_ " ||
- (p[0, 2] == p[1, 1] && p[1, 1] == p[2, 0]) && p[0, 2] != "_ " && p[1, 1] != "_ " && p[2, 0] != "_ " ))
- {
- hasLost = true;
- Console.WriteLine("O O nikaei");
- break;
- }
- }//edw teliwnei h while
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement