本文发布于 2024-04-11, 最后更新于 867 天前,其中的信息可能已经有所发展或是发生改变。

文章摘要

代码 抽象版本如下 while (styunlen.life.duration 0) { styunlen.love.eternal("ZUFE"); } 我为其添加了可运行的版本 /** * @author Styunlen * @dedicated to ZUFE for her 50th anniversary * @edit time 2024.04.11 15:15:20 **/ // …

代码

抽象版本如下

text
while (styunlen.life.duration > 0) { styunlen.love.eternal("ZUFE"); }

我为其添加了可运行的版本

dns (Auto identified)
/** * @author Styunlen * @dedicated to ZUFE for her 50th anniversary * @edit time 2024.04.11 15:15:20 **/ // 抽象版本 // while (styunlen.life.duration > 0) { // styunlen.love.eternal("ZUFE"); // } // 可运行版本 let y = 30,x = -60,scale = [.1, .09, .08, .07, .06, .05, .06, .07, .08, .09, .1],index = 0,range = (size) => [...Array(size)]; let getScale = () => scale[index % scale.length],fn = (x) => ((getScale()**2*(4*y*y+x*x)-1)**3-8*x*x*y**3*getScale()**5 <= 0); const clear = () => process.stdout.write(process.platform === "win32" ? "x1bc" : "x1b[2jx1b[3jx1b[h",); let styunlen = {life: {duration: "浙江财经大学校庆50周年"}},loveindex = 0,scheduler = (await import("timers/promises")).scheduler; styunlen.love = {eternal: async (sweetheart) => {console.log(((y = 30),index++,range(60).map(() => (y--,(x = -60),range(120).map(() => (fn(x++) ? sweetheart.at(loveindex++ % sweetheart.length) : " ")).join("")),).join("nx1b[91m")),);await scheduler.wait(50);clear();},}; while (styunlen.life.duration.length > 0) { await styunlen.love.eternal("ZUFE "); }

运行说明,由于使用了JSES Module写法, 所以要手动将js文件后缀命名成.mjs来强制nodejsES Module形式加载js,否则会报错。

另一种让nodejs.js文件视为ES Module的方法是使用package.jsontype属性,手动将json文件里的type属性设置为"module"就行。

核心代码就是使用jsArray.prototype.mapArray.prototype.join来最小化代码生成爱心字符串,以及数学公式( x²+y²-1)³-x²y³ <= 0来判断是否在爱心区域内。

上述代码中的getScale也如字面意思是为了调整x,y的缩放系数,以适应控制台的长宽比(粗暴地使用了x缩放两倍,y缩放一倍,因为系数是小数,所以看起来y乘了2,其实是缩小了一倍 )。

text
(getScale()**2*(4*y*y+x*x)-1)**3-8*x*x*y**3*getScale()**5 <= 0

以上代码也只是以下代码的因式分解压缩形式,看不懂的可以自己写草稿运算一遍。

dns (Auto identified)
((x * getScale()) ** 2 + (y * getScale() * 2) ** 2 - 1) ** 3 -(x * getScale()) ** 2 * (y * getScale() * 2) ** 3

运行效果

windows: 

linux:

九仞之行

严于律己,宽以待人,深自警省,讷言敏行

订阅
💬 评论 (2)
M
mcxiaoxiaoChrome 133 · Windows 10中国

可可爱爱的代码

S
Styunlen博主Edge 136 · macOS中国

可可爱爱的代码

@mcxiaoxiao

୧(๑•̀⌄•́๑)૭

编辑器加载中…