1-1-190902
基本的ui控制的网络链接的功能,对socket的原理尚不完全了解
1-1-190903
基本了解了socket的一些原理,由于sever在接受链接是自动分配的,重写incomingConnection可以分辨不同的socket。但是其本身的数据类型方便使用
基本的客户端的注册功能
1-1-190904
完成了登录和注册的功能,ui尚不完善。
1-1-190905
准备加入房间信息,创建了房间类,尝试进行房间相关操作
ps:完成房间有多种思路,若使用QTableWidget的控件可直接在ui伤分组,然后传输数据即可。但是服务器本地发包就需要给每个客户端发包,
这样的效率是很低的。
1-1-190906.07.08 写html5的大作业没时间跟新
1-1-190909
又写了一天,实在是没有思路。
通过槽函数现了一个用户建立房间后服务器给所有客户端发包,实现了大厅房间列表的跟新。功能还不完善。
1-1-190910
想到一种办法。Room类只储存房间信息,包括用户的Id,这样发包的时候需要将用户的id和socket绑定,于是游戏房间内只需要获得成员id就可以
定向发包。为了节省空间,考虑到RoomManage类通过动态内存分配的方式创建Room,所有人退出的时候删除房间。
难点在于怎么将socket绑定到用户id,可以使用QMap容器完成,可以尝试在登录函数中绑定。至于map属于谁,想过设置成tcpsocket的静态数据成员,这样是共享的。
每一个socket都可以使用且占空间小。但是使得tcpsocket的功能变得复杂,severmanager的话则需要在没有构造server的时候就分配空间,且不好对server进行直接的操作。选择
在server中设置map,通过登录信号进行绑定。
绑定id和socket的功能已经实现,但是是否成功不知道如何调试。
--------------------------尝试了写一个roomManager动态管理房间,这样会让服务器Server功能变复杂,很不想这样但是没有找到办法。
尝试比较成功,但是毕竟在server中加入了新的槽函数,这是这几天想到的唯一办法了。
1-1-190911
今天是满课,好像没时间写,晚上尽量完成昨天的收尾工作,顺便写一点加入房间的功能
房间列表还是不要通过roomManage完成,直接通过ui完成。否则跟新房间列表的时候数据传输量有点大
1-1-190912
@@@已经完成了加入房间的功能。
看来将server中的房间用manager管理 是正确的,利用其非常方便。为以后跟新刚刚登录的用户的房间列表做准备。但是client估计不需要了。
******遇到了奇怪的问题,每次收到一个操作后又立马调用了另一个功能。
给客户端加上了listWidget查看操作码。发现了问题。我在测试的时候没有接受加入房间功能的数据,导致数据流中的数据没有流出,又开始了一次 分析函数,进入了其他的操作中。
中秋节就放个假?
1-1-190913
放假是不可能的。
今天完成退出,删除房间的功能。心情好就继续。
写完了加入退出删除。
顺便改了一下信号,登录的时候服务器就会发送房间列表了。
顺便给服务器加了功能显示当前房间数。
明天正式开始写打牌功能
1-1-190914
突然发现给出的文档有房间的实现方式???完蛋了,不想改了。
我还是直接开始打牌功能吧
完成了获取同房间游戏人员状态的功能 完成了开始游戏的功能
1-1-190915
写显示牌的时候遇到了问题。不知道怎么将父窗口指针传给cardmanager,干脆直接在clientmanager里面实现对牌的管理好了.
找到了解决办法,直接将cardmanager声明成clientmanager的数据成员,任何使用的时候用信号槽机制调用相关函数
***********遇到一个问题。cardmanager的display不显示牌,明明已经用ui界面的widget将它初始化了。
终于找到原因了,我忘记重载paintEvent函数,浪费了大量时间。造孽
这个进度估计可能写不完了,尽力吧
1-1-190916
最后的办法就是增加clientManager的复杂度,直接让其显示牌,会让这个类变得复杂,但是实在是没有别的办法了.
已经完成了普通手牌,地主手牌的显示。测试的时候直接让系统随机分地主,如果时间充足可以写抢地主的代码。
1-1-190917
写完了基础版本的所有功能,接下来开始优化,有时间的话添加语音和按钮ui
还需优化: 重复登录出问题,下方的玩家状态框,上次打出的牌不能消失
1-1-190918
完成了玩家状态栏的优化。
完成了防止玩家重复登录同一账号。
1-1-190919
添加了记录游戏积分的功能。将玩家的游戏场数和胜利场数保存在数据库。
玩家在登录和完成游戏后会更新游戏记录
终于完成了抢地主功能。
完成了积分逻辑。
1-1-190920
完成了打牌的语音功能,但是没有完成“不出”的语音。
象征性的改变了一下按钮的ui
本次大作业到此完结。
但是程序的健壮性显然不够,只能说实现了合法操作内的所有功能。
如果客户端在游戏中强制退出则会导致同一房间的所有用户都会停滞。以后有时间再优化吧
没有合适的资源?快使用搜索试试~ 我知道了~
QT实现斗地主.rar
共119个文件
cpp:45个
h:45个
wav:15个
5星 · 超过95%的资源 需积分: 49 80 下载量 116 浏览量
2019-09-27
09:14:33
上传
评论 3
收藏 5.57MB RAR 举报
温馨提示
在空间有详细介绍 编辑器:Qt Creator 5.6.3版本 编译器:MinGW 4.9.2 32位 调试环境:Windows 10 企业版 完成的Qt,基于Qt封装好的Tcp-ip协议完成的斗地主游戏。
资源推荐
资源详情
资源评论
收起资源包目录
QT实现斗地主.rar (119个子文件)
clientmanager.cpp 28KB
tcpserver.cpp 22KB
cardrule.cpp 9KB
gamesendcards.cpp 8KB
userservice.cpp 6KB
roommanager.cpp 4KB
gamesetlandowner.cpp 4KB
servermanager.cpp 3KB
roomcreatercv.cpp 3KB
cardrand.cpp 2KB
roomdeletercv.cpp 2KB
userloginrcv.cpp 2KB
gamesendcards.cpp 2KB
tcpsocket.cpp 2KB
tcpsocket.cpp 2KB
room.cpp 2KB
userloginrcv.cpp 2KB
cardpic.cpp 2KB
receiverservice.cpp 2KB
roomjoinrcv.cpp 2KB
gamebeginrcv.cpp 2KB
userregisterrcv.cpp 2KB
roomexitrcv.cpp 2KB
gameendrcv.cpp 2KB
receiverservice.cpp 2KB
roomjoinrcv.cpp 2KB
roomlistupdatercv.cpp 2KB
roomcreatercv.cpp 1KB
userregisterrcv.cpp 1KB
roomexitrcv.cpp 1KB
room.cpp 1KB
gamebasiccardrcv.cpp 1KB
roomdeletercv.cpp 1KB
roomuserupdate.cpp 917B
database.cpp 791B
card.cpp 591B
card.cpp 591B
user.cpp 480B
gamesetlandowner.cpp 437B
user.cpp 398B
gamebeginrcv.cpp 376B
main.cpp 189B
main.cpp 189B
receiver.cpp 55B
receiver.cpp 55B
clientmanager.h 5KB
tcpsocket.h 3KB
card.h 2KB
tcpserver.h 2KB
tcpsocket.h 1KB
cardpic.h 1KB
card.h 1KB
roommanager.h 1KB
gamesendcards.h 1KB
userservice.h 991B
cardrule.h 986B
servermanager.h 976B
room.h 936B
public.h 848B
public.h 686B
room.h 638B
cardrand.h 614B
roomcreatercv.h 573B
userregisterrcv.h 568B
gamesetlandowner.h 543B
receiverservice.h 530B
userloginrcv.h 517B
roomdeletercv.h 516B
roomjoinrcv.h 500B
roomexitrcv.h 474B
receiverservice.h 462B
user.h 436B
user.h 436B
gamebeginrcv.h 429B
gameendrcv.h 428B
roomlistupdatercv.h 412B
gamebasiccardrcv.h 407B
database.h 406B
userregisterrcv.h 392B
receiver.h 384B
userloginrcv.h 377B
receiver.h 363B
roomuserupdate.h 348B
roomjoinrcv.h 322B
roomexitrcv.h 322B
gamesetlandowner.h 309B
gamesendcards.h 292B
roomcreatercv.h 289B
roomdeletercv.h 289B
gamebeginrcv.h 263B
cards.png 102KB
lord_btn_callscore_3_n.png 7KB
no_call_btn.png 5KB
pass.png 5KB
lord_btn_product_n.png 5KB
lord_btn_callscore_2_n.png 4KB
lord_btn_callscore_1_n.png 4KB
lord_game_setting_text_bgsound.png 2KB
1-1-190902.pro 1KB
1-1-190902-server.pro 1KB
共 119 条
- 1
- 2
资源评论
- 我要WhatYouNeed2023-07-29这个斗地主文件相当实用,界面简洁清晰,操作顺畅,让人爱不释手。
- 萌新小白爱学习2023-07-29这个斗地主文件不错,玩得很开心,模式多样化,玩家可以自由选择。
- 武藏美-伊雯2023-07-29这个斗地主文件非常棒,界面美观,操作简单,让我乐在其中。
- 曹多鱼2023-07-29这个斗地主文件非常实用,功能齐全,简单易懂,让我一下就会玩起来了。
- 白绍伟2023-07-29这个斗地主文件很好用,游戏体验很棒,AI智能,让我挑战自己的技术。
七个一
- 粉丝: 8
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- mmexport1732452246811.png
- Python毕业设计基于物品的协同过滤算法实现图书推荐系统项目源码(高分项目)
- 软考(中级-软件设计师)知识点汇总与解析
- Desktop (2).zip
- 考研冲刺模拟试题50道及解析
- 11月美宝莲专卖店店内海报 店内海报完稿310mmX360mm-op.ai
- Python 中实现十大排序算法
- 基于 Java 实现的24点卡牌游戏课程设计
- 基于ssm台球俱乐部管理系统 框架html + css + jquery + jsp + java + ssm + MySQL 用户类型 管理员 admin 123456 普通用户 002 0
- 纸中世界-跳跃游戏.sb3
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功