資源簡介
最近在學習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視頻教程全套
評論
共有 條評論