`
Coco_young
  • 浏览: 127639 次
  • 性别: Icon_minigender_1
  • 来自: 湖南长沙
社区版块
存档分类
最新评论

五子棋图片版(实现了简单的人机)

QQ 
阅读更多

最近纠结了一段时间,终于把一个简单的可以人机的五子棋写好了。

 

1.功能介绍:

           该五子棋主要实现的功能有:下子,判输赢,人人对战,简单人机对战,悔棋。界面主要是模仿QQ五子棋的风格。

 

2.图片展示:



 

 

 

3.技术要点: 主要是用二维数组保存棋局,实现棋子的重绘和输赢的判定以及人机对战。其次就是人机对战中的的搜索局面和落子点优先级的判定,以及用随机算子实现同优先级的落子点的获得(本人采用的是在每种情况下暴力搜索出落子点,然后将该落子点保存在该情况下的队列里,优先级的判定用到了一些布尔变量,然后用条件语句就可以实现)。

悔棋主要就是通过用自定义的一个队列保存落子点在数组中的下标索引,悔棋时将自定义队列里最后的一个元素拿出来,把数组中该下标的元素便成0,然后重绘窗体,再移除自定义队列里的最后一个元素。还有就是将图片与程序一起打包的方法,示例如下:先将图片的地址变成url的地址,然后再new ImageIcon的对象时,用该 URL的地址,最后把图片所在的包与程序所在的包一起打包就可以了。



 

 还是就是绘制图像的方法:调用drawImage.

 

4.制作过程中遇到的问题和现在尚未解决的问题.

     制作过程中的问题主要有:在计算棋盘左上角坐标时,由于用JPanel把窗体分成2半,所以用MouseListener获得的左上角坐标和实际上该点在JPanel上的坐标不对应,导致我纠结了一下(最后还是慢慢的试,才把误差给找出来)。还有就是人机对战是,清空保存落子点队列的时机选择不当,老有棋子被覆盖(由于上次的落子点还在队列里),最后还是纠结了几个小时才发现。。

     尚未解决的问题:AI功能还太弱。。 

 

 

  • 大小: 376.5 KB
  • 大小: 374.7 KB
  • 大小: 374.3 KB
  • 大小: 37.8 KB
  • 大小: 7.8 KB
  • 大小: 3.2 KB
  • 大小: 18.7 KB
0
7
分享到:
评论

相关推荐

    用C#winForm 实现的人机对战的五子棋

    在本文中,我们将深入探讨如何使用C# WinForm来实现一个人机对战的五子棋游戏。五子棋是一种双人对弈的策略棋类游戏,目标是在棋盘上连成五子,无论是横、竖还是斜线。通过C# WinForm开发这样的游戏,我们可以学习到...

    python实现人机五子棋

    ### Python 实现人机五子棋游戏 #### 一、项目概述 本项目通过Python语言实现了一个人机五子棋游戏程序。此程序不仅支持人机对战模式,还支持双人对战以及局域网内的远程对战。游戏界面采用了PyQt5库进行构建,...

    Android人机五子棋项目源码_安卓源码.zip

    在本项目中,"Android人机五子棋项目源码_安卓源码.zip" 提供了一个完整的Android应用程序,用于实现人机对弈的五子棋游戏。通过分析这个压缩包内的源码,我们可以深入理解Android应用开发的核心技术和人机交互的...

    VC实现五子棋游戏人机对弈

    在本项目中,“VC实现五子棋游戏人机对弈”是使用Microsoft Visual C++ 6.0(简称VC6.0)开发的一款基于C++编程语言的五子棋游戏。这款游戏具有人机对弈的功能,即玩家可以与计算机进行对战。下面将详细介绍这个项目...

    javascript实现的五子棋人机对战游戏源码

    在本项目中,我们讨论的是一个使用JavaScript实现的五子棋人机对战游戏源码。这个源码提供了实现一个基本的在线五子棋游戏所需的所有功能,包括棋盘渲染、用户交互、人工智能算法以及游戏逻辑。让我们深入探讨其中...

    五子棋人机对战web版

    【五子棋人机对战Web版】是一个基于JavaScript实现的在线游戏,它允许玩家与计算机进行五子棋对弈。这款应用专为谷歌浏览器优化,对于其他浏览器,特别是IE浏览器,兼容性可能不佳。该项目不仅是娱乐工具,更是学习...

    js写五子棋人机版

    综上所述,实现"js写五子棋人机版"需要掌握JavaScript的基本语法和高级特性,理解游戏规则,并能运用算法和数据结构来模拟游戏过程。通过这个项目,开发者不仅可以提升JavaScript技能,还能锻炼解决问题和逻辑思维的...

    五子棋 人人对战 人机对战

    本篇文章将围绕"五子棋 人人对战 人机对战"这一主题,详细解析其在软件开发中的实现原理和技术要点。 首先,我们要理解五子棋的基本规则:两位玩家轮流在棋盘上落子,先形成连续五个同色棋子的一方获胜。在电子游戏...

    c#五子棋人机对战

    - **搜索算法**:为了实现人机对战,需要为计算机设计一个对手。最简单的实现是采用Minimax算法,它通过深度优先搜索来预测未来的局面,并评估每步棋的好坏。 - **Alpha-Beta剪枝**:为了提高搜索效率,通常会结合...

    基于java的五子棋游戏(人机对战)

    我毕业设计自己做的基于java的五子棋游戏软件,获得优秀论文,功能在单纯的人机对战上算比较齐全,也比较好玩!希望为毕业设计做游戏的同学提供些查考! 软件的基本功能 软件的基本功能介绍如下: 1. 程序运行后...

    javascript五子棋人机对战

    【javascript五子棋人机对战】项目是一个利用JavaScript实现的在线五子棋游戏,它包含人工智能(AI)模块,让玩家可以与计算机进行对战。这个项目可能是一个半成品,开发者试图通过不同的计算策略来优化游戏性能,...

    五子棋程序 人机对战版本(VB)

    【五子棋程序人机对战版本(VB)】是一个基于Visual Basic开发的简单游戏程序,专为初学者设计,便于理解与学习算法的应用。在这个项目中,开发者使用VB的基本控件和编程逻辑构建了一个单一界面的五子棋游戏,实现了...

    GUI版Java五子棋源码,可人机对战

    【标题】"GUI版Java五子棋源码,可人机对战"涉及的主要知识点包括Java图形用户界面(GUI)编程、游戏逻辑实现、人工智能(AI)算法以及事件处理等。下面将对这些主题进行详细阐述。 1. Java图形用户界面(GUI)编程...

    C语言游戏2-五子棋(人机对战)

    在本文中,我们将要讨论如何使用C语言开发一个五子棋游戏,实现人机对战功能。游戏界面使用C语言开发, Visual C++ 6.0作为开发环境。下面,我们将逐步讲解游戏的实现过程。 一、开始工作 首先,我们需要新建一个...

    MFC人机对战版五子棋

    MFC单文档实现五子棋,适合MFC初学者学习。包含的知识点有:1.背景图片的调用 2.多线程实现背景音乐 3.定时器实现闪烁提示 4.使用链表实现悔棋功能 5.鼠标响应函数实现下棋功能 6.价值库函数帮助电脑判断

    python实现五子棋人机对战游戏

    五子棋比起我之前写的几款游戏来说,难度提高了不少。如果是人与人对战,那么,电脑只需要判断是否赢了就可以。如果是人机对战,那你还得让电脑知道怎么下。 我们先从简单的问题来看。 开端 画棋盘 首先肯定是要画出...

    JAVA版GUI人机对战 五子棋

    【标题】"JAVA版GUI人机对战 五子棋"是使用Java编程语言和Swing库构建的一款桌面游戏,允许玩家与计算机进行五子棋的对弈。五子棋是一种双人对弈的策略游戏,目标是在棋盘上先形成连续的五个棋子(横向、纵向或对角...

    Python五子棋人机对战游戏源码

    #最后决定就写个五子棋人机对战吧! #这个源码我在多年前曾用VB6写过,当时毕业设计拿了优秀,之后经过了几次修改计算机Ai还不算太差,想投机赢是没机会的。 #由于本人初学Python(第一个完整的Python程序),有些技巧...

    VB单机五子棋 人机对战 源码

    【VB单机五子棋 人机对战 源码】是一个基于Visual Basic(VB)编程语言开发的单机版五子棋游戏项目。这个项目的核心特点是它包含了人机对战模式,允许玩家与计算机进行对弈。下面将详细阐述这个项目中涉及的IT知识点...

Global site tag (gtag.js) - Google Analytics