Windows新终端中玩转ASCII和Emoji游戏的正确姿势
前一段时间,我搬运了几个Windows Terminal中玩游戏的视频,详情请看 发布在即!来一睹官方团队如何玩转 Windows Terminal - 知乎.
今天我来给大家展示一下具体的玩法~
## Emoji版双人碰碰球
目前有个现成的 .NET core 项目可以直接用,地址是:
mbcrump/pongemoji: A implementation of Pong using the new Windows Terminal announced during Build
https://github.com/mbcrump/pongemoji
只需要在Windows Terminal的CMD 或 PowerShell Tab中输入如下命令:
D:\Coding\pongemoji>git clone https://github.com/mbcrump/pongemoji
D:\Coding\pongemoji>cd pongemoji
D:\Coding\pongemoji>dotnet build
D:\Coding\pongemoji>dotnet run
运行效果如下:

玩家 1 : 使用键盘上的 WASD 来控制 ↑,←,↓,→ 4个方向.
玩家 2 : 直接使用键盘上的方向键控制↑,←,↓,→ 4个方向.
游戏中一方先满5分,游戏会重新开始。目前该游戏还有一点bug噢~
## ASCII 水族箱(ASCII quarium)
目前有个基于Perl的项目可以用,地址是:
cmatsuoka/asciiquarium: Enjoy the mysteries of the sea from the safety of your own terminal!
https://github.com/cmatsuoka/asciiquarium
只需要在Windows Terminal的WSL类(我自己安装是Ubuntu)的Tab中依次进行如下步骤:
- 安装
Perl相关库
$ sudo apt-get install libcurses-perl
- 安装cpan并进行相应配置
$ cpan
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes] yes
...
What approach do you want? (Choose 'local::lib', 'sudo' or 'manual')
[local::lib] sudo
Autoconfiguration complete.
commit: wrote '/home/bruce/.cpan/CPAN/MyConfig.pm'
You can re-run configuration any time with 'o conf init' in the CPAN shell
Terminal does not support AddHistory.
cpan shell -- CPAN exploration and modules installation (v2.18)
Enter 'h' for help.
cpan[1]> ^CCaught SIGINT, trying to continue ^Z
[2]+ Stopped cpan
$ sudo cpan Term::Animation
- 拉取
ASCII quariumv1.1的代码并执行
$ git clone https://github.com/cmatsuoka/asciiquarium.git $ ls
$ cd asciiquarium/
$ ./asciiquarium
运行效果如下:

## ASCII字符游戏 母牛说 “Hi”
还记得 Debian 下“Super Cow Powers” (超级牛力)这个有名的彩蛋吗?
Cowsay 是个 Perl 写成的文字过滤脚本,如果你把任何文字传给 cowsay,一只 ASCII 母牛就会帮你传达这个消息~
事实上,我们可以直接在Windows Terminal中玩转它喔~
只需在Windows Terminal的Ubuntu Tab中依次输入如下命令:
$ sudo apt-get install cowsay
$ sudo apt-get install fortune-mod
接下来,如果输入fortune | cowsay,得到的是:

当然你也可以输入echo 'Hi!' | cowsay 让他说"Hi".
如果让牛思考,你可以输入uptime | cowthink ,
当然你还可以输入uptime | cowthink -f tux让它变回企鹅(Linux Logo).
此外,cowsay 还有很多可选参数,能显示更有趣的效果:
- -d 死掉的母牛
- -b 瞎眼母牛?
- -g 财迷母牛
- -p 多疑的母牛
- -s 喝醉的母牛
- -t 疲劳母牛
- -w 吃惊的母牛
- -y 小母牛
有兴趣的可以继续玩噢~
## .NET版2048
在github中,我发现了一个.NET Framework版的游戏2048.
只需在Windows Terminal的CMD Tab中依次进行如下操作:
- 从github拉取代码
C:\Users\Bruce>git clone https://github.com/kflu/2048.git
编译项目
如果你在Windows上安装了Visual Studio,请直接用VS编译~
如果没装 VS,就使用
MSBuild来编译吧,首先你得找对MSBuild的位置,如果已经为MSBuild设置了系统变量,这一步可以跳过~C:\Users\Bruce>cd C:\Windows\Microsoft.NET\Framework C:\Windows\Microsoft.NET\Framework>dir 驱动器 C 中的卷是 Windows 卷的序列号是 74E0-8254 C:\Windows\Microsoft.NET\Framework 的目录 ... 2019/03/19 12:52 <DIR> v1.0.3705 2019/03/19 12:52 <DIR> v1.1.4322 2019/05/19 00:05 <DIR> v2.0.50727 2019/05/12 01:33 <DIR> v3.0 2019/05/12 01:33 <DIR> v3.5 2019/06/26 21:58 <DIR> v4.0.30319 18 个文件 272,280 字节 9 个目录 70,716,755,968 可用字节 C:\Windows\Microsoft.NET\Framework>cd v4.0.30319
用MSBuild编译 project 可以用下面几种命令中的任意一种:
C:\Windows\Microsoft.NET\Framework\v4.0.30319>MSBuild D:\Coding\2048\2048.csproj
C:\Windows\Microsoft.NET\Framework\v4.0.30319>MSBuild D:\Coding\2048\2048.csproj /t:Build
C:\Windows\Microsoft.NET\Framework\v4.0.30319>MSBuild D:\Coding\2048\2048.csproj /t:Build /p:Configuration=Debug;Platform=x86;TargetFrameworkVersion=v4.0
个人倾向用第2种~

- 在Windows Terminal中运行游戏
接下来就是运行游戏了,切换到相应目录下bin中相关的exe即可~
> D:
> cd D:\Coding\2048\bin\Debug
> ConsoleApplication.exe
玩法:用↑ ↓ ← → 4个方向键来玩。
效果图如下:

## 笑到喷的直升机
ROFL: Rolling On the Floor Laughing的意写,可译为笑到呕吐,笑到喷~
ROFLCOPTER: Rolling On the Floor Laughing Can‘t OPerate Till Eyes Refocus的缩写,意为笑到满地打滚,直到眼神重聚.
ROFLCOPTER - 一种嘲笑他人的隐晦做法,经常被联想为大笑不止或笑得停不下来。
据说该术语据称是由魔兽世界III论坛的版主在2003年创造的,而相应的网站www.roflcopter.com于2004年推出。
同时,ROFLCOPTER 也经常被看成是ASCII字符画成的以ROFL和LOL为螺旋桨的直升机, 它的螺旋桨由ROFL和LOL「 laughing out loud 」制成,看起来像是在旋转。
相应的代码我已经上传到:
https://github.com/yanglr/GamesInWinTerminal
只需从Windows Terminal的PowerShell类Tab打开,执行如下命令~
> cd D:\Coding
> git clone git@github.com:yanglr/GamesInWinTerminal.git
> cd .\GamesInWinTerminal\charArt
> dotnet build
> dotnet run
最后运行的效果如下:

~~gay~~github上还有其他挺有意思的游戏:
Topic: terminal-game
https://github.com/topics/terminal-game
Topic: console-game
https://github.com/topics/console-game
**参考:**
roflcopter | Memes by Dictionary.com
https://www.dictionary.com/e/memes/roflcopter/
What is ROFL (Rolling On The Floor Laughing)?
https://www.computerhope.com/jargon/r/rofl.htm
superusercode/roflcopter.md
https://gist.github.com/superusercode/28f6d352c01b247f1747ef54b02fc8ec
作者简介:Bravo Yeung,计算机硕士,知乎干货答主(获81K 赞同, 38K 感谢, 235K 收藏)。曾在国内 Top3互联网视频直播公司工作过,后加入一家外企做软件开发至今。
如需转载,请加微信 iMath7 申请开白!
欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。
欢迎各位读者加入 .NET技术交流群,在公众号后台回复“加群”或者“学习”即可。

文末彩蛋
微信后台回复“asp”,给你:一份全网最强的ASP.NET学习路线图。
回复“cs”,给你:一整套 C# 和 WPF 学习资源!
回复“core”,给你:2019年dotConf大会上发布的.NET core 3.0学习视频!
Windows新终端中玩转ASCII和Emoji游戏的正确姿势的更多相关文章
- 老司机实战Windows Server Docker:2 docker化现有iis应用的正确姿势
前言 上一篇老司机实战Windows Server Docker:1 初体验之各种填坑介绍了安装docker服务过程中的一些小坑.这一篇,我们来填一些稍大一些的坑:如何docker化一个现有的iis应 ...
- 在React中使用 react-router-dom 编程式路由导航的正确姿势【含V5.x、V6.x】
## react-router-dom 编程式路由导航 (v5) ###### 1.push跳转+携带params参数 ```jsx props.history.push(`/b/child1/${i ...
- [转帖]reptyr, 将正在运行的程序转换为新终端
reptyr, 将正在运行的程序转换为新终端 https://www.helplib.com/GitHub/article_45241 学习一下. 很抑郁的是 没有 arm64和龙芯平台的二进制文件. ...
- 在一个终端后台运行的进程在新的终端中使用job不会被发现
我在一个终端后台运行了一个程序.之后由于工作需要又新开了一个新的终端.在新的终端中,我想查看后台程序的运行状态,输入jobs时,发现没有后台任务运行.难道我的程序死掉了?我接着top了下,发现我的后台 ...
- 【转载】在Windows终端中显示UTF-8字符
一直苦恼于如何在Windows终端中显示UTF-8字符的问题.比如,在MySQL命令行下,如果数据库的编码是UTF-8,那么,在查询数据库的时候,里面的中文都会变成乱码.今天半无意的搜索了一下,结果发 ...
- 黑科技抢先尝 - Windows全新终端初体验(附无需编译就能安装的Preview版本及代码Build全过程)
目录 将Window 10 升级到1903版本 安装好git, 从github上clone代码 安装 VS 2019 和 .NET core 3.0 SDK 重定解决方案目标 设置好编译平台和启动的项 ...
- AD域的安装(在Windows Server 2003中安装Active Directory)
在Active Directory中提供了一组服务器作为身份验证服务器或登录服务器,这类服务器被称作域控制器(Domain Controller,简称DC).建立一个AD域的过程实际就是在一台运行Wi ...
- 【转】windows和linux中搭建python集成开发环境IDE
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)
windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...
随机推荐
- 使用ant对项目进行多渠道打包时遇到问题记录
1.打包成功后,打开apk时,会出现闪退的现象解决方法:1.配置好ant后,先把项目正常运行后,再打包,如有问题见第2步 2.找到项目中build.xml,然后右键,选择Run As - ...
- JieBaNet+Lucene.Net
基于JieBaNet+Lucene.Net实现全文搜索 实现效果: 上一篇文章有附全文搜索结果的设计图,下面截一张开发完成上线后的实图: 基本风格是模仿的百度搜索结果,绿色的分页略显小清新. 目前 ...
- cocos2d-x 打开控制面板
于cocos2dx反过来,我们所熟悉的控制台输出,可以查看日志,例如C介面printf();性能. int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTA ...
- MFC中获取App,MainFrame,Doc和View类等指针的方法
From: http://hi.baidu.com/wxnxs/item/156a68f5b3b4ed18e3e3bd03 MFC中获取App,MainFrame,Doc和View类等指针的方法 ...
- 非参贝叶斯(Bayesian Non-parameter)初步
0. motivations 如何确定 GMM 模型的 k,既观察到的样本由多少个高斯分布生成.由此在数据属于高维空间中时,根本就无法 visualize,更加难以建立直观,从而很难确定 k,高斯分布 ...
- Matlab随笔之指派问题的整数规划
原文:Matlab随笔之指派问题的整数规划 注:除了指派问题外,一般的整数规划问题无法直接利用Matlab函数,必须Matlab编程实现分支定界法和割平面解法. 常用Lingo等专用软件求解整数规划问 ...
- Emgu-WPF学习使用-识别二维码的位置
原文:Emgu-WPF学习使用-识别二维码的位置 参考链接:http://blog.csdn.net/gaobobo138968/article/details/47663607 我完全参 ...
- WPF MessageBox 添加确认取消按钮 并判断
很简单的功能随笔 if (System.Windows.MessageBox.Show("您确定要删除吗?", "提示:", MessageBoxButton. ...
- 赵伟国辞去TCL集团董事等职位,紫光参与TCL定增浮盈已超7亿
集微网消息,TCL 集团于8月9日晚间发布公告称,公司董事会于近日收到董事赵伟国先生的书面辞职报告,赵伟国先生因个人原因申请辞去公司董事及公司战略委员会委员职务.辞任后,赵伟国先生不再担任公司任何职务 ...
- GDI+ Bitmap与WPF BitmapImage的相互转换
原文:GDI+ Bitmap与WPF BitmapImage的相互转换 using System.Windows.Interop; //... // Convert BitmapImage to Bi ...