Advertisement
giganciprogramowania

Lekcja 13. Kółko i krzyżyk

Mar 15th, 2022
563
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.88 KB | None | 0 0
  1. namespace OX
  2. {
  3.     public partial class Form1 : Form
  4.     {
  5.         //zmienne ktore tu są, będą widoczne we wszystkich metodach w tej klasie
  6.         private bool czyj_ruch = true; //true to X, false to O
  7.  
  8.  
  9.         public Form1()
  10.         {
  11.             InitializeComponent();
  12.         }
  13.  
  14.         private void WstawZnak(object przycisk)
  15.         {
  16.             Button wcisnietyPrzycisk = (Button)przycisk;
  17.             //tłumaczymy, że sender to obiekt,który został wciśnięty, musimy go zrzutować
  18.             //na typ Button(przycisk), aby mozna było ustawić mu znak i ew. wyłączyć
  19.  
  20.             if (czyj_ruch)
  21.             {
  22.                 wcisnietyPrzycisk.Text = "X";
  23.             }
  24.             else
  25.             {
  26.                 wcisnietyPrzycisk.Text = "O";
  27.             }
  28.  
  29.             wcisnietyPrzycisk.Enabled = false;
  30.  
  31.             bool wynik = SprawdzCzyKtosWygral();
  32.             if (wynik == true)
  33.             {
  34.                 string tekstWygranej;
  35.                 if (czyj_ruch == true)
  36.                 {
  37.                     tekstWygranej = "Wygrał Gracz X! Rozpocząć jeszcze raz?";
  38.                 }
  39.                 else
  40.                 {
  41.                     tekstWygranej = "Wygrał Gracz O! Rozpocząć jeszcze raz?";
  42.                 }
  43.  
  44.                 //Sprawdzamy, czy gracze chcą kontynuować czy nie
  45.                 DialogResult odpowiedz = MessageBox.Show(
  46.                     tekstWygranej,
  47.                     "Wygrana",
  48.                     MessageBoxButtons.YesNo);
  49.  
  50.                 if (odpowiedz == DialogResult.No)
  51.                 {
  52.                     WylaczWszystkiePrzyciski();
  53.                 }
  54.                 else
  55.                 {
  56.                     WlaczWszystkiePrzyciskiIResetuj();
  57.                 }
  58.             }
  59.  
  60.             czyj_ruch = !czyj_ruch; //zmieniamy z true na false i z false na true, zmieniemay aktualnego gracza
  61.             if (czyj_ruch == true)
  62.             {
  63.                 lblCzyjRuch.Text = "X";
  64.             }
  65.             else
  66.             {
  67.                 lblCzyjRuch.Text = "O";
  68.             }
  69.  
  70.         }
  71.  
  72.         private void WlaczWszystkiePrzyciskiIResetuj()
  73.         {
  74.             btn1.Enabled = true;
  75.             btn2.Enabled = true;
  76.             btn3.Enabled = true;
  77.             btn4.Enabled = true;
  78.             btn5.Enabled = true;
  79.             btn6.Enabled = true;
  80.             btn7.Enabled = true;
  81.             btn8.Enabled = true;
  82.             btn9.Enabled = true;
  83.             btn1.Text = "";
  84.             btn2.Text = "";
  85.             btn3.Text = "";
  86.             btn4.Text = "";
  87.             btn5.Text = "";
  88.             btn6.Text = "";
  89.             btn7.Text = "";
  90.             btn8.Text = "";
  91.             btn9.Text = "";
  92.         }
  93.  
  94.         private void WylaczWszystkiePrzyciski()
  95.         {
  96.             btn1.Enabled = false;
  97.             btn2.Enabled = false;
  98.             btn3.Enabled = false;
  99.             btn4.Enabled = false;
  100.             btn5.Enabled = false;
  101.             btn6.Enabled = false;
  102.             btn7.Enabled = false;
  103.             btn8.Enabled = false;
  104.             btn9.Enabled = false;
  105.         }
  106.  
  107.         private bool SprawdzCzyKtosWygral()
  108.         {
  109.             //Winning Condition For First Row  
  110.             if (btn1.Text == btn2.Text && btn2.Text == btn3.Text && btn1.Text != "")
  111.             //wystarszy sprawdzić tylko jeden, czy nie jest pusty
  112.             {
  113.                 return true;
  114.             }
  115.             //Winning Condition For Second Row  
  116.             else if (btn4.Text == btn5.Text && btn5.Text == btn6.Text && btn4.Text != "")
  117.             {
  118.                 return true;
  119.             }
  120.             //Winning Condition For Third Row  
  121.             else if (btn7.Text == btn8.Text && btn8.Text == btn9.Text && btn7.Text != "")
  122.             {
  123.                 return true;
  124.             }
  125.             //Winning Condition For First Column      
  126.             else if (btn1.Text == btn4.Text && btn4.Text == btn7.Text && btn1.Text != "")
  127.             {
  128.                 return true;
  129.             }
  130.             //Winning Condition For Second Column  
  131.             else if (btn2.Text == btn5.Text && btn5.Text == btn8.Text && btn2.Text != "")
  132.             {
  133.                 return true;
  134.             }
  135.             //Winning Condition For Third Column  
  136.             else if (btn3.Text == btn6.Text && btn6.Text == btn9.Text && btn3.Text != "")
  137.             {
  138.                 return true;
  139.             }
  140.             else if (btn1.Text == btn5.Text && btn5.Text == btn9.Text && btn1.Text != "")
  141.             {
  142.                 return true;
  143.             }
  144.             //Winning Condition For Third Column  
  145.             else if (btn3.Text == btn5.Text && btn5.Text == btn7.Text && btn3.Text != "")
  146.             {
  147.                 return true;
  148.             }
  149.             else
  150.             {
  151.                 return false;
  152.             }
  153.         }
  154.  
  155.         private void btn1_Click(object sender, EventArgs e)
  156.         {
  157.             WstawZnak(sender);
  158.         }
  159.  
  160.         private void btn2_Click(object sender, EventArgs e)
  161.         {
  162.             WstawZnak(sender);
  163.         }
  164.  
  165.         private void btn3_Click(object sender, EventArgs e)
  166.         {
  167.             WstawZnak(sender);
  168.         }
  169.  
  170.         private void btn4_Click(object sender, EventArgs e)
  171.         {
  172.             WstawZnak(sender);
  173.         }
  174.  
  175.         private void btn5_Click(object sender, EventArgs e)
  176.         {
  177.             WstawZnak(sender);
  178.         }
  179.  
  180.         private void btn6_Click(object sender, EventArgs e)
  181.         {
  182.             WstawZnak(sender);
  183.         }
  184.  
  185.         private void btn7_Click(object sender, EventArgs e)
  186.         {
  187.             WstawZnak(sender);
  188.         }
  189.  
  190.         private void btn8_Click(object sender, EventArgs e)
  191.         {
  192.             WstawZnak(sender);
  193.         }
  194.  
  195.         private void btn9_Click(object sender, EventArgs e)
  196.         {
  197.             WstawZnak(sender);
  198.         }
  199.     }
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement