美文网首页
Qt五子棋小游戏

Qt五子棋小游戏

作者: 我喜欢蓝色儿 | 来源:发表于2019-10-24 18:50 被阅读0次

今天1024哇,正好这会不想看书,写一篇文章表示一下,其实这篇文章早就该写了。9月初做的课程设计实验,过了两周后老师才有空检查,国庆期间写了1w多字实验报告,到今天写在博客上。时间线拉的有点太长了,不应该总是看着过去,应该向前看哇!

因为自己确实想通过这段时间学一学怎么做UI,所以选择了这个题目,经大佬推荐,我选择了Qt来编写这个程序。所以我自己完全是从零开始学习,边学边做的。编写程序前后大概花了10天时间叭,前两天各种找入门资料,开1.5倍速看教学视频。然后花了3天时间编写核心代码,最后几天时间在扩展游戏的功能,优化界面。

学习不难,难在开始,更难在深入。


一、引言

这篇文章以展示为主吧,会放代码链接(CSDN上),所以有需要的小伙伴可以去下载源代码,直接读程序即可。这里就不具体介绍如何如何实现的了,界面都是使用的Qt的各种类去实现的,界面以外的就比较简单了。想学习Qt的话最好跟着教程学,视频文字都可以。先去了解Qt的特点,框架,用法和机制,等需要具体设计时,再去针对性地查找资料,去详细地了解。

二、界面展示

那就直接放图吧,这种有UI的程序,直接看图应该就能了解大致的功能了。

1.界面

主界面 棋盘界面 读档界面

2.棋盘界面点击按钮的对话框

输入坐标下棋 游戏设置

3.消息对话框

退出 输入错误坐标 胜利

三、功能介绍

直接抄实验报告。

1.基本功能

本游戏设置有图形化交互界面,游戏模式为人人对战。游戏开始后,会显示一个带有行列号的19×19的棋盘,玩家根据执棋方(下一步由哪一方走)的提示知晓该轮到哪一方下棋,玩家可通过鼠标来控制棋子在棋盘中的摆放位置。

落子后,黑棋或白棋会显示在棋盘上。当有至少五个相同颜色的棋子相连成线时,游戏会弹框显示哪方获胜。当棋盘已下满却未能分出胜负,会弹框显示游戏和局。

2.计时功能

计时双方下棋时的等待时间,并在用户界面的右上角显示。玩家1落子后,在玩家2落子前会记录玩家2所用时间。

3.重新开始

清空棋盘,重置执棋方,重置双方时间。

4.键盘输入

除了鼠标点击下棋,玩家也可以通过键盘输入所下棋子在棋盘中的横纵坐标来确定棋子在棋盘中的摆放位置。根据棋盘行列号,依次输入落子位置的x和y坐标。

5.悔棋

玩家落子后,可悔棋清除已下棋子,以重新选择落子位置。棋盘无子时悔棋无效,且玩家只能悔棋到上一步。

6.存档读档

游戏进行中,可存档,保存当前棋盘信息,执棋方和双方的用时时间。在主界面中可以选择读档开始游戏,游戏会还原最近一次的存档情况,包括棋盘信息,执棋方和双方的用时时间。

7.游戏设置

a.棋盘大小默认为19×19,玩家可选择棋盘大小,游戏根据用户输入的数字可以重新绘制新的规模的棋盘。b.游戏默认先手执白棋,玩家可选择先手执白棋还是黑棋。c.游戏默认背景为无背景,玩家可选择喜欢的背景来开始游戏。

游戏设置完成,会清空棋盘上的棋子,重置双方用时,按照所设置的棋盘大小,执棋方和背景图片重新显示游戏界面。

8.声音功能

落子时会播放“啪”的声音,玩家胜利时会播放胜利音频,和局时会播放失败音频。

四、程序不足

界面跳转是非模态的,即打开新窗口后,仍然可以操作原窗口,会影响程序性能。

界面设计是代码和ui结合的,有点混乱。

调整棋盘大小的设计不太合理,而且调整后的显示不合理。

信号和槽函数,我只会用connect的lambda表达式,比较局限。

读档界面,虽然有三个存档窗口,但只有第一个可以用。

五、最后

因为是边学边编,所以等到后面学到新的内容后,某些设计的不太合理的东西也不太方便更改了。

然后你所看到的界面都是用Qt做出来的,包含了挺多内容的,我也没有太多时间去一一介绍,也不太方便直接把实验报告贴出来,所以我还是建议直接去看源代码吧哈哈,其实就是赚赚积分嘿嘿。

源代码下载地址:https://download.csdn.net/download/jason_tbwh/11916149

如果哈,如果,以后会更多学习Qt开发的话,再来看更多的博客内容吧。

相关文章

  • Qt五子棋小游戏

    今天1024哇,正好这会不想看书,写一篇文章表示一下,其实这篇文章早就该写了。9月初做的课程设计实验,过了两周后老...

  • 基于Python实现的五子棋tkinter版小游戏 课程设计

    五子棋小游戏-tkinter版 目录 五子棋小游戏-tkinter版 1 一、实现内容 1 游戏规则 2 博弈树 ...

  • iOS-五子棋

    导读 五子棋是程序猿比较熟悉的一款小游戏,相信很多人大学时期就用多种语言写过五子棋小游戏.笔者工作闲暇之余,试着用...

  • 贝贝五子棋 - 单机双人联机

    贝贝五子棋是一款画风简洁,棋力强大,功能丰富的五子棋游戏。集联网五子棋、单机五子棋于一体,是一款经典小游戏。联网模...

  • pygame 欢乐五子棋 (一)

    Hello, 大家好,从本期开始,我们就开始开发我们五子棋小游戏!五子棋游戏,规则简单,比较适合我这种新手~ 我们...

  • macOS Serria安装配置QT5.5

    最近比较迷C++,打算用qt写一个带界面的小游戏.在deepin应用商店一键安装qt, 没有出现任何问题(点赞de...

  • WebSocket介绍

    写在开始 最近使用socket.io做了一个五子棋小游戏,附带简易聊天功能。刚好在总结XMLHttpRequest...

  • 五子棋小游戏

    前言: 最近在园子里看见别人写的一篇文章,做的一个小游戏,但是只能在一个方向实现五颗棋子连珠,带着强烈的兴趣,自己...

  • 拯救Python新手的几个项目实战

    Python 做小游戏 实例一:24点游戏 项目名称:经典趣味24点游戏程序设计(python) 实例二:五子棋游...

  • 如何使用LibGDX做游戏

    使用LibGDX如何做一个简单的小游戏,2D游戏会想到五子棋,会想到植物大战僵尸,保卫萝卜,愤怒的小鸟……。如果使...

网友评论

      本文标题:Qt五子棋小游戏

      本文链接:https://www.haomeiwen.com/subject/jlkdvctx.html