diff --git a/App.config b/App.config
new file mode 100644
index 0000000..193aecc
--- /dev/null
+++ b/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Form1.Designer.cs b/Form1.Designer.cs
new file mode 100644
index 0000000..091e013
--- /dev/null
+++ b/Form1.Designer.cs
@@ -0,0 +1,332 @@
+namespace WindowsFormsApp8
+{
+ partial class Form1
+ {
+ ///
+ /// Обязательная переменная конструктора.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Освободить все используемые ресурсы.
+ ///
+ /// истинно, если управляемый ресурс должен быть удален; иначе ложно.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Код, автоматически созданный конструктором форм Windows
+
+ ///
+ /// Требуемый метод для поддержки конструктора — не изменяйте
+ /// содержимое этого метода с помощью редактора кода.
+ ///
+ private void InitializeComponent()
+ {
+ this.A1 = new System.Windows.Forms.Button();
+ this.A2 = new System.Windows.Forms.Button();
+ this.A3 = new System.Windows.Forms.Button();
+ this.B1 = new System.Windows.Forms.Button();
+ this.B2 = new System.Windows.Forms.Button();
+ this.B3 = new System.Windows.Forms.Button();
+ this.C1 = new System.Windows.Forms.Button();
+ this.C2 = new System.Windows.Forms.Button();
+ this.C3 = new System.Windows.Forms.Button();
+ this.menuStrip1 = new System.Windows.Forms.MenuStrip();
+ this.файлToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.новаяИграToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.выходToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.сброситьОчкиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.помощьToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.оПрограммеToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.label6 = new System.Windows.Forms.Label();
+ this.изменитьИгроковToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.menuStrip1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // A1
+ //
+ this.A1.Location = new System.Drawing.Point(11, 26);
+ this.A1.Name = "A1";
+ this.A1.Size = new System.Drawing.Size(60, 60);
+ this.A1.TabIndex = 0;
+ this.A1.UseVisualStyleBackColor = true;
+ this.A1.Click += new System.EventHandler(this.A1_Click);
+ this.A1.MouseEnter += new System.EventHandler(this.A1_MouseEnter);
+ this.A1.MouseLeave += new System.EventHandler(this.A1_MouseLeave);
+ //
+ // A2
+ //
+ this.A2.Location = new System.Drawing.Point(77, 26);
+ this.A2.Name = "A2";
+ this.A2.Size = new System.Drawing.Size(60, 60);
+ this.A2.TabIndex = 1;
+ this.A2.UseVisualStyleBackColor = true;
+ this.A2.Click += new System.EventHandler(this.A1_Click);
+ this.A2.MouseEnter += new System.EventHandler(this.A1_MouseEnter);
+ this.A2.MouseLeave += new System.EventHandler(this.A1_MouseLeave);
+ //
+ // A3
+ //
+ this.A3.Location = new System.Drawing.Point(143, 26);
+ this.A3.Name = "A3";
+ this.A3.Size = new System.Drawing.Size(60, 60);
+ this.A3.TabIndex = 2;
+ this.A3.UseVisualStyleBackColor = true;
+ this.A3.Click += new System.EventHandler(this.A1_Click);
+ this.A3.MouseEnter += new System.EventHandler(this.A1_MouseEnter);
+ this.A3.MouseLeave += new System.EventHandler(this.A1_MouseLeave);
+ //
+ // B1
+ //
+ this.B1.Location = new System.Drawing.Point(11, 92);
+ this.B1.Name = "B1";
+ this.B1.Size = new System.Drawing.Size(60, 60);
+ this.B1.TabIndex = 3;
+ this.B1.UseVisualStyleBackColor = true;
+ this.B1.Click += new System.EventHandler(this.A1_Click);
+ this.B1.MouseEnter += new System.EventHandler(this.A1_MouseEnter);
+ this.B1.MouseLeave += new System.EventHandler(this.A1_MouseLeave);
+ //
+ // B2
+ //
+ this.B2.Location = new System.Drawing.Point(77, 92);
+ this.B2.Name = "B2";
+ this.B2.Size = new System.Drawing.Size(60, 60);
+ this.B2.TabIndex = 4;
+ this.B2.UseVisualStyleBackColor = true;
+ this.B2.Click += new System.EventHandler(this.A1_Click);
+ this.B2.MouseEnter += new System.EventHandler(this.A1_MouseEnter);
+ this.B2.MouseLeave += new System.EventHandler(this.A1_MouseLeave);
+ //
+ // B3
+ //
+ this.B3.Location = new System.Drawing.Point(143, 92);
+ this.B3.Name = "B3";
+ this.B3.Size = new System.Drawing.Size(60, 60);
+ this.B3.TabIndex = 5;
+ this.B3.UseVisualStyleBackColor = true;
+ this.B3.Click += new System.EventHandler(this.A1_Click);
+ this.B3.MouseEnter += new System.EventHandler(this.A1_MouseEnter);
+ this.B3.MouseLeave += new System.EventHandler(this.A1_MouseLeave);
+ //
+ // C1
+ //
+ this.C1.Location = new System.Drawing.Point(11, 158);
+ this.C1.Name = "C1";
+ this.C1.Size = new System.Drawing.Size(60, 60);
+ this.C1.TabIndex = 6;
+ this.C1.UseVisualStyleBackColor = true;
+ this.C1.Click += new System.EventHandler(this.A1_Click);
+ this.C1.MouseEnter += new System.EventHandler(this.A1_MouseEnter);
+ this.C1.MouseLeave += new System.EventHandler(this.A1_MouseLeave);
+ //
+ // C2
+ //
+ this.C2.Location = new System.Drawing.Point(77, 158);
+ this.C2.Name = "C2";
+ this.C2.Size = new System.Drawing.Size(60, 60);
+ this.C2.TabIndex = 7;
+ this.C2.UseVisualStyleBackColor = true;
+ this.C2.Click += new System.EventHandler(this.A1_Click);
+ this.C2.MouseEnter += new System.EventHandler(this.A1_MouseEnter);
+ this.C2.MouseLeave += new System.EventHandler(this.A1_MouseLeave);
+ //
+ // C3
+ //
+ this.C3.Location = new System.Drawing.Point(143, 158);
+ this.C3.Name = "C3";
+ this.C3.Size = new System.Drawing.Size(60, 60);
+ this.C3.TabIndex = 8;
+ this.C3.UseVisualStyleBackColor = true;
+ this.C3.Click += new System.EventHandler(this.A1_Click);
+ this.C3.MouseEnter += new System.EventHandler(this.A1_MouseEnter);
+ this.C3.MouseLeave += new System.EventHandler(this.A1_MouseLeave);
+ //
+ // menuStrip1
+ //
+ this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.файлToolStripMenuItem,
+ this.помощьToolStripMenuItem});
+ this.menuStrip1.Location = new System.Drawing.Point(0, 0);
+ this.menuStrip1.Name = "menuStrip1";
+ this.menuStrip1.Size = new System.Drawing.Size(215, 24);
+ this.menuStrip1.TabIndex = 9;
+ this.menuStrip1.Text = "menuStrip1";
+ //
+ // файлToolStripMenuItem
+ //
+ this.файлToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.новаяИграToolStripMenuItem,
+ this.выходToolStripMenuItem,
+ this.сброситьОчкиToolStripMenuItem,
+ this.изменитьИгроковToolStripMenuItem});
+ this.файлToolStripMenuItem.Name = "файлToolStripMenuItem";
+ this.файлToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
+ this.файлToolStripMenuItem.Text = "Файл";
+ //
+ // новаяИграToolStripMenuItem
+ //
+ this.новаяИграToolStripMenuItem.Name = "новаяИграToolStripMenuItem";
+ this.новаяИграToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.новаяИграToolStripMenuItem.Text = "Новая игра";
+ this.новаяИграToolStripMenuItem.Click += new System.EventHandler(this.новаяИграToolStripMenuItem_Click);
+ //
+ // выходToolStripMenuItem
+ //
+ this.выходToolStripMenuItem.Name = "выходToolStripMenuItem";
+ this.выходToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.выходToolStripMenuItem.Text = "Выход";
+ //
+ // сброситьОчкиToolStripMenuItem
+ //
+ this.сброситьОчкиToolStripMenuItem.Name = "сброситьОчкиToolStripMenuItem";
+ this.сброситьОчкиToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.сброситьОчкиToolStripMenuItem.Text = "Сбросить очки";
+ this.сброситьОчкиToolStripMenuItem.Click += new System.EventHandler(this.сброситьОчкиToolStripMenuItem_Click);
+ //
+ // помощьToolStripMenuItem
+ //
+ this.помощьToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.оПрограммеToolStripMenuItem});
+ this.помощьToolStripMenuItem.Name = "помощьToolStripMenuItem";
+ this.помощьToolStripMenuItem.Size = new System.Drawing.Size(68, 20);
+ this.помощьToolStripMenuItem.Text = "Помощь";
+ //
+ // оПрограммеToolStripMenuItem
+ //
+ this.оПрограммеToolStripMenuItem.Name = "оПрограммеToolStripMenuItem";
+ this.оПрограммеToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
+ this.оПрограммеToolStripMenuItem.Text = "О программе";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(10, 231);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(59, 13);
+ this.label1.TabIndex = 10;
+ this.label1.Text = "Х победил";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(145, 231);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(60, 13);
+ this.label2.TabIndex = 11;
+ this.label2.Text = "О победил";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(87, 231);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(38, 13);
+ this.label3.TabIndex = 12;
+ this.label3.Text = "Ничья";
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(34, 250);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(13, 13);
+ this.label4.TabIndex = 13;
+ this.label4.Text = "0";
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(100, 250);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(13, 13);
+ this.label5.TabIndex = 14;
+ this.label5.Text = "0";
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(169, 250);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(13, 13);
+ this.label6.TabIndex = 15;
+ this.label6.Text = "0";
+ //
+ // изменитьИгроковToolStripMenuItem
+ //
+ this.изменитьИгроковToolStripMenuItem.Name = "изменитьИгроковToolStripMenuItem";
+ this.изменитьИгроковToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.изменитьИгроковToolStripMenuItem.Text = "Изменить игроков";
+ this.изменитьИгроковToolStripMenuItem.Click += new System.EventHandler(this.изменитьИгроковToolStripMenuItem_Click);
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(215, 277);
+ this.Controls.Add(this.label6);
+ this.Controls.Add(this.label5);
+ this.Controls.Add(this.label4);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.C3);
+ this.Controls.Add(this.C2);
+ this.Controls.Add(this.C1);
+ this.Controls.Add(this.B3);
+ this.Controls.Add(this.B2);
+ this.Controls.Add(this.B1);
+ this.Controls.Add(this.A3);
+ this.Controls.Add(this.A2);
+ this.Controls.Add(this.A1);
+ this.Controls.Add(this.menuStrip1);
+ this.MainMenuStrip = this.menuStrip1;
+ this.Name = "Form1";
+ this.Text = "Form1";
+ this.Load += new System.EventHandler(this.Form1_Load);
+ this.menuStrip1.ResumeLayout(false);
+ this.menuStrip1.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button A1;
+ private System.Windows.Forms.Button A2;
+ private System.Windows.Forms.Button A3;
+ private System.Windows.Forms.Button B1;
+ private System.Windows.Forms.Button B2;
+ private System.Windows.Forms.Button B3;
+ private System.Windows.Forms.Button C1;
+ private System.Windows.Forms.Button C2;
+ private System.Windows.Forms.Button C3;
+ private System.Windows.Forms.MenuStrip menuStrip1;
+ private System.Windows.Forms.ToolStripMenuItem файлToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem помощьToolStripMenuItem;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.ToolStripMenuItem новаяИграToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem выходToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem сброситьОчкиToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem оПрограммеToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem изменитьИгроковToolStripMenuItem;
+ }
+}
+
diff --git a/Form1.cs b/Form1.cs
new file mode 100644
index 0000000..49453eb
--- /dev/null
+++ b/Form1.cs
@@ -0,0 +1,367 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Drawing.Text;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Web;
+using System.Windows.Forms;
+
+namespace WindowsFormsApp8
+{
+ public partial class Form1 : Form
+ {
+ public Form1()
+ {
+ InitializeComponent();
+ }
+
+ bool turn = true;
+ int turn_count;
+ static string player1, player2;
+ bool pc = false;
+
+ public static void setName(String n1, String n2)
+ {
+ player1= n1;
+ player2= n2;
+ }
+
+ private void A1_MouseEnter(object sender, EventArgs e)
+ {
+ Button b = (Button)sender;
+ if (turn)
+ {
+ b.Text = "X";
+ }
+ else
+ {
+ b.Text = "O";
+ }
+ }
+
+ private void A1_MouseLeave(object sender, EventArgs e)
+ {
+ Button b = (Button)sender;
+ if (b.Enabled == true)
+ b.Text = "";
+ }
+
+ private void A1_Click(object sender, EventArgs e)
+ {
+ Button b = (Button)sender;
+ turn_count++;
+ if (turn)
+ {
+ b.Text = "X";
+ b.Enabled = false;
+ turn = false;
+ Winner();
+ }
+ else
+ {
+ b.Text = "O";
+ b.Enabled = false;
+ turn = true;
+ Winner();
+ }
+ if (!turn && pc)
+ {
+ comp_move();
+ }
+ }
+
+ private void Enabled_b()
+ {
+ Button b = null;
+ foreach (Control c in Controls)
+ {
+ b = c as Button;
+ if (b != null)
+ {
+ b.Enabled = true;
+ b.Text = "";
+ }
+ }
+ }
+
+ private void Disable_b()
+ {
+ foreach (Control c in Controls)
+ {
+ if (c is Button b && b.Enabled)
+ {
+ b.Enabled = false;
+ }
+ }
+ }
+
+ private void Winner()
+ {
+ bool win = false;
+
+ if (A1.Text == A2.Text && A2.Text == A3.Text && A1.Enabled == false)
+ {
+ win= true;
+ }
+ if (B1.Text == B2.Text && B2.Text == B3.Text && B1.Enabled == false)
+ {
+ win = true;
+ }
+ if (C1.Text == C2.Text && C2.Text == C3.Text && C1.Enabled == false)
+ {
+ win = true;
+ }
+
+ if (A1.Text == B1.Text && B1.Text == C1.Text && A1.Enabled == false)
+ {
+ win = true;
+ }
+ if (A2.Text == B2.Text && B2.Text == C2.Text && A2.Enabled == false)
+ {
+ win = true;
+ }
+ if (A3.Text == B3.Text && B3.Text == C3.Text && A3.Enabled == false)
+ {
+ win = true;
+ }
+
+ if (A1.Text == B2.Text && B2.Text == C3.Text && A1.Enabled == false)
+ {
+ win = true;
+ }
+ if (A3.Text == B2.Text && B2.Text == C1.Text && A3.Enabled == false)
+ {
+ win = true;
+ }
+
+ if (win == true)
+ {
+ if (turn == false)
+ {
+ label4.Text = (int.Parse(label4.Text)+1).ToString();
+ MessageBox.Show("Победил Х");
+ Enabled_b();
+
+ turn_count = 0;
+ turn = true;
+ }
+ else
+ {
+ label6.Text = (int.Parse(label6.Text) + 1).ToString();
+ MessageBox.Show("Победил O");
+ Enabled_b();
+
+ turn_count = 0;
+ turn = true;
+ }
+ }
+ if (!win && turn_count == 9)
+ {
+ label5.Text = (int.Parse(label5.Text) + 1).ToString();
+ MessageBox.Show("Ничья");
+ Enabled_b();
+
+ turn_count = 0;
+ turn = true;
+ }
+ }
+
+ private void новаяИграToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Enabled_b();
+
+ turn_count = 0;
+ turn = true;
+ label4.Text = "0";
+ label5.Text = "0";
+ label6.Text = "0";
+ }
+
+ private void Form1_Load(object sender, EventArgs e)
+ {
+ Form2 f2 = new Form2();
+ f2.ShowDialog();
+ label1.Text = player1 + ":";
+ label2.Text = player2 + ":";
+ if (player2 == "PC")
+ {
+ pc = true;
+ }
+ }
+
+ private void изменитьИгроковToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Form2 f2 = new Form2();
+ f2.ShowDialog();
+ label1.Text = player1;
+ label2.Text = player2;
+ сброситьОчкиToolStripMenuItem.PerformClick();
+ новаяИграToolStripMenuItem.PerformClick();
+ this.Show();
+ }
+
+ private void сброситьОчкиToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Enabled_b();
+
+ turn_count = 0;
+ turn = true;
+ label4.Text = "0";
+ label5.Text = "0";
+ label6.Text = "0";
+ }
+
+ private Button win_or_block(string mark)
+ {
+ // Горизонтальные линии
+ if (A1.Text == mark && A2.Text == mark && A3.Text == "") return A3;
+ if (A1.Text == mark && A3.Text == mark && A2.Text == "") return A2;
+ if (A2.Text == mark && A3.Text == mark && A1.Text == "") return A1;
+
+ if (B1.Text == mark && B2.Text == mark && B3.Text == "") return B3;
+ if (B1.Text == mark && B3.Text == mark && B2.Text == "") return B2;
+ if (B2.Text == mark && B3.Text == mark && B1.Text == "") return B1;
+
+ if (C1.Text == mark && C2.Text == mark && C3.Text == "") return C3;
+ if (C1.Text == mark && C3.Text == mark && C2.Text == "") return C2;
+ if (C2.Text == mark && C3.Text == mark && C1.Text == "") return C1;
+
+ // Вертикальные линии
+ if (A1.Text == mark && B1.Text == mark && C1.Text == "") return C1;
+ if (A1.Text == mark && C1.Text == mark && B1.Text == "") return B1;
+ if (B1.Text == mark && C1.Text == mark && A1.Text == "") return A1;
+
+ if (A2.Text == mark && B2.Text == mark && C2.Text == "") return C2;
+ if (A2.Text == mark && C2.Text == mark && B2.Text == "") return B2;
+ if (B2.Text == mark && C2.Text == mark && A2.Text == "") return A2;
+
+ if (A3.Text == mark && B3.Text == mark && C3.Text == "") return C3;
+ if (A3.Text == mark && C3.Text == mark && B3.Text == "") return B3;
+ if (B3.Text == mark && C3.Text == mark && A3.Text == "") return A3;
+
+ // Диагонали
+ if (A1.Text == mark && B2.Text == mark && C3.Text == "") return C3;
+ if (A1.Text == mark && C3.Text == mark && B2.Text == "") return B2;
+ if (B2.Text == mark && C3.Text == mark && A1.Text == "") return A1;
+
+ if (A3.Text == mark && B2.Text == mark && C1.Text == "") return C1;
+ if (A3.Text == mark && C1.Text == mark && B2.Text == "") return B2;
+ if (B2.Text == mark && C1.Text == mark && A3.Text == "") return A3;
+
+ return null;
+ }
+
+ private Button corner()
+ {
+ if (A1.Text == "O")
+ {
+ if (A3.Text == "")
+ {
+ return A3;
+ }
+ if (C3.Text == "")
+ {
+ return C3;
+ }
+ if (C1.Text == "")
+ {
+ return C1;
+ }
+ }
+ if (A3.Text == "")
+ {
+ if (A1.Text == "")
+ {
+ return A1;
+ }
+ if (C3.Text == "")
+ {
+ return C3;
+ }
+ if (C1.Text == "")
+ {
+ return C1;
+ }
+ }
+ if (C1.Text == "")
+ {
+ if (A1.Text == "")
+ {
+ return A1;
+ }
+ if (C3.Text == "")
+ {
+ return C3;
+ }
+ if (A3.Text == "")
+ {
+ return A3;
+ }
+ }
+ if (C3.Text == "")
+ {
+ if (A1.Text == "")
+ {
+ return A1;
+ }
+ if (C1.Text == "")
+ {
+ return A3;
+ }
+ if (A3.Text == "")
+ {
+ return A3;
+ }
+ }
+ return null;
+ }
+
+ //private Button corner()
+ //{
+ // if (A1.Text == "") return A1;
+ // if (A3.Text == "") return A3;
+ // if (C1.Text == "") return C1;
+ // if (C3.Text == "") return C3;
+ // return null;
+ //}
+
+ private Button open_space()
+ {
+ Button b = null;
+ foreach (Control c in Controls)
+ {
+ b = c as Button;
+ if (b != null)
+ {
+ if (b.Text == "") return b;
+ }
+ }
+ return null;
+ }
+
+ private void comp_move()
+ {
+ Button move = null;
+ move = win_or_block("O");
+ if (move == null)
+ {
+ move = win_or_block("X");
+ if (move == null)
+ {
+ move = corner();
+ if (move == null)
+ {
+ move = open_space();
+ }
+ }
+ }
+
+ move.PerformClick();
+ }
+ }
+
+}
diff --git a/Form1.resx b/Form1.resx
new file mode 100644
index 0000000..d5494e3
--- /dev/null
+++ b/Form1.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/Form2.Designer.cs b/Form2.Designer.cs
new file mode 100644
index 0000000..a63b053
--- /dev/null
+++ b/Form2.Designer.cs
@@ -0,0 +1,133 @@
+namespace WindowsFormsApp8
+{
+ partial class Form2
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.checkBox1 = new System.Windows.Forms.CheckBox();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.textBox2 = new System.Windows.Forms.TextBox();
+ this.button1 = new System.Windows.Forms.Button();
+ this.button2 = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
+ this.label1.Location = new System.Drawing.Point(10, 13);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(54, 13);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "Игрок 1";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
+ this.label2.Location = new System.Drawing.Point(10, 45);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(54, 13);
+ this.label2.TabIndex = 1;
+ this.label2.Text = "Игрок 2";
+ //
+ // checkBox1
+ //
+ this.checkBox1.AutoSize = true;
+ this.checkBox1.Location = new System.Drawing.Point(13, 79);
+ this.checkBox1.Name = "checkBox1";
+ this.checkBox1.Size = new System.Drawing.Size(88, 17);
+ this.checkBox1.TabIndex = 2;
+ this.checkBox1.Text = "Играть с PC";
+ this.checkBox1.UseVisualStyleBackColor = true;
+ this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
+ //
+ // textBox1
+ //
+ this.textBox1.Location = new System.Drawing.Point(67, 10);
+ this.textBox1.Name = "textBox1";
+ this.textBox1.Size = new System.Drawing.Size(100, 20);
+ this.textBox1.TabIndex = 3;
+ //
+ // textBox2
+ //
+ this.textBox2.Location = new System.Drawing.Point(67, 42);
+ this.textBox2.Name = "textBox2";
+ this.textBox2.Size = new System.Drawing.Size(100, 20);
+ this.textBox2.TabIndex = 4;
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(12, 112);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(75, 23);
+ this.button1.TabIndex = 5;
+ this.button1.Text = "Выход";
+ this.button1.UseVisualStyleBackColor = true;
+ //
+ // button2
+ //
+ this.button2.Location = new System.Drawing.Point(160, 112);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(75, 23);
+ this.button2.TabIndex = 6;
+ this.button2.Text = "Играть";
+ this.button2.UseVisualStyleBackColor = true;
+ this.button2.Click += new System.EventHandler(this.button2_Click);
+ //
+ // Form2
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(247, 146);
+ this.Controls.Add(this.button2);
+ this.Controls.Add(this.button1);
+ this.Controls.Add(this.textBox2);
+ this.Controls.Add(this.textBox1);
+ this.Controls.Add(this.checkBox1);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.label1);
+ this.Name = "Form2";
+ this.Text = "Form2";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.CheckBox checkBox1;
+ private System.Windows.Forms.TextBox textBox1;
+ private System.Windows.Forms.TextBox textBox2;
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.Button button2;
+ }
+}
\ No newline at end of file
diff --git a/Form2.cs b/Form2.cs
new file mode 100644
index 0000000..7c95efd
--- /dev/null
+++ b/Form2.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace WindowsFormsApp8
+{
+ public partial class Form2 : Form
+ {
+ public Form2()
+ {
+ InitializeComponent();
+ }
+
+ private void checkBox1_CheckedChanged(object sender, EventArgs e)
+ {
+ if (checkBox1.Checked)
+ {
+ textBox2.Text = "PC";
+ textBox2.Enabled = false;
+ }
+ else
+ {
+ textBox2.Text = "";
+ textBox2.Enabled = true;
+ }
+ }
+
+ private void button2_Click(object sender, EventArgs e)
+ {
+ Form1.setName(textBox1.Text, textBox2.Text);
+ this.Close();
+
+ }
+ }
+}
diff --git a/Form2.resx b/Form2.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Form2.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Program.cs b/Program.cs
new file mode 100644
index 0000000..9f3bf23
--- /dev/null
+++ b/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace WindowsFormsApp8
+{
+ internal static class Program
+ {
+ ///
+ /// Главная точка входа для приложения.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..d6ededb
--- /dev/null
+++ b/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Общие сведения об этой сборке предоставляются следующим набором
+// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
+// связанных со сборкой.
+[assembly: AssemblyTitle("WindowsFormsApp8")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("WindowsFormsApp8")]
+[assembly: AssemblyCopyright("Copyright © 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
+// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
+// COM, следует установить атрибут ComVisible в TRUE для этого типа.
+[assembly: ComVisible(false)]
+
+// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
+[assembly: Guid("cffb9946-fd6e-4501-a539-e31148b773f0")]
+
+// Сведения о версии сборки состоят из указанных ниже четырех значений:
+//
+// Основной номер версии
+// Дополнительный номер версии
+// Номер сборки
+// Редакция
+//
+// Можно задать все значения или принять номера сборки и редакции по умолчанию
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..3600208
--- /dev/null
+++ b/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// Этот код создан программным средством.
+// Версия среды выполнения: 4.0.30319.42000
+//
+// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если
+// код создан повторно.
+//
+//------------------------------------------------------------------------------
+
+namespace WindowsFormsApp8.Properties
+{
+
+
+ ///
+ /// Класс ресурсов со строгим типом для поиска локализованных строк и пр.
+ ///
+ // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder
+ // класс с помощью таких средств, как ResGen или Visual Studio.
+ // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen
+ // с параметром /str или заново постройте свой VS-проект.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsFormsApp8.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Переопределяет свойство CurrentUICulture текущего потока для всех
+ /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Properties/Resources.resx b/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..fafa22b
--- /dev/null
+++ b/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace WindowsFormsApp8.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Properties/Settings.settings b/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/WindowsFormsApp8.csproj b/WindowsFormsApp8.csproj
new file mode 100644
index 0000000..52f7148
--- /dev/null
+++ b/WindowsFormsApp8.csproj
@@ -0,0 +1,96 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {CFFB9946-FD6E-4501-A539-E31148B773F0}
+ WinExe
+ WindowsFormsApp8
+ WindowsFormsApp8
+ v4.8
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+ Form
+
+
+ Form2.cs
+
+
+
+
+ Form1.cs
+
+
+ Form2.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsApp8.sln b/WindowsFormsApp8.sln
new file mode 100644
index 0000000..601c5f1
--- /dev/null
+++ b/WindowsFormsApp8.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.4.33213.308
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsFormsApp8", "WindowsFormsApp8.csproj", "{CFFB9946-FD6E-4501-A539-E31148B773F0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CFFB9946-FD6E-4501-A539-E31148B773F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CFFB9946-FD6E-4501-A539-E31148B773F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CFFB9946-FD6E-4501-A539-E31148B773F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CFFB9946-FD6E-4501-A539-E31148B773F0}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {1C199CCE-B457-49D7-B2E8-D6FC5041886C}
+ EndGlobalSection
+EndGlobal