班 级
学 号
姓 名
张茜
人工智能课程设计--五子棋
计算机 0953
0901085318
1
对奕中AI算法研究方面。
关键字:五子棋 、博奕AI算法
摘 要
数或者玩家可走棋步的获胜分数,然后再决定出一个最佳走法。
深度确定的。本系统以深度为2,3,4分别为初级,中级,高级。
状况下所有可走的棋与可能的获胜状况,并计算当前计算机可走棋步的获胜分
式的五子棋游戏。并对所涉及到的相关技术进行初步的探讨,将重点放在人机
要通过对方的同意。同时还可以实现在线聊天。AI的不同等级是以不同的搜索
策略类人工智能可以说是AI中比较复杂的一种,最常见的策略类AI游戏
就是棋盘式游戏。在这类游戏中,通常的策略类AI程序都是使计算机判断目前
游戏中提供两种选择模式:人机对战和人人对战。在人机对战中玩家通过
本系统将利用五子棋游戏作为研究对象,通过设计出一个能够实现对战模
选择不同的AI等级和电脑一决高下。在人人对战中双方可以进行下棋,悔棋但
2
目 录
第一章 引言....................................................................................................................................4
1.1五子棋简介..........................................................................................................................41.2五子棋的AI构想...............................................................................................................5第二章 详细设计过程....................................................................................................................7
2.1概要介绍..............................................................................................................................7
2.1.1程序设计...................................................................................................................72.1.2程序特点...................................................................................................................72.2可行性分析报告..................................................................................................................8
2.2.1开发工具可行性分析...............................................................................................82.2.2算法可行性分析.......................................................................................................82.2.3 需求分析..................................................................................................................82.2.4总体设计...................................................................................................................9
第三章 代码分析............................................................................................................................10
3.1 初始化赋值系统................................................................................................................103.2初始化获胜组合................................................................................................................113.3重新设定玩家的获胜标志................................................................................................123.4处理鼠标事件....................................................................................................................123.5 获胜检查算法...................................................................................................................143.6电脑算法(1).......................................................................................................................163.7电脑算法(2)..................................................................................................................19
3
第一章 引言
人工智能也就是所谓的AI(Artificial Intelligence),它是一门很抽象的技术,AI程序的编写不需要依据任何既定的思考模式或者规则。尤其是游戏中的AI可以完全依程序设计者本身的思考逻辑制作。我个人认为人工智能的核心应该是使计算机具有自动的处理事件的能力,而我们的所有的研究也应该围绕着这一方向。我们今天讨论的是策略类的人工智能。
策略类人工智能可以说是AI中比较复杂的一种,最常见的策略类AI游戏就是棋盘式游戏。在这类游戏中,通常的策略类AI程序都是使计算机判断目前状况下所有可走的棋与可能的获胜状况,并计算当前计算机可走棋步的获胜分数或者玩家可走棋步的获胜分数,然后再决定出一个最佳走法。下面我们先介绍一下五子棋的AI构想。
1.1五子棋简介
下面就五子棋的背景和规则做一些简单的介绍。
五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。 五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。
五子棋的规则如下:棋盘:采用同围棋盘一样的15 路或19 路线的棋盘,为了减小问题的规模,本系统将采用15 路线的棋盘。下法:两人分别执黑白两色棋子,轮流在棋盘上选择一个无子的交叉点落子。无子的交叉点又被称为空点。输赢判断:黑、白双方有一方的5个棋子在横、竖或斜方向上连接成一线即为该方赢。
4
三、分数的设定
在一场五子棋的游戏中,计算机必须要知道有那些的获胜组合,因此我们在由AI所控制的计算机玩家上是不成立的,因为计算机必须知道有那些获
3、设定获胜的分数
2、建立和使用获胜表
获胜表的主要作用是:
二、建立和使用获胜表
6+(5+4+3+2+1)*2=36
6+(5+4+3+2+1)*2=36
后面的程序中可以看出。
一,求五子棋的获胜组合
可以利用数组建立获胜表,
必须求得获胜组合的总数。
1.2五子棋的AI构想
1、能够知道所有的获胜组合
方向的获胜组合数为:6*10=60
方向的获胜组合数为:6*10=60
我们假定当前的棋盘为10*10:
4、使电脑具有攻击和防守的能力
1、判断当前的获胜方式是否有效;
一个完整的五子棋的AI构想必须:
胜方式,并计算出每下一步棋到棋盘上任一格子的获胜几率。
这样所有的获胜组合数为:60+60+36+36=192
4、计算反对角线方向的获胜组合总数,反对角线上的获胜组合总数为
3、计算正对角线方向的获胜组合总数,正对角线上的获胜组合总数为
我们已经计算出了一个10*10的五子棋盘会有192种获胜方式,这样我们
2、判断当前的获胜方式中到底有多少子落入该获胜组合中。详细的使用您将在
2、计算垂直方向的获胜组合总数,每一行的获胜组合是:6,共10行,则垂直
1、计算水平方向的获胜组合数,每一列的获胜组合是:6,共10列,所以水平
5
相关推荐: