1. 數獨 4X4 遊戲程式設計
有點做太久
namespace Q1
{
public partial class Form1 : Form
{
TextBox[,] tb = new TextBox[4, 4];
public Form1()
{
InitializeComponent();
}
int? lcx;
int? lcy;
private void button3_Click(object sender, EventArgs e)
{
tryPlace(1);
}
private void button4_Click(object sender, EventArgs e)
{
tryPlace(2);
}
private void button5_Click(object sender, EventArgs e)
{
tryPlace(3);
}
private void button6_Click(object sender, EventArgs e)
{
tryPlace(4);
}
void tryPlace(int i)
{
if (lcx == null || lcy == null) return;
tb[lcx.Value, lcy.Value].Text = i.ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
int i = 0;
foreach (var item in Controls)
{
if (!(item is TextBox tbb)) continue;
int x = 3 - i % 4;
int y = 3 - i / 4;
tb[x, y] = tbb;
tbb.Click += (e, k) =>
{
lcx = x;
lcy = y;
};
i++;
}
int v = 0;
tb[v, v++].Text = v.ToString();
tb[v, v++].Text = v.ToString();
tb[v, v++].Text = v.ToString();
tb[v, v++].Text = v.ToString();
}
List<int> findNumber(int x, int y)
{
List<int> k = new List<int>() { 1, 2, 3, 4 };
for (int i = 0; i < 4; i++)
{
if (tb[i, y].Text != "" && !tb[i, y].Text.Contains(","))
k.Remove(int.Parse(tb[i, y].Text));
if (tb[x, i].Text != "" && !tb[x, i].Text.Contains(","))
k.Remove(int.Parse(tb[x, i].Text));
}
return k;
}
private void button1_Click(object sender, EventArgs e)
{
for (int x = 0; x < 4; x++)
{
for (int y = 0; y < 4; y++)
{
if (tb[x, y].Text == "")
tb[x, y].Text = String.Join(",", findNumber(x, y));
}
}
}
private void button2_Click(object sender, EventArgs e)
{
sys.Text = "正確";
for (int i = 0; i < 4; i++)
{
int xs = 0, ys = 0;
for (int z = 0; z < 4; z++)
{
if (tb[i, z].Text != "" && !tb[i, z].Text.Contains(","))
{
xs += int.Parse(tb[i, z].Text);
}
if (tb[z, i].Text != "" && !tb[z, i].Text.Contains(","))
{
ys += int.Parse(tb[z, i].Text);
}
}
if (xs != 10 || ys != 10)
{
sys.Text = "錯誤";
return;
}
}
}
}
}
Last updated