遊戲遊5*5的按鈕組成,玩法類似於井字遊戲或是五子棋,兩個或三個玩家共玩,四個連線就贏了,而且可以穿過牆壁(斜的也算),有點難度(已經證實兩個玩家的時候,第一個下的人很容易贏)
以下是程式碼://兩個人的時候
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace h
{
public partial class Form1 : Form
{
string c;
int r=1;//r=round,
int[] a = new int[10];
Button[,] b = new Button[5, 5];
int[,] w = new int[5, 5];
int[] n = new int[8];//n=number
Random r1 = new Random();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
for (int j = 0; j < 5; j++)
{
for (int i = 0; i < 5; i++)
{
b[i, j] = new System.Windows.Forms.Button();
b[i, j].Location = new Point(50+50 * i,50+50 * j);
b[i, j].Click += new EventHandler(b_Click);
b[i, j].Width = 50;
b[i, j].Height = 50;
b[i, j].Text = "";
b[i, j].BackColor = button1.BackColor;
w[i, j] = 0;
this.Controls.Add(b[i, j]);
}
}
button1.Left=300;
button1.Top=240;
label1.Left=350;
label1.Top=181;
label2.Left=310;
label2.Top=181;
}
private void b_Click(object sender, EventArgs e)
{
Button bu =sender as Button ;
if (r == 1 && bu.Text=="")
{
bu.Text = "O";
label1.Text = "X";
r = 2;
}
else if (r == 2 && bu.Text == "")
{
bu.Text = "X";
//label1.Text = "O";
//r = 1;
label1.Text = "#";
r = 3;
}
else if (r == 3 && bu.Text == "")
{
bu.Text = "#";
label1.Text = "O";
r = 1;
}
win();
}
private void button1_Click(object sender, EventArgs e)
{
for (int j = 0; j < 5; j++)
{
for (int i = 0; i < 5; i++)
{
b[i, j].Text = "";
b[i, j].BackColor = button1.BackColor;
}
}
label1.Text = "O";
r = 1;
}
private void win()
{
for (int i1 = 0; i1 < 5; i1++)
{
for (int j1 = 0; j1 < 5; j1++)
{
if (b[i1, j1].Text != "")
{
for (int i2 = 1; i2 <= 3; i2++)
{
if (b[(i1 + 0 * i2) % 5, (j1 + 1 * i2) % 5].Text == b[i1, j1].Text) { n[0]++; }
if (b[(i1 + 1 * i2) % 5, (j1 + 1 * i2) % 5].Text == b[i1, j1].Text) { n[1]++; }
if (b[(i1 + 1 * i2) % 5, (j1 + 0 * i2) % 5].Text == b[i1, j1].Text) { n[2]++; }
if (b[(i1 + 1 * i2) % 5, (j1 + 4 * i2) % 5].Text == b[i1, j1].Text) { n[3]++; }
}
for (int j2 = 0; j2 < 4; j2++)
{
if (n[j2] < 3) { n[j2] = 0; }
else if (n[j2] >= 3)
{
b[i1, j1].BackColor = button2.BackColor;
if (n[0] >= 3)
{
for (int i2 = 1; i2 <= 3; i2++)
{
b[(i1 + 0 * i2) % 5, (j1 + 1 * i2) % 5].BackColor = button2.BackColor;
}
}
if (n[1] >= 3)
{
for (int i2 = 1; i2 <= 3; i2++)
{
b[(i1 + 1 * i2) % 5, (j1 + 1 * i2) % 5].BackColor = button2.BackColor;
}
}
if (n[2] >= 3)
{
for (int i2 = 1; i2 <= 3; i2++)
{
b[(i1 + 1 * i2) % 5, (j1 + 0 * i2) % 5].BackColor = button2.BackColor;
}
}
if (n[3] >= 3)
{
for (int i2 = 1; i2 <= 3; i2++)
{
b[(i1 + 1 * i2) % 5, (j1 + 4 * i2) % 5].BackColor = button2.BackColor;
}
}
n[0] = 0;
n[1] = 0;
n[2] = 0;
n[3] = 0;
if (b[i1, j1].Text == "O")
{
MessageBox.Show("O win");
}
if (b[i1, j1].Text == "X")
{
MessageBox.Show("X win");
}
if (b[i1, j1].Text == "#")
{
MessageBox.Show("# win");
}
j1 = 5;
i1 = 5;
}
}
}
}
}
}
}