个人介绍
会用C/C++,java,python,Qt,cocos,win32,MFC,也懂一点javaweb开发。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
工作经历
2021-03-04 -至今手心网络后端
刚开始进了公司里【神曲】游戏开发组,后端,主要用C/C++与lua开发后端程序。后来【神曲】不景气被砍掉,又转为同公司的【冰雪】项目组,负责内容与【神曲】相同。最后公司效益越来越差,裁员风波波及到我
教育经历
2020-03-04 - 大寨中学计算机初中及以下
初中毕业,后来成年后,主要靠网络的资源自学了编程,并没有相关的教育经历
技能
主类名字叫做HelloWorld,另有8个辅助关卡类,通过更改主类文件中的全局level变量,来创建对应的关卡场景,游戏关卡记录通过一个XML存档 其实这个游戏,算是老壶新酒:以前我用WIN32开发出来过。之所以重写一遍,是因为我要学习cocos2dX游戏引擎,当然,如果完全是重写,也挺无趣的,所以这个游戏对比前身WIN32,也做了不少的改动,比如最后一关的BOSS,除了被动技能不变,终极大招稍做改动之外,其他的技能都可以说是重新开发了。
这是一款五子棋对战平台,玩家们进入服务器之后,由服务器为玩家设置编号并匹配对手(随机性);玩家们的每一盘对局结束后,胜者积分+1,输者-1;值得一提的 是玩家的“总时”机制:所有的玩家都拥有相同的总时时间,这种比赛机制比拼的,就是每个玩家在总时时间内的积分数量;在这种机制之下,会非常容易出现逆风翻盘的情况。 服务器端逻辑简述: 在主函数main里,调用的是一个自定义的类【GobangServer】,它继承自QWidget,在它的头文件里,还有一个枚举类型【DataType】,这个类型主要用来解析传递给【GobangServer】服务器的数据报的头数据(一个int类型变量),并根据这个解析的枚举类型,来执行对应的动作;除了【DataType】之外,还有一个结构体【UserInfo】,这个用来存储链接到服务器的玩家们的信息,里面的name变量,对应的是玩家的编号,short类型的score变量,对应的是玩家的积分,QTcpSocket类型的指针变量,对应的是玩家的套接字,最后的bool型read变量,对应的是该玩家的状态;最后就是我们那个【GobangServer】服务器类的声明了,在这个类的声明里面,就会有一个UserInfo结构体数组,这个结构体储存着每个链接到服务器的玩家信息,并根据这个结构体数组,来更新排行榜。当打开应用并设置好IP等设置之后,然后启动服务器的监听,就可以等待客户端的玩家链接了; 开源链接:https://github.com/wenpinglaoyao/gobang_server 客户端逻辑简述: 玩家打开应用并链接服务器之后,可以准备游戏,系统会为玩家匹配对手,而玩家的每一个操作都会打包成数据包,然后发给服务器,由服务器负责广播或者派发给特定对象(在每个玩家的程序里面,保存着一个int类型变量,其实该变量是某个特定玩家的套接字,比如下了一步棋,该玩家只负责发给服务器,然后由服务器负责解析这个int类型【转换指针】,再把信息派发给对手和自己)。另外,局面的输赢判断逻辑是在客户端进行的,客户端一旦接收了某个走棋消息,会自行判断是否分出胜负,如是,由胜者负责发信息给服务器。
在主函数main里,调用的是一个Widget类,这是程序的主窗口,游戏里的81个格子,用的是81个QPushButton按钮,按下某个按钮后,会调用Form类,这个一个小窗口,用来输入某个数字到对应的格子; 游戏有两个主要的功能。首先是给用户随机生成一个谜题,由于在算法上面有保证,本应用所生成的任何谜题,不会是无解的死局,至少会有一个解;其次是帮助用户解开某个谜题;需要说明的是,为了尽可能快的解开谜题,所以本应用内部解题所使用的AI算法,并不是直觉上的递归式算法,而是一个迭代算法(我把所有的核心算法都写在一个while循环里了),所以代码阅读起来,肯定不怎么友好【不过我加了很多注释,解释了每句代码的作用和意义】