草庐IT

[教你做小游戏] 用86行代码写一个联机五子棋WebSocket后端

大家好,我是公众号「线下聚会游戏」作者HullQin,开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏。背景上篇文章《用177行代码写个体验超好的五子棋》,我们一起用177行代码实现了一个本地对战的五子棋游戏。现在,如果我们要做一个联机五子棋,怎么办呢?需求分析首先,我们需要一个后端服务。2个不同的玩家,一起连接这个后端服务,把要下的棋告诉后端,后端再转发给另一个玩家即可。当然,如果有观战的,也要把当前期局转发给观战者。此外,为了让2个玩家联机,还需要有「房间号」的概念,只有同一个房间的人才能联机对战。不同房间的人互不影响,允许同时有多个房间的人同时玩游戏。流程整

[教你做小游戏] 用86行代码写一个联机五子棋WebSocket后端

大家好,我是公众号「线下聚会游戏」作者HullQin,开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏。背景上篇文章《用177行代码写个体验超好的五子棋》,我们一起用177行代码实现了一个本地对战的五子棋游戏。现在,如果我们要做一个联机五子棋,怎么办呢?需求分析首先,我们需要一个后端服务。2个不同的玩家,一起连接这个后端服务,把要下的棋告诉后端,后端再转发给另一个玩家即可。当然,如果有观战的,也要把当前期局转发给观战者。此外,为了让2个玩家联机,还需要有「房间号」的概念,只有同一个房间的人才能联机对战。不同房间的人互不影响,允许同时有多个房间的人同时玩游戏。流程整

教你开发一个JS代码加密工具

教你开发一个JS代码加密工具作者:JShaman.comw2sft本文,教你开发一个JS代码加密工具。工具可实现:把正常的JS代码,转化为加密代码,并且加密后的JS代码能直接运行。效果展示加密前的JS代码:functionget_copyright(){vardomain="jshaman.com";varfrom_year=2017;varcopyright="(c)"+from_year+"-"+(newDate).getFullYear()+","+domain;returncopyright;}console.log(get_copyright());代码运行输出:加密后的代码:此代码

教你开发一个JS代码加密工具

教你开发一个JS代码加密工具作者:JShaman.comw2sft本文,教你开发一个JS代码加密工具。工具可实现:把正常的JS代码,转化为加密代码,并且加密后的JS代码能直接运行。效果展示加密前的JS代码:functionget_copyright(){vardomain="jshaman.com";varfrom_year=2017;varcopyright="(c)"+from_year+"-"+(newDate).getFullYear()+","+domain;returncopyright;}console.log(get_copyright());代码运行输出:加密后的代码:此代码

四种 AI 技术方案,教你拥有自己的 Avatar 形象

大火的Avatar到底是什么?随着元宇宙概念的大火,Avatar这个词也开始越来越多出现在人们的视野。2009年,一部由詹姆斯・卡梅隆执导3D科幻大片《阿凡达》让很多人认识了Avatar这个英语单词。不过,很多人并不知道这个单词并非导演杜撰的,而是来自梵文,是印度教中的一个重要术语。根据剑桥英语词典解释,Avatar目前主要包含三种含义。avatar在剑桥词典的翻译结果©CambridgeUniversityPress最初,Avatar起源于梵文avatarana,由ava(off,down)+tarati(crossover)构成,字面意思是“下凡”,指的是神灵降临人间的化身,通常特指主神毗

四种 AI 技术方案,教你拥有自己的 Avatar 形象

大火的Avatar到底是什么?随着元宇宙概念的大火,Avatar这个词也开始越来越多出现在人们的视野。2009年,一部由詹姆斯・卡梅隆执导3D科幻大片《阿凡达》让很多人认识了Avatar这个英语单词。不过,很多人并不知道这个单词并非导演杜撰的,而是来自梵文,是印度教中的一个重要术语。根据剑桥英语词典解释,Avatar目前主要包含三种含义。avatar在剑桥词典的翻译结果©CambridgeUniversityPress最初,Avatar起源于梵文avatarana,由ava(off,down)+tarati(crossover)构成,字面意思是“下凡”,指的是神灵降临人间的化身,通常特指主神毗

教你2种常用的电商高并发处理解决方案

网站架构师面临的最大挑战之一就是并发。自Web服务开始以来,并发水平一直在不断增长,一个主流网站同时服务十万甚至数百万用户,这并不罕见。就目前应用广泛的电商系统来说,各种营销场景的增加,让电商系统高并发也成为一种必然。为此,本文将给大家带来2种高并发解决方案,希望能为电商系统实现高并发提供一些灵感。1、多级缓存2、Nginx限流本文我们将以CRMEB商城为例,了解电商中常见的2种高并发方案一、多级缓存​我们以CRMEBPro版首页为例在上图中,我们可以看到商品的分类变化不大,我们可以把它存储在缓存中,这样会大大减轻数据库的压力,这种情况我们可以用redis进行缓存,但是有时候电商网站的并发数只

教你2种常用的电商高并发处理解决方案

网站架构师面临的最大挑战之一就是并发。自Web服务开始以来,并发水平一直在不断增长,一个主流网站同时服务十万甚至数百万用户,这并不罕见。就目前应用广泛的电商系统来说,各种营销场景的增加,让电商系统高并发也成为一种必然。为此,本文将给大家带来2种高并发解决方案,希望能为电商系统实现高并发提供一些灵感。1、多级缓存2、Nginx限流本文我们将以CRMEB商城为例,了解电商中常见的2种高并发方案一、多级缓存​我们以CRMEBPro版首页为例在上图中,我们可以看到商品的分类变化不大,我们可以把它存储在缓存中,这样会大大减轻数据库的压力,这种情况我们可以用redis进行缓存,但是有时候电商网站的并发数只

[教你做小游戏] 滑动选中!PC端+移动端适配!完美用户体验!斗地主手牌交互示范

大家好,我是公众号「线下聚会游戏」作者HullQin,开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏。背景之前我们提到了斗地主的最优秀的交互方案:《斗地主的手牌,如何布局?看25万粉游戏区UP主怎么说》。具体交互如下:PC端:未选中的牌,是默认状态;选中的牌,加一层半透明的黑色遮罩层。鼠标单击牌,可以选中牌。鼠标单击已选中的牌,可以取消选中。鼠标点击某个未选中的牌,并且开始拖拽,所滑过的牌,都会被选中。(不是反选那么简单!)鼠标点击某个已选中的牌,并且开始拖拽,所滑过的牌,都会被取消选中。(不是反选那么简单!)移动端:未选中的牌,是默认状态;选中的牌,加一层半透