一 需求分析

本软件是一款跨平台的网络实时五子棋对战软件,实现建立主机和连接主机、实时对战、判断输赢和危险提示等功能。支持Windows 、 Linux和OSX平台。

程序主要功能如下:

建立服务器

能创建网络主机。在界面上添加功能按钮,显示创建主机对话框,对话框显示主机IP,还有取消按钮

连接服务器

游戏客户端能输入主机。添加软键盘,用来输入主机的IP

五子棋对战

需要有棋盘界面,并且可以实现实时对战。并且实现棋子坐标的数据传输,传递报文表示最新的棋子的坐标,并且实时刷新棋盘信息。并且在界面标记游戏状态,显示当前的落子方,如果哪一方赢了就弹出对话框显示输赢

危险提示

当用户点击提示功能按钮的时候,可以判断出对方如果在哪些地方下子,你会出现如下的情况:

再落一子,出现两个无阻挡的连续3子的情况

再落一子,出现一个无阻挡的连续3子和一个有单侧阻挡的连续4子的情况,并且以炸弹图标标出危险位置

二 程序设计

本软件由棋盘模块GameBoard,下棋模块Chess和网络连接CreateDialog和ConnectDialog连接而成。

棋盘模块包含了对于棋盘的建立,对棋盘进行更新的事件处理,鼠标按下落子时的事件处理等对于棋盘的事件处理。还有对于棋盘信息的储存方式,和对于接受的信息进行呈现的功能

下棋模块主要包含了整个界面的设计,按钮功能的设计和管理发送接收并解析棋盘信息的功能

网络连接模块主要有两部分。第一部分是建立主机。程序会先寻找自己的默认IP并将其提供给用户,然后然用户输入主机IP。第二部分是连接主机,弹出的窗口会有软键盘供用户输入想要连接的主机的IP地址

程序文件包含两部分:

一部分是程序的源代码,在src文件夹中,包含main.cpp,mainwindow.cpp, mainwindow.h, gameboard.cpp, gameboard.h, create.cpp, create.h,connect.cpp和connect.h

另一部分是程序的资源文件,在rec文件夹中,包含危险提示需要的炸弹图标和其他一些需要的音效文件

三 程序实现

3.1 棋盘模块

棋盘模块主要有GameBoard类组成,它集成QWidget类,实际上就是一个下棋用的棋盘界面的设计。包含了画图和对于事件处理的头文件。此类中应用vector在储存玩家和对方的棋子的位置,并且在每次更新棋盘的时候,画图函数都会将vector中所有的棋子信息重新画一次。应用bool变量inround对是否己方下棋进行判断。应用struct创建ches:结构,并创建state:数组用来存储每个位置棋子的情况。对于事件的处理,此类中先建立一个even七Fil七er来筛选棋盘界面的事件。然后在画图事件的函数添加了对于棋盘的设计和添加棋子的画图操作。在用户显示提示的时候,也会在危险的地方显示提示图标。对于棋盘的设计,本软件采取了围棋棋盘的设计策略,为19x19的棋盘。

3.2 下棋模块

此模块主要是对于主窗口的界面进行布局和功能的设计。在主界面中,将一个Widget提升为GameBoard类,从而在这个窗口中显示棋盘模块中创建的棋盘。并且在主窗口中加入了功能按钮和,提示当前落子方的Label。同时,其中的readData()函数和sendChessInfo()等函数负责管理棋盘的信息接收后的最后最终处理和发出棋盘的更新信息,包括新的落子和输赢等。

3.3 网络连接模块

此模块主要负责的是网络连接。其中包含CreateDialog类和ConnectDialog类。CreateDialog类负责建立一个自己IP地址的主机,在对话框中,会先显示出自己的电脑现在的IP地址,让用户直接选择。然后点击确定会直接将自己作为主机。ConnectDialog类负责连接一个主机。对话框中设有软键盘用以输入主机的IP。两个类中的按钮均应用QSignalMapper来管理。

四 运行测试

文件运行起来只包含一个主窗口,还有连接网络时需要的两个弹出界面。程序运行界面如下:

基于linux的qt五子棋小游戏下载,课内资源 - 基于Qt的图形化界面网络在线对战五子棋游戏...相关推荐

  1. c语言全民飞机游戏代码,课内资源 - 基于VC++和OpenCV实现的全民飞机大战游戏

    摘要功能:利用C++语言完成了一个小游戏项目-全民飞机大战,该游戏首先能够给用户提供注册,登录功能:提供了菜单栏及两种游戏模式,一种是无尽模式,另一种是一般模式:一般模式中用户通过控制玩家飞机攻击敌方 ...

  2. 4维俄罗斯方块 java,课内资源 - 基于Easyx插件的俄罗斯方块游戏的设计与实现

    一 需求分析 1.1 设计内容: 设计一个俄罗斯方块游戏,根据实际游戏的规则完成设计. 游戏设计方案: 在一个图形绘制区域的正上方随机产生四种不同方块中的任意一种的初始位置,并使其向下运动 定义键盘, ...

  3. 用c语言写扫雷游戏倒计时代码,课内资源 - 基于VS2013实现的扫雷小游戏

    1.任务概述 1.1 系统总体目标 本项目的目的在于开发一个扫雷软件,该软件面向游戏玩家用户,具有进行扫雷游戏的功能.游戏玩家将使用系统中的如下功能: 进行游戏 使用自定义游戏规格功能 使用计时器功能 ...

  4. c语言文字冒险类游戏,课内资源 - 基于C语言和easyx实现的巧虎划船大冒险游戏...

    1 需求分析 1.1 功能需求 游戏性:通过键盘方向键的←.→.↑.↓来控制巧虎(船)的移动,躲避暗礁,碰撞宝物(特殊宝物),来增加积分,在倒计时结束前(到达终点前)争取得到更多分数.为提高可玩性,宝 ...

  5. python电梯题_课内资源 - 基于PyQt5实现的python电梯调度程序

    1. 使用说明 1.1 项目简介 电梯作为人们出行的重要工具之一,在人们日常生活中扮演着重要的角色.而电梯的调度算法是决定电梯运行效率的关键,一个高效的调度算法对电梯能否有效地运行起到重要的作用.因此 ...

  6. 本系统采用jsp和mysql_课内资源 - 基于Jsp和MySql的汽车租赁系统

    一.引言 汽车租赁管理系统是基于MVC三层架构完成,使用Java语言开发,主要应用Jsp完成前台界面部分,Servlet MVC完成后台逻辑部分. 本系统的设计从现实角度出发,根据实际汽车租赁信息管理 ...

  7. 基于linux下QT象棋,课内资源 - 基于QT实现的网络象棋游戏

    1.功能说明 1.1 初始界面 初始界面中包含一个菜单栏,菜单栏中有一个建立连接选项,可以用来与其他程序建立连接. 1.2 建立连接 单击建立连接后,会弹出一个对话框以配置连接的相关信息,包括创建服务 ...

  8. python迷宫小游戏代码_课内资源 - 基于python实现的迷宫游戏

    一.项目概述与编译环境 本次大作业选题为题目2,即小兔子找胡萝卜的迷宫问题,最终完成开发的游戏名为Caveman and Treasure(穴居人寻宝),游戏整体界面如下: 该项目在windows下编 ...

  9. 基于linux的银行管理,课内资源 - 基于Linux的仓库管理系统

    1 需求分析 要求的仓库管理系统的功能如下: 查看仓库库存列表功能 查询功能:可以随时查看当前仓库的库存中的某些商品的一系列信息,包括商品名,剩余量 进货功能:(以下两个功能是根据输入自动选择的) 在 ...

最新文章

  1. sklearn的认识
  2. [C/C++]重读《The C Programming Language》
  3. LeetCode 03. 无重复字符的最长子串
  4. 微型计算机杂志合订本,微型计算机(2008上半年合订本)(上下)(附光盘)
  5. 作为一个php程序员要学会的技能
  6. 涉密计算机检查情况 月检查表,关于2017年下半年保密检查的通知
  7. 机器学习基础知识之概率论基础详解
  8. 专业技能与职业素养报告计算机,职业技能与职业素养的心得体会
  9. 作用域/作用域链与原型/原型链
  10. 无法同步因计算机未授权,iTunes无法授权和同步解决办法教程
  11. 小说作者推荐:耳东兔子合集
  12. 怎样修复小米服务器,小米手机删除的视频想要恢复?那你一定不能错过这些实用技巧...
  13. 10分钟用Python制作恋爱日志
  14. hashtable的解释
  15. Java实现单向链表基本功能
  16. Angular文件创建命令
  17. 实例10:四足机器人运动学逆解可视化与实践
  18. Android之scheme使用
  19. 缺芯导致全球汽车减产超一千万辆
  20. CSDN-markdown编辑器帮助文档

热门文章

  1. Ubuntu关机重启命令简介
  2. Kotlin-Android开发之开源《新闻APP》基于MVP模式+Retrofit2.0+RxJava1.0+Dagger2框架
  3. 成都拓嘉辰丰:拼多多完善平台制度,规范发展
  4. Gunicorn的安装与启动
  5. 亚马逊不想残酷对待员工 将更改现行员工考评制度
  6. 拼多多品质退货率如何降低?有什么技巧?
  7. html网页音乐视频教程,html网页添加音乐视频的实现示例
  8. 前端实现js模糊查询关键字显示下拉框功能的实例教程
  9. Web方向学习路线(信息安全)
  10. 看看苹果官方对手机直播各种参数的建议