• 大小: 95KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-04
  • 语言: C#
  • 标签: C#  五子棋  人机对弈  

资源简介

最近在学习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 Point10 + 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个文件信息

评论

共有 条评论