上記はボードのイメージです
ブルートフォース列挙を使用せずに2色を連続して検出して勝者を決定する方法を見つけるのは難しい..
私はアルゴリズムを持っていて、それを実装しようとしていますが、それを機能させることができないようです..誰かがこれを行う方法を知っているでしょう..
勝者の斜めの垂直方向と水平方向を検出したい..
ps 通常は解決策を求めませんが、今回は本当に助けが必要です。どうもありがとう
これは、平和を置くことを可能にするプログラム用に私が持っているコードです
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private Button[] btns;
private Button[] btns2;
private Button[] btns3;
public Color[] col;
// public var x;
public Form1()
{
InitializeComponent();
btns = new Button[2] { button2, button3 };
btns2 = new Button[2] { button4, button5 };
btns3 = new Button[2] { button9, button8 };
col = new Color[2] { Color.Red, Color.Yellow };
Color x = col[0];
Color y = col[1];
}
private void Form1_Load(object sender, EventArgs e)
{
foreach (var btn in btns)
{
btn.Enabled = false;
btn.BackColor = Color.LightCyan;
}
foreach (var btn in btns2)
{
btn.Enabled = false;
btn.BackColor = Color.LightCyan;
}
foreach (var btn in btns3)
{
btn.Enabled = false;
btn.BackColor = Color.LightCyan;
}
}
public int state;
int cc = 0;
private void button1_Click(object sender, EventArgs e)
{
foreach (var btn in btns)
{
{
if (!btn.Enabled)
{
btn.Enabled = true;
if (cc == 0)
{
cc = 1;
btn.BackColor = col[0];
}
else
{
cc = 0;
btn.BackColor = col[1];
}
return;
}
}
}
}
private void button6_Click(object sender, EventArgs e)
{
foreach (var btn in btns2)
{
if (!btn.Enabled)
{
btn.Enabled = true;
if (cc == 0)
{
cc = 1;
btn.BackColor = col[0];
}
else
{
cc = 0;
btn.BackColor = col[1];
}
return;
}
}
}
private void button7_Click(object sender, EventArgs e)
{
foreach (var btn in btns3)
{
if (!btn.Enabled)
{
btn.Enabled = true;
if (cc == 0)
{
cc = 1;
btn.BackColor = col[0];
}
else
{
cc = 0;
btn.BackColor = col[1];
}
return;
}
}
}
}
}