1. 五子棋对战说明 2. 实验报告

3. 源代码

作品特点:C 语言程序 五子棋 作品功能:五子棋人机对战,人人对战。

目录:1

五子棋介绍。

五子棋棋型介绍。 人人对战的实现。 电脑下子的实现。 棋型价值的计算。 胜利及棋型的判断。 补充说明

五子棋介绍。

五子棋是一种两人对弈的纯策略型棋类游戏。只 要 任 意 一 方 在 棋 盘 上 且 同 一 个 回 合 上 连 为 五 子 为 胜 。 还 有 禁 手 规则 , 在 本 程 序 中 不 作 讨 论 。

五子棋棋型介绍。

1

本程序中的棋型均为本人自定义。本程序总共设计 35 种棋型。●表示玩家的棋子,◎表示电脑的棋子。以下称电脑 方为己方,玩家方为对方。从一空点向某一方向判断该方向 的棋型。某一方向指 1-8 方向 从右顺时针开始数。

①1①

①2①

空棋型。从一空点向一方向看连续 2 个为空的棋 型。空棋型共 1 种。

如图,从左端的空点向右看会发现 有连续 2 个空点。

活棋型。2 端无挡的棋型为活棋型。活棋型共 8 种: 己方 4 种,对方 4 种。

左图为 己活 3 。从左端的空点

向右看会发现己方有连续的 3 个子,且右端无挡。故 该点的 1 方向为己活 3。

左图为 对活 2

①3①

冲棋型。1 端无挡的棋型为冲棋型。冲棋型共 9 种: 己方 4 种,对方 4 种,边界 1 种。

左图为边界冲棋型。空点的右端为边界。

左图为 己冲 2。从左

端的空点向右看会发现己方有连续的 2 个子,且右端 有挡(此处有挡表示有对方的子或为边界)。故该点的 1 方向为己冲 2。

2

①4①

左图为 对冲 4。

空活棋型。从一空点向一方向看有 1 个空点,继 续看有己方或对方的活棋型。空活棋型共 8 种:己 方 4 种,对方 4 种。

左图为 己空活 2。从左端的空点

向右看有 1 个空点,继续看会发现己方有连续的 2 个 子,且右端无挡。故该点的 1 方向为己空活 2。

左图为 对空活 1。

①5①

空冲棋型。从一空点向一方向看有 1 个空点,继 续看有己方或对方或边界冲棋型。空冲棋型共 9 种:己方 4 种,对方 4 种,边界 1 种。

左图为边界空冲棋型。空点的右端为空点再

右看为边界。

左图为 己空冲 2。

从左端的空点向右看有 1 个空点,继续看会发现己方 有连续的 2 个子,且右端有挡。故该点的 1 方向为己空 冲 2。

3 人人对战的实现。

双方玩家轮流下子,直到一方形成五连即判为胜方。下 子时输入棋盘上显示的对应坐标。如果某方需要悔棋,则 输入 15 15 即可。悔棋只能悔一步。在人机对战中亦可悔 棋。

3

4 电脑下子的实现。

人机对战中电脑下子是通过 AI(int *p,int *q)这个函数 实现的。用 p 、q 返回下子的坐标。先历遍棋盘上所有点, 如发现一个空点则调用函数 value(int p,int q)计算该空点 的价值。每个点又由 8 个方向的棋型组成。调用函数 qixing(int n,int p,int q)判断空点 p q 在 n 方向上的棋型 号。对每种棋型进行赋值,然后对各个方向的棋型进行分 析。最后计算出该空点的价值。如此找到棋盘上价值最大 的空点,则电脑在该处下子。

5

棋型价值的计算。

棋型价值的计算是通过函数 value(int p,int q)实现的。先 调用函数 qixing(int n,int p,int q) 判断空点 p q 在 n 方向 上的棋型号。n 为 1-8 方向 从右顺时针开始数。对 8 个方 向的棋型进行分析后给出该点的价值。各种棋型的价值存 在数组 a[2][4][4]中。本程序将两相反方向的棋型进行合 在一起进行分析。本程序分为六类进行讨论。

① 空棋型 and 其他。

① 边界冲棋型 and 其他。

① 边界空冲棋型 and 其他。

① 己活己活 己活己冲 对活对活 对活对冲。

4

6

① 己活对活 己活对冲 己冲对活 己冲对冲。 ① 其他棋型。

胜利及棋型的判断。

胜利及棋型的判断都调用了函数 yiwei(int n,int *i,int

*j)。在 n 方向上对坐标 i j 移位。 n 为 1-8 方向 从右顺时 针开始数。

胜利的判断:每下一次子从该点向 1 方向移位,移位后判断 新点是否与下的子相同。如相同则继续移位判断,否则转向 判断即 n+=4;如转向后仍然没五连,则换下一个方向判断即 n-=3;直到出现五连则胜利,如果 8 个方向判断完都没有五 连则返回 0,表示还未胜利。

棋型的判断:棋型的判断主要运用 switch 语句。在某一方向 移位后判断该点的状态。最后得出该方向上的棋型号。

7 补充说明

在 WIN7

c语言五子棋源代码vc6,五子棋源码实验报告及人机对战说明.docx相关推荐

  1. 【编译原理】自上而下语法分析(CC++源码+实验报告)

    文章目录 1 实验目的和内容 1.1 实验目的 1.2 实验内容 1.3 实验要求 2 设计思想 2.1 根据BNF描述该文法 2.2 根据文法画相应的语法图 2.3 判断是否是LL(1)文法-求Fi ...

  2. 基于SSM的商城项目项目源码+实验报告

    基于SSM的商城项目 本项目是今年暑假小学期时完成的,耗时四天时间,在小学期结束项目答辩时,在年级里斩获冠军,在此很感谢我的团队,正是我们各个环节的配合,最终才能够获得如此好的成绩. 目录 基于SSM ...

  3. C语言学生学籍信息管理系统源码附赠实验报告

    一.课程设计目标 C语言课程设计的目的是通过课程设计的综合训练,培养学生实际分析问题.编程和动手能力,最终目标是通过这种形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务.本课程设计具有如下 ...

  4. 【181010】网络五子棋,VC++游戏源码

    网络对战版的五子棋,VC++游戏源码,带音乐,可设置网络最终网络下棋,通过源代码你将了解到设置菜单状态.服务器端口申请.客户机申请连接.发送数据.游戏编写.监听和使用套接字.主菜单对象定义等基础知识, ...

  5. python五子棋小游戏程序源码

    wx供重浩:创享日记 对话框发送:python五子棋 免费获取完整源码源文件+配置教程文件+可执行文件等 在PyCharm中运行<五子棋(控制台版)>即可进入如图1所示的系统主界面. 具体 ...

  6. Linux自带的五子棋游戏,Android 五子棋游戏示例图与源码下载

    Android 五子棋游戏源码很多,下面是一款不错的Android五子棋游戏示例图及源码,导入Eclipse工程就可以使用了. Android 五子棋游戏部分源码: package five.itca ...

  7. c语言旅游系统,C语言计算旅行花费附带源码

    C语言计算旅行花费附带源码 来源:www.xysxzl.com时间:2021-03-01 10:56 旅游程序 国庆节桐桐一家想自驾旅游,目的地有北京.海南.云南等许多好玩的地方可选择,在已知汽车平均 ...

  8. 2020交友聊天PHP代码 社交网络网站源代码 聊天即时通源代码送APP源码

    2020交友聊天PHP代码 社交网络网站源代码 聊天即时通源代码送APP源码 这是一款社交网络系统,你可以在简短的几分钟内创建自己的社交平台,支持发布视频.音频.文件.图片,用户之间可以相互关注加好友 ...

  9. 自动发邮件的程序 c语言,5分钟!教你用C语言发送邮件:附送源码+教学!

    5分钟!教你用C语言发送邮件:附送源码+教学!-1.jpg (10.71 KB, 下载次数: 0) 2018-9-3 02:21 上传 关注<一碳科技>,获取更多知识! 前言 相信年夜家都 ...

最新文章

  1. windows下安装android版reactnative
  2. k8s mysql volume_Kubernetes(k8s)中文文档 名词解释 Volumes_Kubernetes中文社区
  3. Java反编译工具-JD-GUI下载以及使用
  4. codeforce 609A - USB Flash Drives
  5. C语言与Java怎么沟通_c语言初学指针,对于java面向对象的初理解
  6. 第三次学JAVA再学不好就吃翔(part10)--基础语法之if语句
  7. 3dmax如何拆分模型_3dmax制作装饰柜1
  8. sap 一代增强_在SAP故乡,感受“边缘智能”之变
  9. 95-190-742-源码-WindowFunction-AllWindowFunction
  10. Python 进阶:全面解读高级特性之切片!
  11. jsp中把js变量赋给java变量,或者将java变量赋给js变量怎么做?
  12. Leetcode431.将N叉树编码为二叉树(golang)
  13. 基于小米球(Ngrok)实现外网访问
  14. 发那科机器人xyz的方向_发那科机器人应用-机器人坐标系介绍(4)
  15. 语音可懂度评估(一)——基于清晰度指数的方法
  16. java+SpringBoot+HTML+Mysq基于微信小程序的大咖读书系统的设计与实现
  17. 加州圣塔克拉拉大学计算机专业,圣塔克拉拉大学在美国排位
  18. (最新整理)国内网页设计网站网址大全(转)
  19. 神经网络原理的简单介绍,神经网络几何原理图
  20. 博客实名与一年前的预言

热门文章

  1. 知识图谱学习笔记(一)——知识图谱基础
  2. 小家电和消费者的距离,只隔着一个闲鱼
  3. 人工智能的十大应用(无人驾驶丨人脸识别丨医学图像处理)
  4. 瑞芯微-RV1109主板各参数介绍
  5. 排序算法整合(冒泡,快速,希尔,拓扑,归并)
  6. java备份还原mysql数据库
  7. c++gdal如何在大图像中截取小图像并获取其图像信息_CVPR2020 | 真实场景中的玻璃检测,有趣的应用...
  8. 花式宠妈:这个母亲节,带妈妈逛银泰
  9. 国产等离子体仿真软件EasyPSim-PIC3D
  10. mysql事务处理银行转账模拟提交以及回滚