qsgs-fans / freekill Goto Github PK
View Code? Open in Web Editor NEWSanguosha (三国杀, a.k.a. Legend of Three Kingdoms, LTK) written in Qt and Lua.
Home Page: https://fkbook-all-in-one.readthedocs.io/
License: GNU General Public License v3.0
Sanguosha (三国杀, a.k.a. Legend of Three Kingdoms, LTK) written in Qt and Lua.
Home Page: https://fkbook-all-in-one.readthedocs.io/
License: GNU General Public License v3.0
Is your feature request related to a problem? Please describe.
使用git同步武将扩展包时,磁盘占用空间为扩展包本身的2倍,其中.git作为历史提交信息,游戏时用处不大,但其大小与扩展包本身不相上下。如图所示。
Describe the solution you'd like
程序中从git同步扩展包时,增加一个命令行参数 "--depth=1" 意为只同步某分支最新版本的代码,不考虑其历史提交信息。
Describe alternatives you've considered
如果需要恢复历史信息,可以更改.git/config文件,然后更改以下文本:
...
[remote "origin"]
...
fetch = +refs/heads/*:refs/remotes/origin/*
这一行fetch就表示git fetch时会同步哪些信息,改成这种样式后再执行git fetch即可恢复到没有命令行参数"--depth"时的状态。(如此法无效,可询问文心一言等大模型,反正我成功过一次)
这样在 Linux 上跑就不需要图形化界面了
请问下载好FreeKill-master并解压缩后,点击哪个文件来安装游戏或者还是不用安装就能直接运行?(在电脑玩)
现在的新月杀服务端完全不支持Proxy Protocol
现在是利用Frp的情况下做的服务器,本意是想通过Proxy Protocol让服务端获取用户真实IP。
已经尝试过套一层nginx用Proxy Protocol来让服务器获取访问者IP,但新月杀客户端会提示“登录字符串不同,可能由于服务端版本太旧或者太新导致,建议联系服主解决”
服务端则是:Main[W] Invalid setup string:"PROXY TCP4 127.0.0.1 127.0.0.1 55194 5551\r\n"
希望有大佬可帮忙适配解决一下
如果考虑docker部署或许会更加方便 有需要的话我可以pr
手机上字体过小以及ui边距过小。
您好,
一个文档里的小问题,exppattern.lua 中,中文和下面给的例子的花色和点数反过来了。
其中 Matcher 的格式为 牌名|花色|点数|位置|详细牌名|类型|牌的id
更进一步,“点数” 可以用 '~' 符号表示数字的范围,并且可以用 AJQK 表示对应点数例如:
slash,jink|2~4|spade;.|.|.|.|.|trick
经实验,文档中中文给的“牌名|花色|点数”是不正确的,无法匹配到,而例子给的"slash,jink|2~4|spade"(即“牌名|点数|花色”)是可以匹配到的。
希望能对您有所帮助。感谢!
尊敬的开发者您好,近日接触到新月杀,完成度很高,刚刚与朋友们游玩,非常尽兴,我打算使用内网穿透开一个服务器。根据您的 http://175.178.66.93/fknewbie/13-start-server.html#id4 说,云服务器需要为防火墙放行 9527 号端口,TCP 和 UDP 都要放行。但是如果使用内网穿透软件,似乎无法做到让 TCP 和 UDP 都映射到同一个端口(一般都只能 TCP),也就无法让外网连接上服务器(显示“服务器似乎没有启动。”)。请问这个问题如何解决?谢谢!
使用 Window Server 启动 FreeKill -s 9876,
用户进入后退出再次点击进入提示用户已经登陆
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
新月杀联机模式无法添加电脑
Describe the solution you'd like
A clear and concise description of what you want to happen.
添加电脑处为黑色,无法点击(身份模式)
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
如果可以的话,增加添加电脑的功能
Additional context
Add any other context or screenshots about the feature request here.
我和朋友们第一次玩新月杀时,一开游戏许多朋友都被震聋了,而且无法单独调整音量。希望能够加入游戏内音量控制功能。
如上图所示,贾充喝了个jiu酒,然后就报错了(
01/13 17:54:39 Room[C] D:\FreeKill-release\packages/tenyear/tenyear_ex.lua:3429: attempt to index a nil value (local 'card')
stack traceback:
D:\FreeKill-release\packages/tenyear/tenyear_ex.lua:3429: in method 'prohibitUse'
D:\FreeKill-release\lua\core\player.lua:894: in method 'prohibitUse'
D:\FreeKill-release\lua\server\ai\random_ai.lua:18: in field 'useActiveSkill'
D:\FreeKill-release\lua\server\ai\random_ai.lua:215: in field '?'
D:\FreeKill-release\lua\server\ai\ai.lua:38: in method 'makeReply'
D:\FreeKill-release\lua\server\serverplayer.lua:122: in upvalue '_waitForReply'
D:\FreeKill-release\lua\server\serverplayer.lua:164: in method 'waitForReply'
D:\FreeKill-release\lua\server\room.lua:722: in method 'doRequest'
lua/server/events/gameflow.lua:321: in function <lua/server/events/gameflow.lua:316>
(...tail calls...)
lua/server/events/gameflow.lua:276: in function <lua/s[mp3float @ 00000188ff55d1c0] erver/events/gameflowCould not update timestamps for skipped samples.
.lua:267>
(...tail calls...)
01/13 17:54:39 Room[C] D:\FreeKill-release\packages/tenyear/tenyear_ex.lua:3429: attempt to index a nil value (local 'card')
stack traceback:
D:\FreeKill-release\packages/tenyear/tenyear_ex.lua:3429: in method 'prohibitUse'
D:\FreeKill-release\lua\core\player.lua:894: in method 'prohibitUse'
D:\FreeKill-release\lua\server\ai\random_ai.lua:18: in field 'useActiveSkill'
D:\FreeKill-release\lua\server\ai\random_ai.lua:215: in field '?'
D:\FreeKill-release\lua\server\ai\ai.lua:38: in method 'makeReply'
D:\FreeKill-release\lua\server\serverplayer.lua:122: in upvalue '_waitForReply'
D:\FreeKill-release\lua\server\serverplayer.lua:164: in method 'waitForReply'
D:\FreeKill-release\lua\server\room.lua:722: in method 'doRequest'
D:\FreeKill-release\lua\server\room.lua:1672: in method 'askForChoice'
D:\FreeKill-release\packages/overseas/overseas_sp.lua:550: in method 'cost'
D:\FreeKill-release\lua\core\skill_type\trigger.lua:60: in function <D:\FreeKill-release\lua\core\skill_type\trigger.lua:58>
(...tail calls...)
D:\FreeKill-release\lua\server\gamelogic.lua:390: in method 'trigger'
lua/server/events/gameflow.lua:362: in method 'clear_func'
lua/server/events/misc.lua:131: in function <lua/server/events/misc.lua:128>
(...tail calls...)
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 [mp3float @ 00000188ff55c5c0] 17:54:39 Could not update timestamps for discarded samples.
Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/[mp3float @ 00000188ff55a5c0] 13 Could not update timestamps for discarded samples.
17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:39 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
0[mp3float @ 00000188ff55d1c0] 1/1Could not update timestamps for discarded samples.
3 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01[mp3 @ 00000188ee0ac900] /13 Estimating duration from bitrate, this may be inaccurate
17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
01/13 17:54:40 Room[C] cannot resume dead coroutine
stack traceback:
Is your feature request related to a problem? Please describe.
Docker deployment
Describe the solution you'd like
Docker deployment
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
国战,22,斗地主,PVE。速速更新
Describe the bug
当玩家数目以及选将数目大于一定值时,会在Add Robot后报Error
To Reproduce
Steps to reproduce the behavior:
Room/Error occured!
./lua/server/gamelogic.lua:97:attempt to index a nil value
Desktop (please complete the following information):
Additional context
应该是因为 gamelogic.lua 文件92行 getGeneralsRandomly
返回的武将数小于 #nonlord * generalNum
,下面的二重循环里面 table.remove 到空的 table 后返回nil,然后触发报错的
Bug?
打国战模式遇到的,我是周瑜反间队友小乔想弹对面的,结果小乔技能提示没有出来,直接掉血😭
于吉使用蛊惑后观看于吉手牌,实际打出的牌和看到的不一样
似乎只有在质疑窗口显示时打开查看手牌会发生上述问题。
在于吉使用完蛊惑技能后有概率查看手牌定格,一直显示先前看到的内容,关闭再打开也不会刷新
不是手杀资深玩家,所以好多技能没见过
建议房主可以自定义读条时间,目前太快啥都反应不过来
如题,游戏内无切换语言的按钮,外部 config 改了无效
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.