TCP-IP协议与网络编程课程设计

- PAGE 20 -

一、软件背景介绍

围棋是一项广有裨益的智力竞技运动,它集休闲娱乐、陶冶性情、修心养性于一身,是中华文化的瑰宝,是人类智慧的最高象征之一。围棋经历了数千年,久盛不衰,且至今还在不断发展。现在的人工智能科学研究在它面前显得很是稚嫩,因而值得将它作为重要的研究对象。在人工智能领域内,博弈是很重要的一个研究分支。通过对博弈的研究,可以解决很多实际问题,使计算机智能向人类智能迈进。计算机国际象棋和计算机围棋一直是人工智能的热门课题,而围棋程序的编制被称作人工智能的“试金石”,是人工智能技术的一大难题,它将会在今后相当长的时期内哺育着人工智能科学的成长。

计算机围棋是计算机博弈研究的一个重要分支,是当前人工智能研究的热点之一,一直以来吸引着大量的研究人员,产生了较大的社会影响和学术影响。由于围棋变化复杂、棋理深奥,是一种高智能的活动,因而围棋的计算机博弈设计难度较大,同时计算机围棋热点问题的研究为人工智能带来了崭新的方法和理论。

计算机围棋的研究和实现需要多门学科的知识交叉,至少会涉及到围棋、计算机、数学、生物、逻辑学、军事学、教育、心理学乃至哲学等领域,因此其发展具有重要的研究价值和应用价值。

本系统是基于C++编程语言的立足于“人―人”围棋对弈系统的设计与实现,具有围棋记谱、打谱、查看定式、最终评分等功能,是一个适宜在计算机上联网的“人―人”的对弈系统。

围棋胜负判断与局面分析功能子系统是围棋对弈系统的重要组成部分。围棋胜负自动判断是一个实用的围棋对弈系统所应具有的功能。在现实的围棋胜负判断中,往往需要一个裁判员通过做棋来判断棋局最终的胜负。如果有一个客观、准确的围棋自动判断胜负系统,一方面可以省时省力,一方面可以做到客观公正。但实现一个具有人(裁判员)一样的判断能力的胜负判断系统,存在着许多困难和挑战。本系统通过建立棋局的记录来判断棋盘上每一点的归属,从而确定棋局中双方地域,故能够对提掉死子后的终局棋盘用中国规则判断胜负;通过建立棋子的影响模型、力学模型以及度量公式,将棋子向棋盘其它部分辐射的影响量化,从而判断对弈双方的影响领域。

论文主要介绍了围棋对弈系统中胜负判断与局面分析功能子系统具有的功能,论述了子系统的开发和实现的过程。

该围棋游戏的主界面如图1。

图1 围棋主界面

二、核心算法思想

该围棋软件主要是由以下三种算法组成的:

1、使每个棋子周围产生某种影响,这种影响随着距离的增加而减少,用一定的公式计算叠加种影响,以判断形势和估计着点的价值。这与围棋的棋理相通,即对于每个棋子可估算其“势力”。此中就有著名的“气位”理论。

2、建立模式库,贮存了大量模式(定式、棋形等),以供匹配。这其实涉及到围棋的许多棋谚与棋理。如“二子头必扳”、“镇以飞应”、“断从一边长”、三子正中、点方等等。这些都是根据围棋的具体情况而设计的。

3、 对目标明确的局部,用人工智能中的搜索法探求其结果。

(一)围棋局面分析功能的实现

?这里定义了Stone的数据结构,用于记录每一点与棋盘上已落棋子的距离和受到的影响值,定义如下:

Public Type Stone

Value As Integer

Distance As Integer

End Type

需要定义显示地域时的棋谱Public Map(1 To 19, 1 To 19) As Stone ,用于记录最后的累加影响。其中Map上每一点Map(i,j)的Distance与value的关系为:Value = 2 的 (6 - Distance)次方。Map(i,j)的最终影响要通过计算影响模型,递减定律以及反射定律,经过度量公式计算,大于定值A的点显示为黑棋地域,小于-A的点显示为白棋地域。

(二) 影响模型

由于棋盘上的每个棋子都要对盘面发出影响,设黑棋影响为正,白棋影响为负。棋盘上的每一点要受到多个棋子的累加影响,其中,受到该点最近的棋子影响最大,依次递减。

设这影响在棋子的紧邻(距离为1)为最大值32,并随距离增加而按比例衰减,衰减因子为1/2。就是距离每增加1时影响值减半。

此时一黑子对其周围辐射的影响如图2。

1

1 2 1

1 2 4 2 1

1 2 4 8 4 2 1

1 2 4 8 16 8 4 2 1

1 2 4 8 16 32 16 8 4 2 1

1 2 4 8 16 32 64 32 16 8 4 2 1

1 2 4 8 16 32 16 8 4 2 1

1 2 4 8 16 8 4 2 1

1 2 4 8 4 2 1

1

c语言围棋报告,C++围棋程序实现报告.doc相关推荐

  1. 东北大学c语言课程设计,东北大学C语言(课程设计)程序实践报告.docx

    东北大学C语言(课程设计)程序实践报告 C语言程序设计报告 工资管理系统 学生姓名: 学生系别:计算机科学与技术 学生班级: 日 期:20xx年x月x日 程序实践报告 [运行环境] 软件:Window ...

  2. 我国传统长度单位c语言,标准长度单位换算c程序设计方案书.doc

    标准长度单位换算c程序设计方案书 菏泽学院 Heze University 蒋震机电工程学院 课程设计报告 课程名称 微机原理与接口技术 题 目 标准单位转换器 姓 名 周宇涛 学号 20121742 ...

  3. c语言程序中必不可少的,C语言程序设计(第3章程序控制语句)2

    3.2 数据的输入与输出 在程序的运行过程中,往往需要由用户输入一些数据,而程序运算所得到的计算结果等又需要输出给用户,由此实现人与计算机之间的交互,所以在程序设计中,输入输出语句是一类必不可少的重要 ...

  4. 重庆理工大学c语言程序实验报告,重庆理工大学-C语言程序实验报告.doc

    重庆理工大学-C语言程序实验报告 程序设计基础C实验报告 PAGE 47 <程序设计基础C> 实 验 报 告 教学班级: 学号: 姓名: 课程教师: 实验辅导教师: 重庆理工大学计算机学院 ...

  5. c语言报告程序分析报告,2012C语言程序分析报告.doc

    2012C语言程序分析报告 C语言程序设计专周 专 周 报 告 班级:10611 学号:20 姓名: 设计时间:2011-5-30至2011-6-3 一.设计题目:职工工资管理小软件 二.实习目的 1 ...

  6. c语言实验分支程序设计二,C语言程序实验报告分支结构的程序设计(0页).doc

    C语言程序实验报告分支结构的程序设计(0页) 数学与软件科学学院 实验报告 学期:11至12___ 第_1 学期 2011年10 月 17 日 课程名称:程序设计基础教程-C语言 专业:2010级5_ ...

  7. 华理c语言设计网上作业,华理c程序实验报告(共9篇).doc

    华理c程序实验报告(共9篇) 华理c程序实验报告(共9篇) 2011华理<C语言实验报告> C程序设计课程 实验报告册 所在学院 班 级 学 号 姓 名 任(来自:www.XIelw.Co ...

  8. java围棋代码_围棋源代码Java_Applet小程序

    围棋源代码Java_Applet小程序 /*一个Java围棋程序源代码*/ import java.awt.*; import java.awt.event.*; import javax.swing ...

  9. 简易计算机课程设计总结,C语言课程设计报告简单计算器程序

    C语言课程设计报告简单计算器程序 (26页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 24.9 积分 .课程设计名称:C语言课程设计课程设计题目:简单 ...

  10. C语言学生信息管理系统设计方案,c语言程序设计方案报告图书标准管理系统

    <c语言程序设计方案报告图书标准管理系统>由会员分享,可在线阅读,更多相关<c语言程序设计方案报告图书标准管理系统(6页珍藏版)>请在人人文库网上搜索. 1.c 语言程序设计方 ...

最新文章

  1. Gson:我爸是 Google
  2. JSP具体条款——response对象
  3. nginx配置ssl(配置文件)
  4. Laravel-admin hasMany表单关联提交报错字段 无详细信息错误说明
  5. 【sklearn学习】逻辑回归
  6. c语言循环程序怎么编程,c语言程序(5):循环结构程序设计
  7. 安装opencv3.4.0报错
  8. 使用C#进行点对点通讯和文件传输(通讯基类部分+发送接收
  9. linux安全与优化
  10. 遗传算法的原理与python实现
  11. oracle developer连接access
  12. 基于jquery实现的web版excel
  13. Arduino mixly 点灯科技(blinker) 在线电压监测(带电压高低提醒)
  14. 相濡以沫,不如相忘于江湖
  15. Mac 清除dns缓存
  16. mppdb 查看建表语句_内存MPP数据库介绍.pptx
  17. c语言紧凑算法的内存分配,C语言(第二章.1)算法与数据结构A.ppt
  18. html2canvas图片跨域问题
  19. 吐血整理深度学习入门路线及导航【教学视频+大神博客+书籍整理】+【资源页】(2019年已经最后一个月了,你还不学深度学习吗???)
  20. 读书笔记《硬件十万个为什么——开发流程篇》

热门文章

  1. 解决戴尔电脑蓝牙消失问题
  2. 拒绝平庸,这10个鲜为人知的实用网站,让你受益无穷!
  3. 鼠标右键转圈圈_【鼠标右键一直在转圈圈】鼠标右键一直在闪_鼠标一直在转圈圈...
  4. [gdc13]dx11效率优化
  5. 从银行、保险到证券,揭开大数据在金融行业的应用
  6. 上海--黄山三日自助游功略白金终极版
  7. TensorFlow 从入门到精通(8)—— 泰坦尼克号旅客生存预测
  8. acceleration transducer
  9. 【PX4自动驾驶用户指南】距离传感器
  10. LS1046A 环境搭建-LSDK快速搭建