- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人工智能上机报告.doc
人工智能上机报告
项目:
班级:
学号:
姓名:
指导老师:
2013年6月
目录
一:实验项目 2
二:程序结构及相关内容介绍 2
三:程序运行界面及使用说明 2
四:主要代码 8
Chessboard.cs 8
Computer.cs 13
Rule.cs 18
Stone.cs 31
一:
1. 实验目的
理解和掌握博弈树的启发式搜索过程和α-β2. 实验环境
在微型计算机上,任选一种编程语言。
3.
(1) 设计一个15行15列棋盘,要求自行给出估价函数,按极大极小搜索方法,并采用α-β剪枝技术。
(2) 采用人机对弈方式,对弈双方设置不同颜色的棋子,一方走完一步后,等待对方走步,对弈过程的每个棋局都在屏幕上显示出来。当某一方在横、竖或斜方向上先有5个棋子连成一线时,该方为赢。
(3) 提交1篇实验报告,以及完整的软件系统和相关文档,包括源程序和可执行程序。
二:结构及相关内容介绍
两个窗体:一个游戏进行的主界面orm 4,一个对游戏的说明: Form 4_1存在orms 文件夹中:
在文件夹ab 4 中添加了用于功能实现的类是hessboard.cs Computer.cs Rule.cs Stone.cs 在窗体控件的函数中调用这些类和函数,实现程序运行。
三:界面及使用说明
主窗体如下:
首先,在主窗体的enustrip 中点击“Lab4 棋” 呈现出游戏界面如下所示:
可以看出游戏共由:棋盘,棋子坐标,选择棋子,棋子位置记录及游戏设置、说明五部分组成。
在窗口的左上角,是游戏说明与设置部分:
点击“游戏”可以设置:决定是由玩家走第一步棋还是由电脑走第一步,在所选项前打钩即可,程序默认“玩家先”,如果选择了“电脑先” 则电脑随即在棋盘上安排第一个棋子。点击”关闭”会退出游戏,但是不结束整个程序的运行。
点击”帮助(H)“下拉菜单的第一项,会出现关于游戏的说明窗口:指导玩家进行游戏。
程序有记录坐标位置的功能,随着玩家的鼠标在棋盘上移动,”棋子坐标“一栏内的X,Y 坐标会随之变动,这只是后台记录数据的显示,在决定电脑下棋位置中有重要作用,玩家可以忽略此信息。
在选择棋子框中显示程序设定好的棋子。
玩家在决定放棋子的格点点击棋盘,会显示出玩家的棋子,计算机自动做出反应,游戏进行下去。
在此过程中,界面上历史记录一栏内会随时记录下黑白棋子的位置坐标:
游戏进行,直到白棋或黑棋首先达到五子连成一线,则系统显示获胜方:
整个游戏程序界面美观,设计人性化,操作方便。
四:主要代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AI.Lab4;
using System.Drawing;
using System.Windows.Forms;
namespace AI.Lab4
{
class Chessboard
{
private int[,] arrchessboard = new int[15, 15];
//绘?制?的ì?对?象¨?
private Graphics mg;
//棋?子á¨?对?象¨?
private Stone stone;
//电ì?脑?对?象¨?
private Computer computer;
//判D断?当ì?à前??棋?子á¨?是o?黑¨2(true)是o?白??á(false)
private bool stoneflag = true;
//判D断?先¨¨手o?玩a?家¨°(ê?§是o?电ì?脑?(true)还1是o?人¨?(false),ê?先¨¨手o?下?黑¨2棋?)ê?
private bool mplayfirstflag = false;
//历¤¨2史o?¤记?录?堆?栈?
private Stackstring mStarckHistory = new Stackstring();
/// summary
/// 历¤¨2史o?¤记?录?属o?性?
/// /summary
public Stackstring Sta
文档评论(0)