项目开源地址:github.com/anlingyi/xe…
序言这个项目起始于2020年5月,当时是由于事情不忙,有了很多自己的学习韶光,从那段韶光开始,我学习上了 Netty 这一网络框架。我一样平常都喜好以项目驱动的办法去学习,既然是网络框架的学习,那项目一定是和通讯干系的,脑海中第一个想到的便是写一个谈天程序了。
写一个谈天网站吗?
不了吧。实在我之前已经写过一个网页版的谈天室了,不想再写网页真个谈天项目了。
那写个客户端谈天程序?
纯挚的写一个C真个谈天程序,以为彷佛也没太大意思,还是算了吧。
是有“大病”?
额...你可真是个小机灵鬼。
当时我就想,假如能在 IDEA 里和别的小伙伴一起谈天,那岂不是会很故意思?
以是,我决定要写个 IDEA 谈天插件了。
创作进程我要学Netty2020年5月末,基本学会了怎么利用 Netty 实现一个大略的谈天程序,此时的插件基本已经成型。
找个“冤大头”来测试下?
脑海中立时浮现出一位“网友”的名字,就决定是你啦!
—— 扶师傅。
扶师傅这家伙可以说是摸鱼里手了,就这么说吧,他是属于“泡在鱼塘里打代码”的那种人物,非常适宜我这个插件,立时打包插件发给他。
扶师傅也是“二话不说”,就发了个 “?” ,我见告他,这是新型的摸鱼插件,他很愉快啊,急速关闭了xxx网页,立时就把 IDEA 打开了,插件安装一气呵成。
系统:扶师傅进入了鱼塘!
扶师傅很是惊异,IDEA 里也能谈天?怎么做到的?
我见告他,我在学 Netty ,拿这个先练练手。
扶师傅直呼行家啊!
摸鱼就摸鱼嘛,还扯什么学习 Netty ?
误入歧途
Netty 没怎么学会,掉 Swing 坑里了。
初版的谈天功能实现后,为了降落谈天被创造的概率,我加了个模式切换,可以切换成“混水摸鱼” 模式,这个模式会将谈天内容的字体颜色设置为 IDEA 的背景色,同时又在谈天内容的左侧加了个新红点提醒,如果要查看详细的内容,可以点击内容然后拖动,这样就能显示详细的内容了。
把新版本打包发给了扶师傅,扶师傅利用后,以为这玩意没啥用,他说他从来都是光明正大的摸鱼,不须要有这玩意!
我:“???是个高手!
”
后面又突发奇想:假如能在 IDEA 里联机下棋,那该多故意思?
冲!
说实话,Java 里的 Swing 真是太难用了,第一次写五子棋花了挺永劫光的,但效果还真可以,立时打包插件发给扶师傅。
扶师傅:“大周末摸鱼你是有‘大病’吗?”
我:“那我事情日再来!
”
这家伙,周末是不会来鱼塘里摸鱼的,还挺有“原则”。
总算是等到周一了,还不用我去提醒,扶师傅早就已经在鱼塘里恭候我多时了。
扶师傅:“摸鱼也迟到?”
我:“来盘精彩又刺激的五子棋吗?”
扶师傅:“冲!
”
游戏结束:安凌毅这个菜鸡赢了!
扶师傅这家伙下棋就没下赢过,很生气。
扶师傅:“写的什么垃圾游戏?能好好事情吗?”
我:“...”
自从扶师傅下棋下输我往后,他就很少再和我联机下棋了,但这假如没人和我联机下棋,那这五子棋便是个摆设了,由于我只实现了联机下棋,并没有实现单机也能下。。。
2020年7月开始一贯到2021年,这段韶光事情确实很忙,插件也就没怎么更新了。
重构2021年8月份开始,这个项目我启动了重构,提高了一些功能的扩展性,并且对通信做了加密,重构完开始考虑实现五子棋单机游戏了(期间还写了个 “IDEA 防沉迷”功能)。
写单机的话,就要去写 AI ,AI 可不是我这个“CRUD Boy”想写就能写的,没办法了,只能冒着“光头”的风险去学了。翻阅了很多资料,熬了好几个通宵,总算是把一个入门级的五子棋 AI 给写出来了。这 AI 写的可太拉了,用户体验可“太行”了!
立时打包插件发给扶师傅。
扶师傅又体验了一番:“你这AI有点厉害啊!
”
我:“有没有一种可能,是你五子棋下的太拉了?”
这么拉的五子棋 AI,扶师傅硬是没下过。不过,后来我又翻阅了很多资料,对五子棋 AI 做了很多的优化,至此往后,我确实也下不过它了。
第二个游戏:斗地主斗地主一开始我并不想写,缘故原由是我不会打斗地主,我连规则都不清楚,我是想写三国杀的,毕竟三国杀可比斗地主故意思多了。
但又仔细想了下,三国杀实现难度可太大了,Swing 我用的也不是很熟,要不先写个规则大略点的卡牌游戏?寻思熟虑过后,就决定写斗地主了。
今年的端午节3天假期,我在出租屋内呆了3天,把斗地主初版给写出来了。端午节当天,我奶奶和我视频通话了,当时我还沉浸在打代码的“痛楚”中呢!
接通后...
奶奶:“这过节呢?你怎么看上去不愉快呢?”
我:“没有啊,我很愉快!
”
事实上,我当时确实不愉快,当时写斗地主的时候,我已经被 Swing 折腾的“生不如去世”了。
再一次发版,之前有在掘金发过一篇文章 “在IDEA里下个棋不过分吧?”,当时也有不幼年伙伴安装了这个插件,进入到了鱼塘里,在此之前鱼塘里就我和扶师傅两个人。
初版的斗地主卡牌设计的有点过于明显了,假如上班摸鱼打牌,岂不是要被包工头抓个现行?
扶师傅:“我没事,不用管我!
”
也就扶师傅“异于凡人”,成本家见了都落泪。
又是一个突发奇想,把牌值用“16进制”显示,花色啥的在斗地主领域并不主要,直接将花色显示为 int,卡牌颜色设置为暗色系,这样就不晃眼了,我可真是个小机灵鬼儿~
话又说回来,又不是所有人都有空来鱼塘里摸鱼斗地主,代码还是要打的嘛!
也就扶师傅比较有空,每天邀我来斗地主,但基本都是“3缺一”的状态(由于当时的斗地主只能3人联机游戏)。
让斗地主也支持单机游戏吧!
又得写 AI 了,虽说有点写 AI 的“根本”了吧,但是斗地主规则可比五子棋要繁芜多了,我写不来!
那就搞大略一点吧,扶师傅说。
扶师傅:“你就写个Pony马那样的斗地主出牌机器人就行了!
能出就出,能管就管,这不就行了吗?”
有道理,之后我就花了一下午的韶光写出来了个“傻瓜蛋出牌机器人”。
扶师傅立时就安装体验了一番。
扶师傅:“写的什么玩意?太拉了!
”
我:“...”
不得不说,确实狠拉!
但至少现在可以2人联机了。
开源
到现在,这个项目可以说是已经正式开源了吧!
开源之后,鱼塘里越来越热闹了,这个项目也收成了不幼年伙伴的star和fork,同时也迎来了 @MINIPuffer 和 @猎隼丶止戈 这两位大佬的PR,非常感谢各位!
除不可抗力成分之外,这个项目大概会一贯掩护下去吧,我还有好几个游戏想写呢,哈哈哈!
鱼塘里也有位鱼友提出了他的想法:麻将什么时候上线?
难度有点大,麻将我是真不会打,我只能说,会考虑的。但我现在还是想写三国杀卡牌游戏,可能我写的游戏不叫这名,叫“诸子杀”?嘿嘿~
扶师傅你的扫雷啥时候上线?生产队的鸽子都没这么鸽的
插件先容安装添加插件库 Plugins > 设置按钮 > Manage Plugin Repositories...
http://plugins.xeblog.cn
搜索 “xechat” 安装
插件主界面
查看鱼塘列表
#showServer
利用登录命令登录系统。
直接登录
#login {你的昵称}
指定鱼塘登录
#login {你的昵称} -s {鱼塘编号}
指定做事器IP端口登录
#login {你的昵称} -h {做事器IP} -p {端口}
登录系统成功
谈天发送文本
可直接通过文本框输入内容回车。
发送图片
通过复制图片文件或截图,然后粘贴到文本框即可发送。
图片发送成功后,可点击“查看图片”
状态设置查看状态
#showStatus
设置事情中状态
#setStatus 0
事情中状态是不能被约请游戏的哦~
模式设置查看模式#showMode
设置“混水摸鱼”模式
#mode 1
当处于“混水摸鱼”模式时,谈天内容将会被隐蔽。
点击内容,然后拖动,即可查看。
查看景象
#weather {地名,如:北京市} [-d {0:当前,默认 | 3:未来3天 | 7:未来7天}]
#showGame
#play 0
支持人机、2人联机对战,内置五子棋AI
斗地主#play 1
支持人机、2~3人联机对战,内置“傻瓜蛋机器人”
支持摸鱼模式
详细先容请看:在IDEA里斗个地主不过分吧!
#play 2
打开文本文件
详细先容请看:在IDEA里看个书很过分嘛!
开启或关闭
#alive 1|0
详细先容请看:XEChat-Idea:IDEA防沉迷?
退出登录#exit
#clean
项目开源地址:github.com/anlingyi/xe…