资源简介
最近在学习C#,写了个五子棋的小游戏,把原代码也传给大家。
电脑选择下棋点的主要算法分为两部:1.将每个落子点进行评分(有棋或禁手点评为最低);2.从第一部中选出5个得分最高的落子点,采用回溯算法求得最佳落子点。(代码中有注释)
希望大家有什么建议或者发现了Bug告诉我啊!
我这几天有时间会进一步完善这个小游戏,到时再传上来。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
namespace 五子棋
{
public partial class Form1 : Form
{
private int[] virtualGobangBoard=new int[1515];//虚拟棋盘
private PictureBox[] gobangPictureBox=new PictureBox[1515];//棋子
private Point lastMovePoint = new Point(-1 -1);
private bool blnBegin;
private const int black = -1 white = 1 background = 0;
private int personGobangColor computerGobangColor;
private int totalGobangCount = 0;
private Stack backStack = new Stack();//用于悔棋的栈
private Stack backTrackStack = new Stack();//用于回溯的栈
const int M = 1;//预测的步数
public Form1()
{
InitializeComponent();
gobangBoardGroupBox.Paint+=new PaintEventHandler(gobangBoardGroupBox_Paint);
InitializeGobangBoard();
gobangBoardGroupBox.MouseMove+=new MouseEventHandler(gobangBoardGroupBox_MouseMove);
this.MouseMove+=new MouseEventHandler(Form1_MouseMove);
gobangBoardGroupBox.MouseClick+=new MouseEventHandler(gobangBoardGroupBox_MouseClick);
}
private void InitializeGobangBoard()//初始化棋盘
{
gobangBoardGroupBox.Paint += new PaintEventHandler(gobangBoardGroupBox_Paint);
int x y;
for (x = 0; x < 15; x++)
for (y = 0; y < 15; y++)
{
gobangPictureBox[x y] = new PictureBox();
gobangPictureBox[x y].Location = new Point(10 + x * 40 10 + y * 40);
gobangPictureBox[x y].Size = new Size(4040);
gobangPictureBox[x y].BackColor = Color.Transparent;
gobangPictureBox[x y].SizeMode = PictureBoxSizeMode.CenterImage;
gobangPictureBox[x y].Visible = false;
gobangBoardGroupBox.Controls.Add(gobangPictureBox[x y]);
}
}
private void gobangBoardGroupBox_Paint(object sender PaintEventArgs e)
{
int i;
Graphics gr = e.Graphics;
Pen myPen = new Pen(Color.Black 2);
SolidBrush brush = new SolidBrush(Color.Red);
for (i = 0; i < 15; i++)
{
gr.DrawLine(myPen 30 + i * 40 30 30 + i * 40 590);
gr.DrawLine(myPen 30 30 + i * 40 590 30 + i * 40);
}
gr.FillEllipse(brush30630688);
gr.FillEllipse(brush 147 147 6 6);
gr.FillEllipse(brush 467 147 6 6);
gr.FillEllipse(brush 147 467 6 6);
gr.FillEllipse(brush 467 467 6 6);
}//画棋盘格
private void gobangBoardGroupBox_MouseClick(object sender MouseEventArgs e)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 249 2007-03-03 12:23 五子棋\五子棋\Properties\Settings.settings
文件 1166 2007-03-03 12:23 五子棋\五子棋\Properties\AssemblyInfo.cs
文件 1092 2007-03-03 12:23 五子棋\五子棋\Properties\Settings.Designer.cs
文件 4143 2007-03-03 19:49 五子棋\五子棋\Properties\Resources.Designer.cs
文件 7213 2007-03-03 19:49 五子棋\五子棋\Properties\Resources.resx
目录 0 2007-03-03 12:23 五子棋\五子棋\Properties
文件 10772 2007-03-06 12:34 五子棋\五子棋\Form1.Designer.cs
文件 45557 2007-03-06 12:34 五子棋\五子棋\Form1.cs
文件 10462 2007-03-05 15:23 五子棋\五子棋\五子棋图标.ico
文件 3802 2007-03-05 15:23 五子棋\五子棋\五子棋.csproj
文件 5632 2005-11-11 22:25 五子棋\五子棋\bin\Debug\五子棋.vshost.exe
文件 53248 2007-03-06 12:34 五子棋\五子棋\bin\Debug\五子棋.exe
文件 48640 2007-03-06 12:34 五子棋\五子棋\bin\Debug\五子棋.pdb
目录 0 2007-03-03 12:23 五子棋\五子棋\bin\Debug
目录 0 2007-03-03 12:23 五子棋\五子棋\bin
文件 5120 2007-03-03 19:49 五子棋\五子棋\obj\Debug\TempPE\Properties.Resources.Designer.cs.dll
目录 0 2007-03-03 12:23 五子棋\五子棋\obj\Debug\TempPE
目录 0 2007-03-03 13:38 五子棋\五子棋\obj\Debug\Refactor
文件 180 2007-03-06 12:34 五子棋\五子棋\obj\Debug\五子棋.Form1.resources
文件 7491 2007-03-05 15:24 五子棋\五子棋\obj\Debug\五子棋.Properties.Resources.resources
文件 1064 2007-03-06 12:34 五子棋\五子棋\obj\Debug\五子棋.csproj.GenerateResource.Cache
文件 48640 2007-03-06 12:34 五子棋\五子棋\obj\Debug\五子棋.pdb
文件 53248 2007-03-06 12:34 五子棋\五子棋\obj\Debug\五子棋.exe
目录 0 2007-03-03 12:23 五子棋\五子棋\obj\Debug
文件 282 2007-03-06 12:34 五子棋\五子棋\obj\五子棋.csproj.FileList.txt
目录 0 2007-03-03 12:23 五子棋\五子棋\obj
文件 5814 2007-03-06 12:34 五子棋\五子棋\Form1.resx
文件 468 2007-03-03 12:23 五子棋\五子棋\Program.cs
文件 1723 2007-03-03 14:06 五子棋\五子棋\Resources\blackstone.gif
文件 1682 2007-03-03 14:06 五子棋\五子棋\Resources\whitestone.gif
............此处省略13个文件信息
- 上一篇:C#中国姓名自动生成代码
- 下一篇:WPF视频教程全套
相关资源
- c#五子棋游戏开发论文
- winform五子棋联机版
- C#实现人机对战五子棋
- 五子棋源代码(C#源代码)
- C# 五子棋游戏 VS2008
- C#网络对战五子棋c/s源程序
- C# WINFORM写的五子棋代码(双人对战以
- C#五子棋
- C#实现五子棋人机及局域网
- C#高级编程 编程C#高级编程
- 五子棋小游戏 C#源代码 完整源程序
- c#socket 聊天室 五子棋 局域网PVP对战
- C# 五子棋 大学项目源码+数据库
- ASP.NETc#-学生选课系统
- C#五子棋游戏
- 基于C#的五子棋程序
- winform版五子棋源程序
- 基于socket的c#实现的五子棋
- 五子棋 AI C#带剪枝
- c# vs2010 小游戏之五子棋
- 基于C#的网络五子棋对战
- C#网络五子棋server&client
- C#开发五子棋
- 基于c#编写的五子棋小游戏
- c#五子棋游戏源代码200445
- C#迷宫代码,挺不错的
- C# 五子棋(课程设计+包含详细设计文
- VS2008编写基于遗传算法的C#五子棋游戏
- 五子棋对战用C#编写的
- C# 五子棋、五子棋开发
评论
共有 条评论