用Qt 编写黑白棋程序

前言:这是继三天学习c++后,学习了两天Qt 做的项目。

软件设计开发流程:

瀑布模型:

  • 可行性分析

时间:

共8天(其中前两天学习Qt3.1 与Qt4.3.5,中间编程,最后的两天用来移植到arm板上运行)

经济:

无任何经济问题

技术:

学过三天c++,两天的Qt

借助Qt 的assistant ,应该没有什么大的问题

  • 需求分析

基本功能:1、下棋;2、计数;3、提示该谁下棋;4、跳过;5、棋子、背景图片;6、胜负判断;7、重新开始;

扩展功能:8、音效;9、背景音乐;10、人机对战;11、联网;13、难度设置;14、历史记录;15、窗口菜单;16、游戏大厅;17、计时;;18、双方起名;19、重新开始;20、游戏说明;21、开场动画;22、悔棋;23、游戏存盘;

  • 概要设计

  1. 棋盘类

  2. 提示类

  3. 整体类

  • 详细设计

提示类:

Class movie

{

构造函数:

初始化QTimer *timer

设置先画红棋子或蓝棋子的标志flag = 0

连接信号timer和槽update()

Slot:Myslot(int FLAG)

根据传进的FLAG判断该哪个棋子在走

该红棋子走时,

红白开始闪烁

蓝白停止闪烁

该蓝棋子走时

红白停止闪烁

蓝白开始闪烁

绘图函数paintevent

flag = 0 时画红旗子或蓝棋子(再根据color决定到底画蓝还是红),画完 flag 置 1

flag = 1时画白棋子,画完置 0

私有成员 int color :

color = 0表示画红旗子,color = 1 画蓝棋子

}

棋盘类:

class chessboard

{

构造函数:

初始化棋盘,在期盼中间画上四个棋子

设置红方先走

设置默认情况是人与人之间的对战

设置棋盘的背景颜色

paintevent :

paintChessboard()

画棋盘,棋盘大小能随窗口的改变而改变:分窗口的高比宽长和 高比宽短两种情况;

intichessboard()

测试,先在棋盘上画棋子

同样由窗口的宽和高分两种情况,同时根据数组chessnum【8】【8】的值分情况画上棋子:值为1 代表红棋子,2 代表蓝棋子,0 代表此处为空。

鼠标事件(下棋)mousepressevent()

取得鼠标点击处的屏幕坐标

根据屏幕坐标计算相应的chessnum【】【】数组的下标,也分宽高的长短不同两种情况

调用下棋规则函数,若能在此处下棋,下棋,把标志flag 置给对方

统计此时双方的棋子个数,发射信号到相应的lcd上

判断游戏是否结束,弹出最终的胜负信息

slot:

restartgame()

再次初始化棋盘,设好各相应的标志

skip()

跳过功能,己方无棋子可走时把下棋的标志置给对方

同时改变相应的提示信息

playwithpc()

人机对战

signals:

redNumChanged()

发射红棋子数量

blueNumChanged()

发射蓝棋子数量

成员函数:

redChessmanNum()

统计红棋子数量,发给相应的lcd 显示

blueChessNum()

统计蓝棋子的数量,发给相应的lcd

playChess(int i, int j, int FLAG) , 其中i, j , FLAG 分别代表横坐标,纵坐标,棋子的标志位

下棋规则

分八个方向判断此处是否能下棋

playWithPC()

人机对战

遍历数组,取出值为0 的元素,根据下棋规则判断此处能否下棋,能则下,把下棋标志置给人,返回

对象成员QMessageBox

结束时弹出相应的胜负消息

整体类

class gameboard

{

棋盘上的两侧放上两个计数的lcd;

lcd下方

棋盘的下方放quit 、skip、playwithPC、newgame 分别代表 退出、跳过、人机对战、重 新开始的四个按钮

棋盘中间的两侧放上提示的棋子,闪烁方下棋

棋盘放在中间

}

  • 编码

  • 测试

  • 维护

程序源代码 链接:

http://download.csdn.net/source/1237678

环境:

RedHat 9.0

Qt 4.3.5

g++ RedHat--linux 3.2.2-5

vi 6.1.320

用Qt 编写黑白棋程序相关推荐

  1. 【转】Qt编写串口通信程序全程图文讲解

    Qt编写串口通信程序全程图文讲解 本文章原创于www.yafeilinux.com 转载请注明出处. (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或 ...

  2. Windows下Qt编写Android应用程序的环境搭建记录

    目录 前言 配置开发环境 安装JDK1.8 安装SDK 安装NDK Qt配置OpenCV C++&Java混合编程 结语 前言 由于要在手机上实现一些应用,例如部署目标检测模型.添加单目测距定 ...

  3. c语言大作业黑白棋,C语言编写黑白棋游戏源代码.doc

    C语言编写的黑白棋游戏源代码 /*3.3.4 源程序*/ #include "graphics.h" /*图形系统头文件*/ #define LEFT 0x4b00 /*光标左键值 ...

  4. 发布我的下棋作品--Monkey黑白棋(AI还可以,战胜了不少其它的黑白棋程序)

    采用了AlaphBeta剪枝法,深度4至8 . 本软件由C#2005开发,以下是界面: 持白子的话,能够战胜不少黑白棋的软件(当然,像"伤心黑白棋"这样的高手,我的程序是差一截). ...

  5. Qt编写串口通信程序全程图文讲解

    (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动.) 在Qt中并没有特定的串口控制类,现在大部分人使用的是第三 ...

  6. Qt编写守护程序保证程序一直运行(开源)

    没有任何人敢保证自己写的程序没有任何BUG,尤其是在商业项目中,程序量越大,复杂度越高,出错的概率越大,尤其是现场环境千差万别,和当初本地电脑测试环境很可能不一样,有很多特殊情况没有考虑到,如果需要保 ...

  7. qt编写的android程序在android系统中运行,中文显示乱码的解决方法

    在main函数中添加 QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); QTextCodec::setCodecForTr(QTextC ...

  8. java drawboard_学习一个月JAVA写的黑白棋程序(欢迎高手来指点)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public void clean(Graphics g) //清屏 { g.setColor(0xffffff); g.fillRect(0,0,180 ...

  9. windows下如何使用QT编写dll程序 .

    Windows 下如何使用 QT 编写 dll 程序 因为 QT 必须有调用 QApplication 的 exec 方法,这样才能产生消息循环, QT 的程序才可以运行.所以说如果我们使用了 QT ...

最新文章

  1. Java线上问题排查思路及Linux常用问题分析命令学习
  2. python多态的例子_Python编程之多态用法实例详解
  3. [sqlserver脚本]查看指定SQL语句生成了哪些执行计划
  4. tensorflow随笔-二分法求解一元方程
  5. boost::type_erasure::tuple相关的测试程序
  6. 每天学习点--------第五天(2017-10-9) 摘要: 常用的集合
  7. 收藏 | Python必备技能之 25个Matplotlib常用代码!
  8. Yii2语言国际化配置Twig翻译解决方案
  9. Java设计模式开篇
  10. 【OpenCV学习笔记】【函数学习】十九(感兴趣区域)
  11. 华为NP课程笔记6-路由控制
  12. 新增汉字英文数字标点转区位码api
  13. 【Android -- 开源库】BottomNavigation 的基本使用
  14. 使用CLion开发STM32时无法生成hex文件的解决办法
  15. c语言海报,竞选海报 c语言
  16. 10053 事件详解
  17. 史上最著名的10个思想实验(思想解放运动)
  18. 超牛逼的性能调优神器 — 火焰图
  19. 2012.4.29~2012.5.1平谷(二)
  20. 从零开始学习机器学习五:决策树算法特征工程

热门文章

  1. javaweb游戏代练网站设计与实现
  2. Juniper SRX双出口来回路径不一致问题分析
  3. java清华大学教程_清华大学出版社-图书详情-《Java Web应用开发基础教程》
  4. 实时 Java 社区论坛:Sym
  5. 什么是开源协议?知识产权又是什么?—— 版权与开源简介
  6. (随手记)navicat连接本地数据库报1862错误
  7. android x轴上下柱状图_Android hellocharts 柱形图详解
  8. Linux入门基础知识
  9. 华为防火墙和路由器之间运行OSPF协议配置案例
  10. 华为鸿蒙电脑系统百度分享,实现万物互联 华为鸿蒙操作系统发布