厉害了!用12万行代码堆出来个"蔡徐坤",编译还能通过!

开发者技术前线

共 1524字,需浏览 4分钟

 · 2020-06-16


点击“开发者技术前线”,选择“星标?”

在看|星标|留言,  真爱

0985e4fae48b223b0bdf7cb860c6656b.webp


作者丨鱼羊 白交 

来源丨量子位(ID:QbitAI)


有个程序猿,用12万行代码堆出来个「蔡徐坤」,编译还能通过?!

它是这样的:


不是简单的灰度字符画!也不是控制台控制颜色!而是在唱、跳、rap的代码!

连肩带,都是有灵魂的。

fe9157d3df0d2e4c0edf2b619b22f4ab.webp

这样的作品,来自B站UP主NyeJu。他利用代码编辑器为不同关键词显示不同的颜色的原理,生成代码,然后滑动形成视频。

这项技术的关键在于:

在正确的位置上放上符合规范的代码,显示不同的颜色。

也就是说,整个操作纯人工打造!

并且,这份代码是可以编译通过的,0 error:

f27a2593517b7c071f40e0ac39419a64.webp

一经发出,网友纷纷表示:希望编译器没事。

ac073178c1cd721eee0d1e3bb0e2aa31.webp452e4c7046447898be6ed2b8323a53c4.webp

f565c3a073af4cfb0574a302c8b49661.webp

还有盆友说:希望肝没事。

17c77bd1e5323446e35ca45f5a094069.webp12万行代码你太美

当然也有盆友发出了这样的惊叹:纯手敲?!UP太强了!

b0fb627c60f4bb616d1e683b33e5e522.webp

不过UP主虽是真·肝帝无疑,但还没有魔鬼到这个地步。

ebad7b2c9f0a75b2649312b6487890fd.webp

UP主也简单介绍了一下自己的操作思路。

首先,选择一个配色主题,比如UP主用的是Code Blue,并且需要获取每一种关键词的颜色。

dc9f1a76b9944b55d9beccc0ef543461.webp

然后,把原视频切分成一堆图片,识别每张图片的像素,匹配到最相近的关键词颜色上,记录下(颜色,长度)。

根据(颜色,长度)生成对应的代码。这涉及到两个步骤:

  • 定义一系列的pattern,比如「粉、红、白」就是声明,「灰、透明」就是注释;

  • 用pattern去匹配(颜色,长度),匹配成功就进行转换。

而UP主的这个视频能做到如此流畅,是因为他为原视频的每一帧都生成了代码。

b1b5c394b2343105e3ad67e3ee8760ec.webp

最后,让这12万行代码滑动起来,开头那般的唱、跳、rap视频就制作成功了。

即便如此,B站现场的小伙伴们还是嗅到了爆肝的气息,比如评论区就有5级号提供了一个清新的思路:没用专业团队当素材,可能是因为UP肝了一整年。

897e841c51965620f7e12989432c4975.webp

于是,带着小伙伴们的好奇采访了一下UP主NyeJu本人。

NyeJu表示,整个项目的完成其实只用了大概一周多的时间,毕竟12万行代码不是手敲,而是生成的。

另外,NyeJu也解释说,没有选择现在更火的其他素材,是因为蔡徐坤的素材比较干净,颜色数量也比较适中。

其他的素材都不是很合适,比如像「黑人抬棺」颜色就有点多,「bad apple」的话又太少。(本人对蔡徐坤没有任何恶意。)

评论区也有盆友补充解释了一下其中的难点:可以编译通过我惊了。

944f68e036415d72f441380273e7b492.webp

对此,NyeJu说,其实项目一开始的底线就是能够编译通过,否则的话,VS Code的代码高亮会抽风。原理还是基于语法规则,比如conststatic可以无限叠加,标识符和字符串可以任意长,根据这些去构造想要的颜色的长度。

One More Thing

所以,为什么会开这样一个脑洞?

在采访中,NyeJu也给出了答案:

是受「何同学」最新一个视频——《我用一万行备忘录做了个动画…》的启发,想做一个更厉害一点的。

另外,虽然展示给大家的代码是C++,NyeJu本人其实在日常的coding中用Python多一点,这个项目的C++代码也是用Python生成的。

前线推出学习交流群,加群一定要备注:研究/工作方向+地点+学校/公司+昵称(如数据分析+上海+上交+可可)根据格式备注,可更快被通过且邀请进群回复“666”领取一份专属技术人学习礼包


扫码加我微信进群,内推和技术交流,大佬们零距离



END

开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。

历史阅读


官方出品 Python 编辑神器 Jupyter ,首款可视化 Debug 工具

Python 学习路线思维导图, 经典收藏!

裁员1万人!又一国际巨头公司开始大幅裁员!

Google 出品 Java 编码规范,科学又权威,强烈推荐!

003d5655db6723caa820d6927bd8247c.webp79b5cb8520c74805e9dcda6347453967.webp喜欢就点个好看吧003d5655db6723caa820d6927bd8247c.webp
浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报