数据结构设计--《五子棋》对弈程序

news/2025/1/16 2:47:13/

手敲800多行代码,搞了6个小时,终于写完了五子棋博弈问题,艰难!(以下纯属个人思路,仅供参考,创作不易,禁止搬运)

希望对大家有帮助。

1.课题要求

还记得我们在第一章 见过的“人机对弈”那个例子吗?现在就请你利用自己所学的知识,设计一一个“ 五子棋”对弈程序吧。注意:你所设计的‘对弈程序”的对手是人,因此你的“对弈程序”也要具有一定的智能:能赢就绝不平局,最差的结果也就是平局。要求:

(1)当用户执子时,需在界面上输入落棋的位置。

(2) 当用户落子后,“对弈程序”在两秒后给出落子位置。

(3) 每当一方落子后,要刷新棋盘状态。

(4)棋盘大小为15*15。

2.思路

又加了一个人-人PK。

(1)判断输赢,只可能在当前落子的位置判断输赢

(2)电脑所要执行的操作:

a.当用户已经构成3子的时候,此时电脑必须拦截用户所下的第4个棋子的

落子位置,如果拦截失败,用户在某种意义上面已经取得胜利,只需要走

接下来的操作即可,此时用户胜利;如果拦截成功,则继续游戏,但是还有

一种情况,当用户连成3子的话,此时电脑已经连成3子了,此时电脑下连成

3子的位置.

b.如果用户没有构成3子的话,电脑可以走自己的步数,一次搜索有没有构

成4个棋子的,如果有,则落下此棋子;如果没有4个棋子的,再搜索有没有


http://www.ppmy.cn/news/12856.html

相关文章

【青训营】Go的依赖管理

Go的依赖管理 本节内容来自于:字节跳动青年训练营第五届 后端组 1.什么是依赖 实际开发的工程需要使用许多第三方库,这能够使得我们站在巨人的肩膀上,使用第三方库中封装好的函数,可以大大方便我们的程序开发,第三方…

mysql 分库分表、 分区(partition)、sharding-sphere 综合整理

引言: 一般情况下,如果单表数据量超过2000w的样子查询速度会很慢,因为内存无法存储其索引,使得之后的 SQL 查询会产生磁盘 IO,从而导致性能下降。解决方案:mysql 分区 、 分表处理 分库分表: 原…

Python【r e】模块正则表达式[中]实战

正则表达式相关函数和符号用法:#正则表达式""".匹配任意某个字符[.]与转义字符的作用一致,表示匹配.,配合 ,[.],即匹配一次或则多次. text . 或则 text ...2.从头匹配或者从左往右匹配re.match()"""import …

Vuex模块化

store/index.js 【sumOptions、newsOptions分文件存放,并利用modules配置项将其模块化】import Vue from vue; import Vuex from vuex; import sumOptions from ./sum; import newsOptions from ./news; Vue.use(Vuex); export default new Vuex.Store({modules: {s…

【C++】二叉树进阶OJ题

​🌠 作者:阿亮joy. 🎆专栏:《吃透西嘎嘎》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉根据二叉…

2022视频编码招聘面经

视频编码相关工作大概包括以下几个方向: 1. 视频编码标准,主要参与国际国内编码标准制定工作,招聘公司大多都是大厂,坑位较少 2. 软件编码器优化,主要是对codec内核的加速和性能提升,互联网公司需求较多 3.…

【网络安全】渗透测试之linux信息收集

前言 在内网中linux的服务器是占大多数的,主要原因分为以下几点 1.便宜,linux大多为免费的,Windows Server是收费的,对于企业来说为了节约成本,大量采用linux服务器。 2.轻便,linux主要是对服务器进行服务的…

Transformer学习笔记1

模型分类:GPT类型: auto-regressive(decoder模型,过去时刻的输出也是现在的输入,例如要得到y8还需要知道y1到y7,但不能使用y9,例如用于文本生成任务)GPTGPT2CTRLTransformer XLBERT类…