Advertisement
mamades

triliza

Nov 22nd, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.03 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApp1
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             string[,] p = new string[3, 3];
  10.             string X = "X   ";                      // 2 metavlites gia to X kai to O, ta kena xreiazonte gia logous omorfias stin emfanish
  11.             string O = "O   ";
  12.             bool hasLost = false;             //bool gia th NIKH
  13.  
  14.             //arxikopiisi kai emfanisi tou pinaka tis trilizas
  15.  
  16.             Console.WriteLine("oi theseis gia tis sintetagmenes (x,y) tis trilizas exoun ws e3hs: " +"\n");                         //ODIGIES XRHSHSSS
  17.             for (int i = 0; i <= 2; i++)
  18.             {
  19.                 for (int j = 0; j <= 2; j++)
  20.                 {
  21.                     p[i, j] = "_   ";
  22.                     Console.Write("({0},{1}): {2}", j, i, p[i, j]);
  23.                     if (j == 2)
  24.                     {
  25.                         Console.WriteLine("\n");
  26.                     }
  27.                 }
  28.             }
  29.  
  30.             //while hasLost gia epianalipsi
  31.             while (hasLost == false)
  32.             {
  33.                 int x = 0;
  34.                 int y = 0;
  35.             //prwtos paixtis paizei me coords
  36.  
  37.             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      
  38.                     //kai epishs na mhn valei theseis tis trilizas oi opies exoun hdh paixtei diladi p[x, y] != "_   "
  39.  
  40.  
  41.                 Console.Write("X player choose coord x = ");
  42.                 x = int.Parse(Console.ReadLine());
  43.                 Console.Write("X player choose coord y = ");
  44.                 y = int.Parse(Console.ReadLine());
  45.                 Console.WriteLine("\n");
  46.                 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,
  47.                                                                             // eite ta coords pou edwse einai hdh pegmena
  48.                 {
  49.                     for (int i = 0; i <= 2; i++)                // h diplh for APLA ksanaemfanizei tin triliza prin tou pei oti ekane lathos
  50.                     {
  51.                         for (int j = 0; j <= 2; j++)
  52.                         {
  53.  
  54.                             Console.Write(p[i, j]);
  55.  
  56.                             if (j == 2)
  57.                             {
  58.                                 Console.WriteLine("\n");
  59.                             }
  60.                         }
  61.                     }
  62.                     Console.WriteLine("invalid input choose again");
  63.                     goto Arxh1;
  64.                 }
  65.                 Console.Beep();
  66.                 p[y, x] = X;                    //pernwntas tin parapanw if exoume sigourepsei oti ta inputs einai swsta, kai vazoume X stin thesi pou diale3e o xrhsths
  67.  
  68.  
  69.  
  70.                 //afou epe3e 3anaemfanizw kai paizei o allos
  71.                 for (int i = 0; i <= 2; i++)
  72.                 {
  73.                     for (int j = 0; j <= 2; j++)
  74.                     {
  75.  
  76.                         Console.Write(p[i, j]);
  77.  
  78.                         if (j == 2)
  79.                         {
  80.                             Console.WriteLine("\n");
  81.                         }
  82.                     }
  83.                 }
  84.                 // oles oi pithanes winnin conditions me sintetagmenes kai logic operators epishs prepei se kathe condition na poume oti einai diaforo tou ""kenou""
  85.                 // to leme ayto giati sthn arxh ths trilizas oles oi theseis einai to idio opote evgene oti 1o stoixeio = 2o = 3o kai teleiwne ekei
  86.                 // kathws evaza kai ta sxolia parathrhsa oti se kathe condition xreiazotan mono ena diaforo tou kenou alla anyways to afinw etsi twra
  87.  
  88.                 if (((p[0, 0] == p[0, 1] && p[0, 1] == p[0, 2]) && p[0, 0] != "_   " && p[0, 1] != "_   " && p[0, 2] != "_   " ||
  89.                      (p[1, 0] == p[1, 1] && p[1, 1] == p[1, 2]) && p[1, 0] != "_   " && p[1, 1] != "_   " && p[1, 2] != "_   " ||
  90.                      (p[2, 0] == p[2, 1] && p[2, 1] == p[2, 2]) && p[2, 0] != "_   " && p[2, 1] != "_   " && p[2, 2] != "_   " ||
  91.                      (p[0, 0] == p[1, 0] && p[1, 0] == p[2, 0]) && p[0, 0] != "_   " && p[1, 0] != "_   " && p[2, 0] != "_   " ||
  92.                      (p[0, 1] == p[1, 1] && p[1, 1] == p[2, 1]) && p[0, 1] != "_   " && p[1, 1] != "_   " && p[2, 1] != "_   " ||
  93.                      (p[0, 2] == p[1, 2] && p[1, 2] == p[2, 2]) && p[0, 2] != "_   " && p[1, 2] != "_   " && p[2, 2] != "_   " ||
  94.                      (p[0, 0] == p[1, 1] && p[1, 1] == p[2, 2]) && p[0, 0] != "_   " && p[1, 1] != "_   " && p[2, 2] != "_   " ||
  95.                      (p[0, 2] == p[1, 1] && p[1, 1] == p[2, 0]) && p[0, 2] != "_   " && p[1, 1] != "_   " && p[2, 0] != "_   " ))
  96.  
  97.                 {
  98.                     hasLost = true;
  99.                     Console.WriteLine("O X nikaei");
  100.                     break;
  101.                 }
  102.                 if (p[0, 0] != "_   " &&                            //ayth h if einai stin periptwsh isopalias, ousiastika an oles oi theseis tou pinaka DEN einai kenes, einai isopalia
  103.                     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
  104.                     p[0, 2] != "_   " &&
  105.                     p[1, 0] != "_   " &&
  106.                     p[1, 1] != "_   " &&
  107.                     p[1, 2] != "_   " &&
  108.                     p[2, 0] != "_   " &&
  109.                     p[2, 1] != "_   " &&
  110.                     p[2, 2] != "_   ")
  111.                 {
  112.                     hasLost = true;
  113.                     Console.WriteLine("Isopalia");
  114.                     break;
  115.                 }
  116.  
  117.  
  118.  
  119.  
  120.             //deyteros paixtis paizei me coords
  121.  
  122.             Arxh2:                                              //arxh gia thn GOTO pio katw panomiotipi me pio panw
  123.                 Console.Write("O player choose coord x = ");
  124.                 int c = int.Parse(Console.ReadLine());
  125.                 Console.Write("O player choose coord y = ");
  126.                 int v = int.Parse(Console.ReadLine());
  127.                 Console.WriteLine("\n");
  128.                 if (c > 2 || c < 0 || v > 2 || v < 0 || p[v, c] != "_   ")
  129.                 {
  130.                     for (int i = 0; i <= 2; i++)
  131.                     {
  132.                         for (int j = 0; j <= 2; j++)
  133.                         {
  134.  
  135.                             Console.Write(p[i, j]);
  136.  
  137.                             if (j == 2)
  138.                             {
  139.                                 Console.WriteLine("\n");
  140.                             }
  141.                         }
  142.                     }
  143.                     Console.WriteLine("invalid input choose again");
  144.                     goto Arxh2;
  145.                 }
  146.                 Console.Beep();
  147.                 p[v, c] = O;
  148.  
  149.                 //afou epe3e 3anaemfanizw
  150.                 for (int i = 0; i <= 2; i++)
  151.                 {
  152.                     for (int j = 0; j <= 2; j++)
  153.                     {
  154.                         Console.Write(p[i, j]);
  155.  
  156.                         if (j == 2)
  157.                         {
  158.                             Console.WriteLine("\n");
  159.                         }
  160.                     }
  161.                 }
  162.                 // oles oi pithanes winnin conditions me sintetagmenes kai logic operators epishs prepei se kathe condition na poume oti einai diaforo tou ""kenou""
  163.                 // to leme ayto giati sthn arxh ths trilizas oles oi theseis einai to idio opote evgene oti 1o stoixeio = 2o = 3o kai teleiwne ekei
  164.                 // kathws evaza kai ta sxolia parathrhsa oti se kathe condition xreiazotan mono ena diaforo tou kenou alla anyways to afinw etsi twra
  165.  
  166.                 if (((p[0, 0] == p[0, 1] && p[0, 1] == p[0, 2]) && p[0, 0] != "_   " && p[0, 1] != "_   " && p[0, 2] != "_   " ||
  167.                      (p[1, 0] == p[1, 1] && p[1, 1] == p[1, 2]) && p[1, 0] != "_   " && p[1, 1] != "_   " && p[1, 2] != "_   " ||
  168.                      (p[2, 0] == p[2, 1] && p[2, 1] == p[2, 2]) && p[2, 0] != "_   " && p[2, 1] != "_   " && p[2, 2] != "_   " ||
  169.                      (p[0, 0] == p[1, 0] && p[1, 0] == p[2, 0]) && p[0, 0] != "_   " && p[1, 0] != "_   " && p[2, 0] != "_   " ||
  170.                      (p[0, 1] == p[1, 1] && p[1, 1] == p[2, 1]) && p[0, 1] != "_   " && p[1, 1] != "_   " && p[2, 1] != "_   " ||
  171.                      (p[0, 2] == p[1, 2] && p[1, 2] == p[2, 2]) && p[0, 2] != "_   " && p[1, 2] != "_   " && p[2, 2] != "_   " ||
  172.                      (p[0, 0] == p[1, 1] && p[1, 1] == p[2, 2]) && p[0, 0] != "_   " && p[1, 1] != "_   " && p[2, 2] != "_   " ||
  173.                      (p[0, 2] == p[1, 1] && p[1, 1] == p[2, 0]) && p[0, 2] != "_   " && p[1, 1] != "_   " && p[2, 0] != "_   " ))
  174.                 {
  175.                     hasLost = true;
  176.                     Console.WriteLine("O O nikaei");
  177.                     break;
  178.                 }
  179.             }//edw teliwnei h while
  180.             Console.ReadLine();
  181.         }
  182.     }
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement