在学习 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. HarmonyOS应用事件打点开发指导

      简介 传统的日志系统里汇聚了整个设备上所有程序运行的过程流水日志,难以识别其中的关键信息.因此,应用开发者需要一种数据打点机制,用来评估如访问数.日活.用户操作习惯以及影响用户使用的关键因素等关键 ...

  2. ArkUI,更高效的框架设计

     原文:https://mp.weixin.qq.com/s/uSIzuBby7Z92drNDmejKXw,点击链接查看更多技术内容.     上期文章我们讲到了ArkUI的三大特性,同时提到了Ark ...

  3. IIS applicationHost.config 查找历史

    背景 iis 有时候需要修改配置,一般来说,我们会去修改applicationHost.config配置,当然,很多时候我们都需要去备份一个配置文件,但是可能忘记了,那么是否有补救的方式? 补救方式 ...

  4. singalr 可以连接但是无法发送消息

    前言 在一次测试singalr的过程中,发现一个问题,那就是连接成功了,但是发送消息没有响应. 原因及解决 如何可以连接但是发不了消息,net的锅,需要4.0以上,所以我们发布iis的时候也应该选择4 ...

  5. 自己diy一个smi(可以监控gpu,cpu,memory)

    diy-smi 1.0(DIY System management interface) 在我们训练自己深度学习模型时,我们想看GPU信息,也想看CPU和内存信息.我常用的是nvidia-smi和ht ...

  6. Effective Python:第2条 遵循PEP 8风格指南

    PEP8文档:https://peps.python.org/pep-0008/ 与空白有关的建议: 用空格(space)表示缩进,而不要用制表符(tab). 和语法相关的每一层缩进都用4个空格表示. ...

  7. C#S7.NET实现西门子PLCDB块数据采集的完整步骤

    前言 本文介绍了如何使用S7.NET库实现对西门子PLC DB块数据的读写,记录了使用计算机仿真,模拟PLC,自至完成测试的详细流程,并重点介绍了在这个过程中的易错点,供参考. 用到的软件: 1.Wi ...

  8. 力扣233(java)-数字1的个数(困难)

    题目: 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 示例 1: 输入:n = 13输出:6示例 2: 输入:n = 0输出:0 提示: 0 <= n <= ...

  9. 跨模态学习能力再升级,EasyNLP电商文图检索效果刷新SOTA

    简介: 本⽂简要介绍我们在电商下对CLIP模型的优化,以及上述模型在公开数据集上的评测结果.最后,我们介绍如何在EasyNLP框架中调用上述电商CLIP模型. 作者:熊兮.欢夏.章捷.临在 导读 多模 ...

  10. 揭秘阿里云神龙团队拿下TPCx-BB排名第一的背后技术

    ​简介:阿里云自主研发的神龙大数据加速引擎获得了TPCx-BB SF3000世界排名第一的成绩. ​ 一  背景介绍 近日,TPC Benchmark Express-BigBench(简称TPCx- ...