Windows新终端中玩转ASCII和Emoji游戏的正确姿势

640?wx_fmt=gif

前一段时间,我搬运了几个Windows Terminal中玩游戏的视频.


Windows Terminal - 动图GIF作背景图


Windows Terminal - 母牛说Hi


Windows Terminal - 字符水族箱



今天我来给大家展示一下具体的玩法~


640?

Emoji版双人碰碰球

目前有个现成的 .NET core 项目可以直接用,地址是:

mbcrump/pongemoji
https://github.com/mbcrump/pongemoji


只需要在Windows Terminal的CMD 或 PowerShell Tab中输入如下命令:

D:\Coding\pongemoji>git clone https://github.com/mbcrump/pongemojiD:\Coding\pongemoji>cd pongemojiD:\Coding\pongemoji>dotnet buildD:\Coding\pongemoji>dotnet run

运行效果如下:

640?wx_fmt=gif

玩家 1 : 使用键盘上的 WASD 来控制 ↑,←,↓,→ 4个方向.

玩家 2 : 直接使用键盘上的方向键控制↑,←,↓,→ 4个方向.

游戏中一方先满5分,游戏会重新开始。目前该游戏还有一点bug噢~


640?

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并进行相应配置

$ cpanLoading internal null logger. Install Log::Log4perl for logging messagesCPAN.pm requires configuration, but most of it can be done automatically.If you answer 'no' below, you will enter an interactive dialog for eachconfiguration 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] sudoAutoconfiguration complete.commit: wrote '/home/bruce/.cpan/CPAN/MyConfig.pm'You can re-run configuration any time with 'o conf init' in the CPAN shellTerminal 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 quarium v1.1的代码并执行

$ git clone https://github.com/cmatsuoka/asciiquarium.git                                 $ ls$ cd asciiquarium/$ ./asciiquarium

运行效果如下:


640?wx_fmt=gif


640?

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,得到的是:

640?wx_fmt=png

当然你也可以输入echo 'Hi!' | cowsay让他说"Hi".

如果让牛思考,你可以输入uptime | cowthink

当然你还可以输入uptime | cowthink -f tux让它变回企鹅(Linux Logo).

此外,cowsay 还有很多可选参数,能显示更有趣的效果:

  • -d 死掉的母牛

  • -b 瞎眼母牛?

  • -g 财迷母牛

  • -p 多疑的母牛

  • -s 喝醉的母牛

  • -t 疲劳母牛

  • -w 吃惊的母牛

  • -y 小母牛

有兴趣的可以继续玩噢~


640?

.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\FrameworkC:\Windows\Microsoft.NET\Framework>dir 驱动器 C 中的卷是 Windows 卷的序列号是 74E0-8254 C:\Windows\Microsoft.NET\Framework 的目录...2019/03/19  12:52    <DIR>          v1.0.37052019/03/19  12:52    <DIR>          v1.1.43222019/05/19  00:05    <DIR>          v2.0.507272019/05/12  01:33    <DIR>          v3.02019/05/12  01:33    <DIR>          v3.52019/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.csprojC:\Windows\Microsoft.NET\Framework\v4.0.30319>MSBuild D:\Coding\2048\2048.csproj /t:BuildC:\Windows\Microsoft.NET\Framework\v4.0.30319>MSBuild D:\Coding\2048\2048.csproj /t:Build /p:Configuration=Debug;Platform=x86;TargetFrameworkVersion=v4.0

个人倾向用第2种~

640?wx_fmt=png

  • 在Windows Terminal中运行游戏

接下来就是运行游戏了,切换到相应目录下bin中相关的exe即可~

> D:> cd D:\Coding\2048\bin\Debug> ConsoleApplication.exe

玩法:用↑ ↓ ← → 4个方向键来玩。

效果图如下:

640?wx_fmt=gif


640?

笑到喷的直升机

ROFLRolling 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打开,执行如下命令~

最后运行的效果如下:


640?wx_fmt=gif


gaygithub上还有其他挺有意思的游戏:

Topic: terminal-game

https://github.com/topics/terminal-game

Topic: console-game

https://github.com/topics/console-game


接下来,打算先从Python爬虫入手,熟练之后使用C#来做爬虫。买了一本Python大佬深入浅出爬虫的书,顺手安利给大家~



参考:

roflcopter | Memes by Dictionary.com
https://www.dictionary.com/e/memes/roflcopter/



原文地址:

https://www.cnblogs.com/enjoy233/p/Games_in_Windows_Terminal.html


小贴士 Tips


推荐阅读

哇,What? 任意公众号的文中插入外链的方法找到了,亲测有效,赞赞赞!

黑科技抢先尝 | Windows全新终端初体验(附代码Build全过程)

终于等到你!微软正式上线 Windows Terminal 预览版

中英文电子书下载网站大搜罗


smiley_66.png点击"在看"的人,

2019都会变得特别好看

640?wx_fmt=gif


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剑指 Offer 38. 字符串的排列(有重复元素的排列)

思路&#xff1a;dfs 暴搜 class Solution { public:vector<string> permutation(string s) {vector<string> a;function<bool(char,int,int)> check[&](char x,int st,int idx){if(st>idx) return false;for(int ist;i<idx;i) if(s[i]x) return …

Pool construction UVA - 1515 最小割模型

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个n∗mn*mn∗m的矩阵&#xff0c;包含字符#和.&#xff0c;将#变成.的代价是ddd&#xff0c;将.变成#的代价是fff&#xff0c;让后将#和.隔开的代价是bbb&#xff0c;现在让你用最小的代价将#和.隔开&…

【洛谷P4707】重返现世【扩展Min-Max容斥】【dp】

传送门 题意&#xff1a;NNN种物品&#xff0c;每次第iii种产生概率为piM\frac{p_i}{M}Mpi​​,∑piM\sum p_iM∑pi​M。求生成KKK种不同物品的期望时间 模998244353998244353998244353 N≤1000,M≤10000,N−K≤10N \leq1000,M \leq 10000,N-K\leq10N≤1000,M≤10000,N−K≤10…

nowcoder Forsaken的数列 fhq-treap

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 很明显的数据结构了&#xff0c;splaysplaysplay当然能写&#xff0c;但是fhq−treapfhq-treapfhq−treap更加简洁易懂。 考虑第一个操作&#xff0c;无非就是分裂出[1,pos−1][1,pos-1][1…

HTTP协议支持的方法

方法说明支持的HTTP协议版本GET获取资源1.0,1.1POST传输实体主体1.0,1.1PUT传输文件1.0,1.1DELETE删除文件1.0,1.1OPTIONS询问支持的方法1.1HEAD获取报文首部1.0,1.1TRACE追踪路径1.1CONNECT要求用隧道协议连接代理1.1LINK建立和资源之间的联系1.0UNLINE断开连接关系1.0在这里例…

我与微软的不解之缘 - 我的Insider Dev Tour 2019讲师之旅

作者&#xff1a;Lamond Lu大家好&#xff0c;我是陆楠&#xff0c;来自北京盛安德科技发展有限公司青岛分公司&#xff0c;今年非常有幸作为讲师参加了微软Insider Dev Tour烟台站的活动&#xff0c;我主讲了如何使用最新的微软开发工具开发调试NodeJS项目。与微软结缘与大多数…

【bzoj2555】Substring【后缀平衡树入门】

传送门 &#xff08;bzoj上不去我也很无奈啊&#xff09; 题意&#xff1a;维护一个字符串&#xff0c;支持后面加字符串&#xff0c;给定串询问出现次数。强制在线。 数据范围&#xff1a;暴力跑不过 前置知识&#xff1a;重量平衡树 众所周知&#xff0c;平衡树都用了一…

.NET Core 3.0之深入源码理解Kestrel的集成与应用(一)

写在前面ASP.NET Core 的 Web 服务器默认采用Kestrel&#xff0c;这是一个基于libuv(一个跨平台的基于Node.js的异步I/O库)的跨平台、轻量级的Web服务器。在开始之前&#xff0c;先回顾一下.NET Core 3.0默认的main()方法模板中&#xff0c;我们会调用Host.CreateDefaultBuilde…

HTTP状态码的类别

状态码类别类别原因短语1XX信息性状态码接受的请求正在处理2XX成功状态码请求正常处理完毕3XX重定向状态码需要进行附加操作以完成请求4XX客户端错误状态码服务器无法处理请求5XX服务器错误状态码 服务器处理请求出错 HTTP状态码的数量高达60余种&#xff0c;下面为大家介绍比…

P2596 [ZJOI2006]书架 无旋treap 按照排名分裂

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 实现如下操作&#xff1a; 思路&#xff1a; fhq-treap板子辣&#xff0c;不要被他的编号误导了&#xff0c;我们还是需要按照排名来分裂&#xff0c;从上到下标号1−n1-n1−n即可&#xff0c;注意在按照…

【水】几个网络流图论模型的记录

DAG相关 最小路径覆盖 定义&#xff1a;最少不重路径覆盖DAG 初始时每个点是独立的 之后每次加一条边把两个点连到一起 因为只能用一次&#xff0c;所以是个最大匹配 最小路径覆盖N-拆点后最大匹配\text{最小路径覆盖N-拆点后最大匹配}最小路径覆盖N-拆点后最大匹配 最小链…

surging 微服务引擎 2.0 会有多少惊喜?

surging 微服务引擎从2017年6月至今已经有两年的时间&#xff0c;这两年时间有多家公司使用surging 服务引擎&#xff0c;并且有公司搭建了CI/CD&#xff0c;并且使用了k8s 集群&#xff0c;这里我可以说下几家公司的服务搭建情况&#xff0c;公司名不便透露&#xff0c;我们就…

MySQL中存在索引但不能索引的经典场景(笔记)

以%开头的LIKE查询不能使用B-Tree索引 这个是因为B-Tree数的结构决定的&#xff0c;一般推荐使用全文索引来解决类似的全文检索的问题数据类型出现隐式转换的时候也不会使用索引不满足最左前缀原则的情况下也不会使用到索引如果全表扫描比索引快的话&#xff0c;则不使…

Codeforces Round #630 (Div. 2) E. Height All the Same 排列组合

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 由于n,mn,mn,m都很大&#xff0c;不难猜到这是一个公式题。 首先化简题目中的两个操作&#xff0c;第二个操作就是可以让奇偶性相同的位置的高度相同。第一个操作虽然是改变相邻两个的奇偶…

【洛谷P4719】动态DP【LCT】【矩阵】

之前的后缀平衡树其实没完&#xff0c;只是过于鬼畜就弃了 传送门 题意&#xff1a;带修改点权的最大独立集 N≤1e5N \leq 1e5N≤1e5 一个没啥用的模板&#xff0c;不过适合练习LCT 先写出方程 f(u,0)∑v∈son(u)max{f(v,0),f(v,1)}f(u,0)\sum_{v \in son(u)}max\{f(v,0),f…

对产品质量的一点思考

不管是做产品还是做项目&#xff0c;也不管是采用瀑布模型还是敏捷开发&#xff0c;我们都有一个终极目标&#xff0c;就是能按时交付质量可靠的功能&#xff0c;其中质量尤为重要。本文是我对产品质量的一点思考&#xff0c;如果您所在的团队代码质量很高&#xff0c;很少出BU…

操作系统-学习笔记

王道操作系统&#xff1a;有道云笔记 欢迎评论给意见&#xff01;

Codeforces Round #630 (Div. 2) F. Independent Set 树形dp

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一棵树&#xff0c;求这棵树的边导出子图中独立集的数量和&#xff0c;独立集大小可以为000。 思路&#xff1a; 先考虑普通的独立集数量怎么求&#xff0c;无非就是分情况讨论一下选根还是不选根&…

CSP赛前总结

1.由奥卡姆剃刀定律&#xff0c;通过各种特判和大量无根据猜测得到的解法不可能正确。 比赛的题目解法可能复杂&#xff0c;但绝不会繁琐。 2.由幸存者偏差&#xff0c;在写题时往往会参考样例&#xff0c;这样样例以外的情况可能会导致bug。 不要相信样例&#xff0c;大样例…

正确使用AES对称加密

正确使用AES对称加密经常我看到项目中有人使用了对称加密算法&#xff0c;用来加密客户或项目传输中的部分数据。但我注意到开发 人员由于不熟悉原理&#xff0c;或者简单复制网上的代码示例&#xff0c;有导致代码存在安全风险。我经常遇到的问题&#xff0c;有如下&#xff1…