C \ # 가장 간단 한 정자 바둑 실현 ai
16638 단어 C#
https://www.cnblogs.com/phdeblog/p/9062432.html(js ai 정자 기 실현)
그러나 위의 홈 페이지 에서 js 가 실현 한 것 만큼 교묘 하지 않다.
가장 어 리 석 은 방법 인 것 같다.
배경 cs 코드 만 보 여 줍 니 다.프론트 인터페이스 코드 는 전시 하지 않 습 니 다.
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 jinziyouxi
{
public partial class Form1 : Form
{
bool clicked = true;
bool playvai = true;
int click_count = 0;
public Form1()
{
InitializeComponent();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
clicked = true;
click_count = 0;
foreach(Control c in Controls)
{
try
{
Button b = (Button)c;
b.Enabled = true;
b.Text= "";
}
catch
{
}
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show(" :zwh");
}
private void ToolStripMenuItem1_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void A1_Click(object sender, EventArgs e)
{
Changebutton(sender, e);
}
private void A2_Click(object sender, EventArgs e)
{
Changebutton(sender, e);
}
private void A3_Click(object sender, EventArgs e)
{
Changebutton(sender, e);
}
private void B1_Click(object sender, EventArgs e)
{
Changebutton(sender, e);
}
private void B2_Click(object sender, EventArgs e)
{
Changebutton(sender, e);
}
private void B3_Click(object sender, EventArgs e)
{
Changebutton(sender, e);
}
private void C1_Click(object sender, EventArgs e)
{
Changebutton(sender, e);
}
private void C2_Click(object sender, EventArgs e)
{
Changebutton(sender, e);
}
private void C3_Click(object sender, EventArgs e)
{
Changebutton(sender, e);
}
private void Changebutton(object sender, EventArgs e)
{
Button b = (Button)sender;
if (clicked)
{
b.Text = "X";
}
else
{
b.Text = "O";
}
click_count++;
clicked = !clicked;
b.Enabled = false;
ifendgame();
if ((!clicked) && (playvai))
{
AImove();
}
}
private void AImove()
{
Button where = null;
where = findo("O");
if (where==null)
{
where = findx("X");
if (where == null)
{
where = findjiaoluo();
if (where ==null)
{
where = findother();
}
}
}
try
{
where.PerformClick();
}
catch
{
}
}
private Button findo(String b)
{
//
if ((A1.Text==b)&& (A2.Text == b)&& (A3.Text == ""))
{
return A3;
}
if ((A1.Text == b) && (A2.Text == "") && (A3.Text == b))
{
return A2;
}
if ((A1.Text == "") && (A2.Text == b) && (A3.Text == b))
{
return A1;
}
//
if ((B1.Text == b) && (B2.Text == b) && (B3.Text == ""))
{
return B3;
}
if ((B1.Text == b) && (B2.Text == "") && (B3.Text == b))
{
return B2;
}
if ((B1.Text == "") && (B2.Text == b) && (B3.Text == b))
{
return B1;
}
//
if ((C1.Text == b) && (C2.Text == b) && (C3.Text == ""))
{
return C3;
}
if ((C1.Text == b) && (C2.Text == "") && (C3.Text == b))
{
return C2;
}
if ((C1.Text == "") && (C2.Text == b) && (C3.Text == b))
{
return C1;
}
// l
if ((A1.Text == b) && (B1.Text == b) && (C1.Text == ""))
{
return C1;
}
if ((A1.Text == b) && (B1.Text == "") && (C1.Text == b))
{
return B1;
}
if ((A1.Text == "") && (B1.Text == b) && (C1.Text == b))
{
return A3;
}
// l
if ((A2.Text == b) && (B2.Text == b) && (C2.Text == ""))
{
return C2;
}
if ((A2.Text == b) && (B2.Text == "") && (C2.Text == b))
{
return B2;
}
if ((A2.Text == "") && (B2.Text == b) && (C2.Text == b))
{
return A2;
}
// l
if ((A3.Text == b) && (B3.Text == b) && (C3.Text == ""))
{
return C3;
}
if ((A3.Text == b) && (B3.Text == "") && (C3.Text == b))
{
return B3;
}
if ((A3.Text == "") && (B3.Text == b) && (C3.Text == b))
{
return A3;
}
//
if ((A1.Text == b) && (B2.Text == b) && (C3.Text == ""))
{
return C3;
}
if ((A1.Text == b) && (B2.Text == "") && (C3.Text == b))
{
return B2;
}
if ((A1.Text == "") && (B2.Text == b) && (C3.Text == b))
{
return A1;
}
if ((A3.Text == b) && (B2.Text == b) && (C1.Text == ""))
{
return C1;
}
if ((A3.Text == b) && (B2.Text == "") && (C1.Text == b))
{
return B2;
}
if ((A3.Text == "") && (B2.Text == b) && (C1.Text == b))
{
return A3;
}
return null;
}
private Button findx(String b)
{
if ((A1.Text == b) && (A2.Text == b) && (A3.Text == ""))
{
return A3;
}
if ((A1.Text == b) && (A2.Text == "") && (A3.Text == b))
{
return A2;
}
if ((A1.Text == "") && (A2.Text == b) && (A3.Text == b))
{
return A1;
}
if ((B1.Text == b) && (B2.Text == b) && (B3.Text == ""))
{
return B3;
}
if ((B1.Text == b) && (B2.Text == "") && (B3.Text == b))
{
return B2;
}
if ((B1.Text == "") && (B2.Text == b) && (B3.Text == b))
{
return B1;
}
if ((C1.Text == b) && (C2.Text == b) && (C3.Text == ""))
{
return C3;
}
if ((C1.Text == b) && (C2.Text == "") && (C3.Text == b))
{
return C2;
}
if ((C1.Text == "") && (C2.Text == b) && (C3.Text == b))
{
return C1;
}
// l
if ((A1.Text == b) && (B1.Text == b) && (C1.Text == ""))
{
return C1;
}
if ((A1.Text == b) && (B1.Text == "") && (C1.Text == b))
{
return B1;
}
if ((A1.Text == "") && (B1.Text == b) && (C1.Text == b))
{
return A3;
}
// l
if ((A2.Text == b) && (B2.Text == b) && (C2.Text == ""))
{
return C2;
}
if ((A2.Text == b) && (B2.Text == "") && (C2.Text == b))
{
return B2;
}
if ((A2.Text == "") && (B2.Text == b) && (C2.Text == b))
{
return A2;
}
// l
if ((A3.Text == b) && (B3.Text == b) && (C3.Text == ""))
{
return C3;
}
if ((A3.Text == b) && (B3.Text == "") && (C3.Text == b))
{
return B3;
}
if ((A3.Text == "") && (B3.Text == b) && (C3.Text == b))
{
return A3;
}
if ((A1.Text == b) && (B2.Text == b) && (C3.Text == ""))
{
return C3;
}
if ((A1.Text == b) && (B2.Text == "") && (C3.Text == b))
{
return B2;
}
if ((A1.Text == "") && (B2.Text == b) && (C3.Text == b))
{
return A1;
}
if ((A3.Text == b) && (B2.Text == b) && (C1.Text == ""))
{
return C1;
}
if ((A3.Text == b) && (B2.Text == "") && (C1.Text == b))
{
return B2;
}
if ((A3.Text == "") && (B2.Text == b) && (C1.Text == b))
{
return A3;
}
return null;
}
private Button findjiaoluo()
{
if (A1.Text=="O")
{
if (A3.Text=="")
{
return A3;
}
if (C3.Text=="")
{
return C3;
}
if (C1.Text=="")
{
return C1;
}
}
if (A3.Text == "O")
{
if (A1.Text == "")
{
return A1;
}
if (C3.Text == "")
{
return C3;
}
if (C1.Text == "")
{
return C1;
}
}
if (C3.Text == "O")
{
if (A1.Text == "")
{
return A1;
}
if (A3.Text == "")
{
return A3;
}
if (C1.Text == "")
{
return C1;
}
}
if (C1.Text == "O")
{
if (A1.Text == "")
{
return A1;
}
if (C3.Text == "")
{
return C3;
}
if (A3.Text == "")
{
return A3;
}
}
if (A1.Text=="")
{
return A1;
}
if (A3.Text=="")
{
return A3;
}
if (C1.Text=="")
{
return C1;
}
if (C3.Text=="")
{
return C3;
}
return null;
}
private Button findother()
{
Button b = null;
foreach (Control c in Controls)
{
b = c as Button;
if (b!=null)
{
if (b.Text=="")
{
return b;
}
}
}
return null;
}
private void ifendgame()
{
bool ifwinerout = false;
if (A1.Text == A2.Text && A3.Text == A2.Text && !A1.Enabled)
{
ifwinerout = true;
}
else if (C1.Text == C2.Text && C3.Text == C2.Text && !C1.Enabled)
{
ifwinerout = true;
}
else if (B1.Text == B2.Text && B3.Text == B2.Text && !B1.Enabled)
{
ifwinerout = true;
}
else if (A1.Text == B1.Text && B1.Text == C1.Text && !A1.Enabled)
{
ifwinerout = true;
}
else if (A2.Text == B2.Text && B2.Text == C2.Text && !A2.Enabled)
{
ifwinerout = true;
}
else if (A3.Text == B3.Text && B3.Text == C3.Text && !A3.Enabled)
{
ifwinerout = true;
}
else if (A1.Text == B2.Text && B2.Text == C3.Text && !A1.Enabled)
{
ifwinerout = true;
}
else if (A3.Text == B2.Text && B2.Text == C1.Text && !C1.Enabled)
{
ifwinerout = true;
}
if (ifwinerout)
{
bangame();
if (clicked)
{
Ograde.Text = (int.Parse(Ograde.Text) + 1).ToString();
MessageBox.Show("0 !");
}
else
{
Xgrade.Text = (int.Parse(Xgrade.Text) + 1).ToString();
MessageBox.Show("X !");
}
}
else
{
if (click_count == 9)
{
try
{
MessageBox.Show(" , !");
}
catch
{
}
}
}
}
private void bangame()
{
try
{
foreach (Control button in Controls)
{
Button b = (Button)button;
b.Enabled = false;
}
}
catch
{
}
}
private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void showwhoturn(object sender, EventArgs e)
{
Button b = (Button)sender;
if (b.Enabled)
{
if (clicked)
{
b.Text = "X";
}
else
{
b.Text = "O";
}
}
}
private void cleantext(object sender, EventArgs e)
{
Button b = (Button)sender;
if (b.Enabled)
{
b.Text = "";
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.