Advertisement
luk_per

kołko i krzyżyk

Mar 23rd, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.14 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication26
  8. {
  9.     public class Program
  10.     {
  11.  
  12.  
  13.         public enum Ruch
  14.         {
  15.             Kolko,
  16.             Krzyzyk,
  17.             Brak,
  18.         }
  19.  
  20.         public enum Gracz
  21.         {
  22.             Kolko,
  23.             Krzyzyk,
  24.         }
  25.  
  26.         public enum RezultatGry
  27.         {
  28.             Remis,
  29.             Nierozstrzygnieta,
  30.             WygrywaKolko,
  31.             WygrywaKrzyzyk,
  32.         }
  33.  
  34.         public class Plansza
  35.         {
  36.             Ruch[] Tab = new Ruch[9];
  37.  
  38.  
  39.             public bool ZaznaczRuch(int x, int y, Ruch Znak)
  40.             {
  41.                 int Wspol = (x + (3 *(y - 1)) - 1);
  42.                 if (Tab[Wspol] == Ruch.Brak)
  43.                 {
  44.                     Tab[Wspol] = Znak;
  45.                     return true;
  46.                 }
  47.                 else
  48.                     return false;
  49.  
  50.  
  51.             }
  52.  
  53.             /*public string ToString()
  54.             {
  55.                 string Wynik = string.Empty;
  56.                 for (int i = 1; i < 9; i++)
  57.                 {
  58.                     switch (Tab[i - 1])
  59.                     {
  60.                         case (Ruch.Brak):
  61.                             Wynik = ".";
  62.                             break;
  63.                         case (Ruch.Kolko):
  64.                             Wynik = "O";
  65.                             break;
  66.                         case (Ruch.Krzyzyk):
  67.                             Wynik = "X";
  68.                             break;
  69.                         default:
  70.                             break;
  71.                     }
  72.                     if (i % 3 == 0)
  73.                         Console.WriteLine();
  74.                     return (Wynik);
  75.                 }
  76.                 return " ";
  77.             }*/
  78.  
  79.             public void ToString()
  80.             {
  81.                 for (int i = 0; i < 9; i++)
  82.                 {
  83.                     if (i % 3 == 0) Console.WriteLine();
  84.  
  85.                     if (Tab[i] == Ruch.Kolko) Console.Write("O");
  86.                     if (Tab[i] == Ruch.Krzyzyk) Console.Write("X");
  87.                     if (Tab[i] == Ruch.Brak) Console.Write(".");
  88.  
  89.                 }
  90.                 Console.Write("\n\n");
  91.             }
  92.  
  93.  
  94.             public RezultatGry SprawdzRezultat()
  95.             {
  96.                 for (int i = 0; i <= 6; i += 3)
  97.                 {
  98.                     if (Tab[i] == Ruch.Kolko && Tab[i + 1] == Ruch.Kolko && Tab[i + 2] == Ruch.Kolko) { return (RezultatGry.WygrywaKolko); }
  99.                     if (Tab[i] == Ruch.Krzyzyk && Tab[i + 1] == Ruch.Krzyzyk && Tab[i + 2] == Ruch.Krzyzyk) { return (RezultatGry.WygrywaKrzyzyk); }
  100.                 }
  101.  
  102.                 for (int i = 0; i <= 2; i += 3)
  103.                 {
  104.                     if (Tab[i] == Ruch.Kolko && Tab[i + 3] == Ruch.Kolko && Tab[i + 6] == Ruch.Kolko) { return (RezultatGry.WygrywaKolko); }
  105.                     if (Tab[i] == Ruch.Krzyzyk && Tab[i + 3] == Ruch.Krzyzyk && Tab[i + 6] == Ruch.Krzyzyk) { return (RezultatGry.WygrywaKrzyzyk); }
  106.                 }
  107.  
  108.                 if (Tab[0] == Ruch.Kolko && Tab[4] == Ruch.Kolko && Tab[8] == Ruch.Kolko) { return (RezultatGry.WygrywaKolko); }
  109.                 if (Tab[2] == Ruch.Krzyzyk && Tab[4] == Ruch.Krzyzyk && Tab[6] == Ruch.Krzyzyk) { return (RezultatGry.WygrywaKrzyzyk); }
  110.  
  111.                 return (RezultatGry.Nierozstrzygnieta);
  112.  
  113.             }
  114.  
  115.             public static Gracz ZmienGracza(Gracz AktualnyGracz)
  116.             {
  117.                 if (AktualnyGracz == Gracz.Kolko)
  118.                     return Gracz.Krzyzyk;
  119.                 else
  120.                     return Gracz.Kolko;
  121.             }
  122.             public void Czyszczenie()
  123.             {
  124.                 for (int i = 0; i < 9; i++)
  125.                 {
  126.                     Tab[i] = Ruch.Brak;
  127.                 }
  128.             }
  129.  
  130.            
  131.  
  132.         }
  133.  
  134.  
  135.         static void Main(string[] args)
  136.         {
  137.  
  138.             int KtoZaczyna;
  139.             int x, y;
  140.             Gracz Zawodnik;
  141.             Console.WriteLine("Kto ma zaczynać: Kolko(0) Krzyzyk(1)");
  142.             KtoZaczyna = int.Parse(Console.ReadLine());
  143.             Plansza NowaPlansza = new Plansza();
  144.             NowaPlansza.Czyszczenie();
  145.             if (KtoZaczyna == 0) { Zawodnik = Gracz.Kolko; }
  146.             else { Zawodnik = Gracz.Krzyzyk; }
  147.             //NowaPlansza.ToString();
  148.  
  149.             for (int i = 0; i < 9; i++)
  150.             {
  151.                 NowaPlansza.ToString();
  152.                 Console.Write("Podaj współrzedną x: ");
  153.                 x = int.Parse(Console.ReadLine());
  154.                 Console.Write("Podaj współrzędną y: ");
  155.                 y = int.Parse(Console.ReadLine());
  156.                 if (Zawodnik == Gracz.Kolko)
  157.                     if (NowaPlansza.ZaznaczRuch(x, y, Ruch.Kolko)==false)
  158.                     {
  159.                         Console.WriteLine("To pole jest zajęte. Wybierz inne.");
  160.                     }
  161.                 if (Zawodnik == Gracz.Krzyzyk) NowaPlansza.ZaznaczRuch(x, y, Ruch.Krzyzyk);
  162.                 Zawodnik = Plansza.ZmienGracza(Zawodnik);
  163.  
  164.  
  165.             }
  166.         }
  167.     }
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement