在学习 springjdbc+c3p0时做了一个数据库版的获得给定词汇的成语接龙,这个做了之后,我突然就想做一个可供多人游戏的成语接龙游戏,由于自己根本不熟悉java的图形界面开发,感觉没有winform做起来方便,我就决定用winform+socket做一个出来,现在基本功能已经完成了,还差数据的正式支持。
 
功能很简单:
服务器有分房功能,可控制每个房间的游戏人数,连接数据库查词,判断词语正确与否。
 
客户端也很简单,就准备和抢答功能。当房间人数满了,且所有人都准备了,开始3、2、1倒计时,倒计时结束后,服务器第一次随机从数据库查一个成语出来转发给这个房间的客户端,接受到成语后开始答题倒计时,当客户端的答题倒计时结束后,客户端如果没有回答问题,也回发送一个特殊的答案到服务器表示这个客户端没回答,服务器接受到答案后,开始答案判断,并把第一个发送到服务器的答案作为下次接龙的成语发送回客户端,如果一个房间内所有用户都没有作答,则由服务器再到数据库找一个成语,发送出去。客户端每接受到一个新的成语,就重新开始答题倒计时。
 
游戏规则,答对得分,搭错扣分,不答不扣分不加分。现在判断游戏结束的条件是分数先达到一定值后,就胜利。后面可能还要加个游戏时间,时间到了,没有一个客户端的分数达到结束的条件,就以最高分胜出。
 
做这个我是用的socket的异步方法,期间也遇到些问题,我感觉最麻烦的还是处理,服务器和客户端的连接和关闭,以及当一个房间的客户端规定时间内都没回答问题,那么就会在同一时刻发送消息给服务器,这个时候服务器接受的数据会被覆盖,一开始我再异步接受回调函数里加lock,消息能一个个的进来了,但是因为接受数据的buffer数组只有一个,这就会造成,一个客户端端口是5555接受到的buffer的数据却是客户端6666发送的数据,这是我调试发现的,后来,我就把服务器接受到的客户端连接,一个客户端连接给一个buffer数组,每个客户端连接都用自己的,问题就被我解决了。
 
做这个,也是心血来潮,做得并不是很完善,也只在本机上测试过,没有多台电脑测试,也算是小小的练练手。做这个我还专门安装了powerdesign16.5的,但是根本不会用,学的软件工程的什么用例图,流程图,时序图什么的都不知道怎么画,以前上班的时候,公司想接手乙方的代码,我才入行没多久,作为公司唯一的懂点开发的人,公司就让我问维护这个项目需要些什么资料,我就问乙方有没有那些图什么的,对方说没有。我就感觉现在小的公司都不会去实现设计那些东西了,估计都是先开发一个原型出来,再功能迭代。后面我会把数据库部分补上。
 
感觉,现在越来越多的人都再学写代码了,如果没有过硬的本事,技术和业务都不行的话,到后面老了,负担变重,工资上不去,年龄也大了,这条路还能走通嘛,换条路再走,能接受一切从零开始的挑战嘛?


C# winfrom 局域网版多人成语接龙(一)的更多相关文章

  1. 成语接龙(dfs)

    成语接龙 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 92(17 users) Total Accepted: 23(14 user ...

  2. Flask开发成语接龙游戏,闲来无事手机玩玩自己写的游戏吧!

    英语单词学习应用 周五发布的文章Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署发布后,看到喜欢的人比较多.本来周末打算照着扇贝/极光单词,写一个英语单词自测工具.但苦 ...

  3. 再谈Weiphp公众平台开发——1、成语接龙插件

    易错点,注意插件的命名 1.创建插件.在weiphp管理后台创建成语接龙插件,勾选安装后立即启用,不需要配置项和管理列表.点“确定”完成插件的创建. 2.安装插件. 3.检测插件是否成功安装.返回到w ...

  4. python——成语接龙小游戏

    小试牛刀的简易成语接龙. 思路—— 1.网上下载成语字典的txt版本 2.通过python进行处理得到格式化的成语,并整理成字典(python字典查找速度快) 3.python程序,查找 用户输入的最 ...

  5. java小程序---简陋版多人聊天室

    功能需求: 1 每运行一次主函数,创建一个客户端聊天界面; 2 客户端界面分三块,公屏(显示所有客户端发送的信息),私屏(用于输入个人想要发送的信息),发送按钮(点击一次,将客户端信息发送到服务端) ...

  6. WebRTC实现网页版多人视频聊天室

    因为产品中要加入网页中网络会议的功能,这几天都在倒腾 WebRTC,现在分享下工作成果. 话说 WebRTC Real Time Communication 简称 RTC,是谷歌若干年前收购的一项技术 ...

  7. java版两人聊天程序

    server.java import java.io.*; import java.net.*; import java.text.SimpleDateFormat; import java.util ...

  8. Java版多人聊天室

    server.java import java.io.*; import java.net.*; import java.text.SimpleDateFormat; import java.util ...

  9. HDU - 1546 ZOJ - 2750 Idiomatic Phrases Game 成语接龙SPFA+map

    Idiomatic Phrases Game Tom is playing a game called Idiomatic Phrases Game. An idiom consists of sev ...

  10. python成语接龙小游戏

    上一篇讲了小游戏的坑现在把源码放出来 #coding:utf-8 import string import pypinyin import sys import random print(" ...

随机推荐

  1. MogDB/openGauss数据库package关键字的两种用法

    MogDB/openGauss 数据库 package 关键字的两种用法 本文出处:https://www.modb.pro/db/237701 package 关键字在 MogDB 数据库里有两种用 ...

  2. HarmonyOS跨进程通信—IPC与RPC通信开发指导

      一.IPC与RPC通信概述 基本概念 IPC(Inter-Process Communication)与RPC(Remote Procedure Call)用于实现跨进程通信,不同的是前者使用Bi ...

  3. 【直播预告】HarmonyOS极客松赋能直播第二期:数据库与网络连接开发

  4. 【原创】win11完美搭建macos13实现IOS自动化测试环境

    虚拟机完美搭建IOS自动化测试环境 一.win系统 1.1 安装虚拟机VM16 如果是macos系统请跳过 详细安装请看压缩包,私信可以提供安装包 1.2 VM解锁macOS 使用的是unlocker ...

  5. CentOS8 / CentOS7 yum源最新修改搭建 2022.3.1

    Part I CentOS 8 源更新 ========================================== 2022年过完后,发现公司里面的所有服务器yum都不能用了,一直报错 按照 ...

  6. Pytorch-tensor的创建,索引,切片

    1.基本概念 标量:就是一个数,是0维的,只有大小,没有方向 向量:是1*n的一列数,是1维的,有大小,也有方向 张量:是n*n的一堆数,是2维的,n个向量合并而成 2.a.size(),a.shap ...

  7. mac版本vscode窗口崩溃crashed

    1.截图 出现时机 当安装依赖的时候大概率会出现,甚至安装一次依赖会出现几次 解决 具体原因未知 重新启动电脑以及退出软件都不能解决 去官网重新下载,重新安装问题解决

  8. [Go] golang-migrate/migrate 快速使用指南

    1. CLI 用途的安装 [文档] [确保] CLI 工具使用 go 命令安装时,不应该在 go.mod 所在的目录中执行命令,也就是先进入到其它非项目目录内. $ go get -tags 'pos ...

  9. [ERROR] listen tcp :80: bind: permission denied

    出现这类提示的时候,表明当前用户没有权限进行 bind 操作. 在某些 Linux 云服务器提供商的运行环境中会出现. 解决方式:使用 sudo 切换为 root,然后在执行原操作. Refer:li ...

  10. petalinux 报错总结

    Failed to menu config project component.... 解决办法 此处是由于Terminal(终端)的界面太窄导致的,把Terminal(终端)界面拉宽即可:重新执行命 ...