Quantcast
Channel: 知乎日报
Viewing all articles
Browse latest Browse all 20608

你写过什么有趣的程序?

$
0
0
知乎用户,间歇性正经

这是一个重点跑偏但是有趣的项目。

因为知乎不能发动图所以附上链接:http://thomas-yang.me/

之前撸了一个个人网站,为了激励自己多写一些新项目。由于坚持不用流行的 CSS 框架,自己又是个设计苦手,就打算设计的简单点儿。嗯,想想,就来个左右双栏吧,左边固定住放点儿名字信息链接什么的,右边儿放上一张张帅气的项目截图,加上可点击的链接。以后撸出了新项目就往里加。颜色什么的嘛,偷个懒用单色吧,改改透明度来表示不同的层级就好。

然后噼里啪啦敲键盘,撸出来了,长这样儿:

嗯。感觉还看得过去。鼓掌 。

然而这个不是重点 = =

又是单色留白又这么多,看起来好单调啊!

怎么办,已经懒得改设计了啊!

---

某天我突然灵机一动,诶要不我给左边的侧边栏背景加个动画,动态内容比较吸引眼球,大家就不会注意到右边这么白了【骗自己。

说整就整!

先写了个雪花飘落的效果,实现倒是挺容易的,y 轴速度一定,x 轴加速度随机变换一下。

诶不错不错,鼓掌 。

---

但是时间久了看着好无聊啊!

要不我再多做几个侧边栏动画,每次打开页面的时候随机播放一个,这样不就没有这么无聊了嘛!

后来做成了点右边的 Logo【对就是上图那个条纹正方形框框】也能轮换。

说整就整!

这次多花了一点儿时间写了个俄罗斯方块,又写了个简单的 AI 让它自己玩儿免得一会儿就死掉了。

诶不错不错,鼓掌 。

---

诶嘛然后就一发不可收拾了,正经的项目不做,经常没事儿就想着要写新的侧边栏动画,跟着了魔似的莫名有动力。

后面又陆陆续续写了三个,

一个 Game of Life 的实现,跑着一个 Gosper glider gun,周而复始,非常魔性。

【我特别喜欢 Game of Life,logo 就是取材自其中一个 spaceship

一个二维随机游走,放一会儿就能跑出来类似【打了马赛克的】星云的效果,是不是有种科幻大片儿的感觉!

还有一个 Perlin noise,效果太鬼畜被我注释了,默哀三秒钟。

诶不错不错,鼓掌 。

等等,我是为什么要做这个网站来着?

---

P.S. 年前回顾个站有感

P.P.S. 左上角那个按钮其实是初期我不知道用什么颜色比较好就写了一个随机换色的按钮,帮助我挑颜色,后来发现诶嘛真好玩儿我戳戳戳戳。。。。

韩炫宇,在读大学生

在高中的时候,当时还是编程小白的我收到了一损友发来的某“xxx.vbs”文件,文件名就不说了(自行脑补),我双击后弹出了一个窗口:请输入“我是猪”。我当然不会输这个,我输了“你才是猪”,结果电脑就关机了。结果电脑就关机了。结果电脑就关机了。

当时的我一脸懵逼,这玩意儿竟这么神奇!重新开机后我打开那个文件,放下我作为一个人类的身份,输入了“我是猪”(对不起,给人类丢脸了),结果又一个弹窗:“猪是不会使用电脑的”。我点了确定,随后又关机了。又关机了。又关机了。

嗯,这个文件成功勾起了我的兴趣,我当时觉得特别惊奇,不是 exe 文件也可以直接运行真的好神奇,我默默地右键>打开方式>记事本,看到了这些(自己根据其逻辑尽可能复原的):

dimpig,closepig=inputbox("请输入我是猪","系统提示","在这里输入")setclose=createobject("Wscript.shell")ifpig="我是猪"thenmsgbox("猪是不会使用电脑的")close.run"cmd.exe /c shutdown -s -t 0"elseclose.run"cmd.exe /c shutdown -s -t 0"endif

大概就是这样,即使对编程一无所知,我还是大概脑补出了它的逻辑,从它开始,我走上了 programme 的不归路。。。

我开始疯狂地寻找类似代码,渐渐熟悉了一些 vbscript 的语法,创造出了一大批类似的脚本,随后成功地坑了更多的人。

一次,我一朋友跟我说,能不能想个办法让他的弟弟别在电脑上玩某大型游戏,会影响学习(我猜是不让他弟和他抢)。我想我的这项技能终于能有一个正经的用途了。

kill v1.0:

dim a a=MsgBox ("出于安全考虑,本机已禁止该游戏运行",VbExclamation,"系统警告")

就两行代码,之后需要设置一下,把这个 vbs 文件放在一个只有自己知道的位置,复制为路径,然后在桌面上找到游戏的快捷方式,按住 alt 双击,把目标粘贴成 vbs 脚本的路径,大功告成。

我拿 QQ 举例:

就这样,然后双击修改过的快捷方式,弹出以下窗口。

第一代只发挥了几天的作用,死亡原因是游戏被重装了一遍(这告诉我永远不要低估一个渴望玩游戏的孩子)。

为了补上这个 bug,kill2.0 横空出世(依然拿 QQ 做例子):

dim fso,ws,pt,msg set fso = createobject("scripting.filesystemobject") set ws = createobject("wscript.shell") set file = fso.getfile(wscript.scriptfullname) pt = ws.specialfolders("startup") & "\" file.copy pt sub Close_Process(ProcessName) On Error Resume Next for each ps ingetobject("winmgmts:\\.\root\cimv2:win32_process").instances_ if Ucase(ps.name)=Ucase(ProcessName) then ps.terminate msg=MsgBox("出于安全考虑,本机已永久禁止本游戏运行",VbExclamation,"系统警告") end if next end sub do Close_Process("qq.exe") wscript.sleep 5000 loop

大概思路是:先把自己添加到启动项里,保证开机即监视程序,之后每 5 秒执行一次 Close_Process,如果发现有游戏的进程则将其关闭并弹出警告。

虽然 2.0 版还是有很多 bug,但是对付一个只会在电脑上玩游戏的孩子来说已经足够了。

过了一阵子,朋友说他弟弟天天吵着换电脑 (逃

好久没用过 vbs 了,代码可能很乱,不规范,大神请轻喷

苍冥,学习机器学习ing /网络安全 / 埃森哲

我还是来好好答一发吧:

我们从高一到高三都强制采用图形计算器,可以画函数图像的那种。我们用的是德州仪器系列,Ti-Nspire,贵的要死要死的。

然而我却买错了计算器的制式,便宜货,相比其他同学的系统少了很多重要的功能。

作为一个很穷很喜欢计算机很爱折腾的少年,我先是把计算器系统刷成了正规版本,然后再将其越狱,安装上了 GBA 模拟器和电子书以及仙剑奇侠传。

你没看错,这真的是在计算器上玩的。

教程网上都有,所以我都是按网上教程做的(我那时可不懂什么嵌入式内核开发,现在也不懂……)

给个图吧,网上复制的,但当时效果一模一样。

右边那就是我们的图形计算器(但我的计算器左右两边框框都是白色的,因为机型不一样嘛)。

后来到高三了,学业也重了,都在应付高考,不敢折腾我的计算器,生怕变砖。正好计算器有个原生编程语言叫 Ti-Basic(和 Basic 类似),所以就把心思花在这个语言上。

有天做数学作业,学的是概率,有那种需要计算最小样本数量的题目,得反复算概率才能推出结果。

然后黑客流附身,想到可以用暴力枚举的方法强行算答案。

于是在计算器上编了个小程序,分分钟搞定数学作业(就和基友去玩提莫辅助了)

永远忘不了第二天数学课,老师带着同学们在课上讲作业,要么是手动穷举要么是用表格大法,没有三五分钟干不掉一道题。而我的程序只需要三秒写个参数就可以了……

这些题目都有两分,一分是过程一分是答案,而我的程序只有答案显然是不行的,于是我加上了计算输出过程的代码。

完美了!

后来又陆陆续续写了其他一些有用的程序,但最后传给学弟学妹们的也就两个程序,刚才那个是其中之一。

也写过一些游戏,本来是想做地牢 RPG 系列的,花了一节半数学课的时间撸出了一个战斗系统,因为不确定 Ti-Basic 里有没有类似数组一类的数据结构,所以卡在了地牢地图生成的开发上。

 

高三期间,两次被老师请去给全年级高三学生教学计算器进阶用法。

澳洲维州数学高考,计算器题目占一半分数比重。

上述程序目前全州就我们学校的学生有。

连续两年数学高考,我的程序在考试中发挥了作用。节省了全体学生几分钟的时间,并保证了送分。

去年大一,被数学老师请回母校,对新一届的高三学生指导计算器的这些进阶用法。

一小时的讲座让他们脑洞大开。

一眨眼两年过去,我现在也大二了,希望在计算器上编程的这点小技巧能在我的母校里继续做下去 :)


Viewing all articles
Browse latest Browse all 20608

Trending Articles