`
谷穗苗
  • 浏览: 8321 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

自制五子棋

阅读更多
  • 实现五子棋人机对战
  •     1,继承JFrame类。
           首先创建一个界面,用来放棋盘。设置窗体的各属性,在界面上画线,有线的地方作为棋盘。对棋盘大小,棋子大小,棋盘上行数,列数等都要进行设置。这里的画线要在对父类JFrame的paint函数的重写方法中。这样就可以一直可见棋盘。而且在paint的重写方法中,还要对画棋子进行重写,这样每次下的棋子也就能得到保存。
    在棋盘上方还可以添加菜单栏,对菜单栏下的选项添加监听器。这样就可以让用户对下棋流程进行控制。

        2,设置下棋子的条件。
           人机对战,用户先下子,设置用户下黑子,计算机下白子。用一个计数器计算当前下了的棋子的数目count。每当count%2==0时就让用户下棋,否则计算机下棋。每下一颗棋子,进行一次判断,看是否有五子连珠。
          用户下棋时会点到棋盘上非焦点的地方。那就要对用户点击的位置进行判断。得到点击处的横纵坐标,用它们分别对棋盘格子大小取余,如果都小于误差范围或者都大于(格子大小-误差范围),那么就讲坐标点改到距离最近的焦点上。再判断这个焦点是否还是空(还没下任何棋子,用一个数组存放信息,如果是白子则为2,是黑子则为1,否则为0),是空就在该点画一个黑色的圆,设置该点处信息为1。对当前棋局进行判断,看是否已经有五子连珠了。
          接着就是计算机下棋了。设置棋子颜色为白色;count++;对当前棋局进行判断,看应该下哪一个地方才能让黑子不赢,让白字尽快赢。找到该点,在该点画一个白色的圆。判断当前是否有五子连珠。
          判断应该下哪一个点的算法:
         分析找到白子的数目和附近空格的情况。如:空白白白空;黑白白白空;对空格赋一个权值。白子数目每增加一个,所权值相应乘以10;黑子是一样的赋值方法。只要一反过来的身份来看,两种赋权值方式是相同的。
         横向,纵向,左斜方向,右斜方向四个方向分别判断棋子数目,分别赋权值。
         横向:用2个变量(a1,a2)存放当前位置的横坐标,2个变量存放当前位置纵坐标。a1--向左找相同的棋子,a2++向右找相同的棋子。记录找到的棋子总数。在继续向两边找空格数,再给当前位置处加上相应的权值,权值累加。
         其他三个方向相似的查找与赋值。只是坐标改变方式不同。
         把从四个方向分别给当前位置赋得权值加起来。用一个数组存放棋盘上个点的权值,找到权值最大且还是空格的点,在该点下白子。接着判断是否有五子连珠。


        3,判断是否五子连珠
          横向,纵向,左斜方向,右斜方向分别进行判断。     
          横向:从当前下的棋子位置向左找,一直找到跟该棋子颜色不相同或者不相连的点,判断是否已经找到有5颗相同的,如果是则输出该颜色的棋子赢了。然后从最后一个棋子向右找,记录总共找到多少个相同且相连的棋子。如果有5颗了,则输出当前下的颜色的棋子赢了。
          其他三个方向类似。
















分享到:
评论

相关推荐

    自制五子棋(完美学习班)

    自制五子棋(完美学习班)是一款专为学习者设计的棋类游戏程序,它以五子棋为主要内容,提供了一个完整的平台供玩家磨炼棋艺。程序中的棋盘是通过编程技术动态生成的,这涉及到图形用户界面(GUI)的设计和实现,是...

    c++mfc自制五子棋

    《C++ MFC实现五子棋游戏》 五子棋是一种经典的双人对弈棋类游戏,深受全球玩家喜爱。本文将深入探讨如何利用C++编程语言和Microsoft Foundation Classes (MFC) 框架来设计一个五子棋程序。在MFC中,我们可以构建出...

    一个自己做的简单五子棋游戏

    一个自己做的简单五子棋游戏一个自己做的简单五子棋游戏一个自己做的简单五子棋游戏

    java 自制五子棋游戏 积分下载防止盗传

    输入输出皆在命令行窗口,简易测试第一版本,安全好用。

    自制五子棋元素图片素材-永久无需积分(该图片下载自其他作品,具体详参资源描述)

    本资源中提供的是,无需积分即可下载,下载出问题可以前往本人主页依照“查看详细资料”处信息,加好友获取。 图片来源:...

    五子棋的制作过程。看看完全的程序,自己也可以做的

    五子棋是一种简单却富有策略性的双人对战棋类游戏,其目标是在棋盘上先连成五子的一方获胜。本文将深入探讨如何使用C语言设计一个五子棋的人机对战程序,包括程序的数据结构、评分规则、胜负判断和搜索算法。 首先...

    java自编双人五子棋程序.jar

    用户可以通过双击`.jar` 文件来启动五子棋游戏,或者在命令行环境中使用`java -jar 自制五子棋游戏.jar` 命令运行。 知识点详解: 1. **Java GUI编程**:五子棋游戏通常会有一个图形用户界面(GUI)供玩家操作,这...

    自制简易基于对话框的mfc五子棋

    【标题】:“自制简易基于对话框的MFC五子棋” 在编程领域,MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,它为Windows应用程序开发提供了丰富的功能和接口。MFC五子棋项目是利用MFC库创建的一个...

    Qt五子棋自制学习

    【Qt五子棋自制学习】项目是一个利用Qt5.0框架开发的桌面应用程序,它提供了一个功能完善的五子棋游戏平台。在这个项目中,开发者不仅实现了基本的五子棋规则,还加入了网络对战和人机对战模式,使得用户可以在...

    自编五子棋游戏

    自编五子棋请试试有没有什么问题是双人的

    自制java版五子棋简易代码(仅供参考)

    今天重新温习java书籍,看到面向对象章节,为了更好的理解面向对象含义,特意写了这样一个小程序,希望与大家分享

    c++自制的双人五子棋小游戏

    与五子棋规则相同,当出现有五个相连的棋子时,一方获胜 一局结束后,记录个人胜负次数 在棋局内,按Q键退出 这是一个简易版本,以后会有一个升级版 可能需要使用VS重新编译一次,如果是使用dev,需要新建一个项目,...

    scratch双人五子棋.sb3

    自制版双人五子棋,有一点小bug,但不影响游戏体验。操作简单,

    app-release.apk

    自制五子棋小程序,并在手机上测试运行,用的是java编写,再将其转到android开发上

    {免费}自制c++五子棋(低难度)部分有借用大佬代码

    五子棋小游戏,供给游玩和学习

    MFC双人五子棋(VS2019编译通过)

    自制的MFC双人五子棋,完全使用图形界面,有自动判断胜负、悔棋、保存和打开棋局等功能,具体见我的博客https://blog.csdn.net/qq_54121864/article/details/112150450?spm=1001.2014.3001.5502

    五子棋对弈机器人移动平台的研究.pdf

    4. 棋盘和棋子的设计:自制的五子棋棋盘由横纵各15条等距离、垂直交叉的平行线构成,共225个交叉点,作为对弈的落子点。棋盘的设计考虑了用户体验和操作便利性,比如棋盘底色使用的是黄色,而格线为黑色,这样的颜色...

    五子棋团队项目(大学c++适用)

    这是一份非常好用的团队c++项目,内容包含源代码和报告ppt,可以帮助你轻松拿到团队项目的高分(涉及各种函数模板)。...团队自制的双人五子棋,可以实现自动判断胜负、悔棋、人机对战等功能,非常实用。

    自制棋子.doc

    【自制棋子】这篇文档主要介绍了两种自制棋子的方法,一种是使用Photoshop(PS)软件制作木质象棋棋子的教程,另一种是利用废弃物品手工制作中国象棋的步骤。 1. **Photoshop制作木质象棋棋子教程**: - 首先创建...

    STM32自制开发板 DIY

    STM32是一款基于ARM Cortex-M内核的微控制器系列,由意法半导体(STMicroelectronics)生产。STM32F103是该系列中的一款,具有高性能、低功耗的特点,广泛应用于嵌入式系统设计。这款64脚的STM32F103开发板是为喜欢...

Global site tag (gtag.js) - Google Analytics