程序员的情人节:如何用代码表白(附代码)
不会说情话?那就用代码写一句“可运行的浪漫”。本文给你 6 个不同难度的表白点子:终端动画、网页爱心、Canvas 烟花、Git 提交记录、二维码彩蛋、自动发送定时消息,并附上可直接改名就能用的示例。
12 分钟阅读
小明
程序员的情人节:如何用代码表白(附代码)
你可能不擅长“油嘴滑舌”,但你会写代码。
那就把“喜欢”写成一个能运行的东西:
- 能打开
- 能看到
- 能留下来
这比一句“我喜欢你”更有记忆点。
下面给你 6 个不同难度的点子,从 5 分钟到 2 小时都有,挑一个就能用。
1) 最简单:一段终端表白(Node.js)
思路:在终端打印逐字出现的文字,最后输出一个小心形。
const sleep = (ms) => new Promise(r => setTimeout(r, ms))
async function type(text, delay = 60) {
for (const ch of text) {
process.stdout.write(ch)
await sleep(delay)
}
process.stdout.write('\n')
}
async function main() {
await type('Hi,我想认真地跟你说一件事。')
await type('我喜欢你。')
await sleep(300)
console.log(' ♥ ♥')
console.log(' ♥♥♥♥♥')
console.log(' ♥♥♥')
console.log(' ♥')
}
main()
把“我喜欢你”改成对方名字 + 你们的梗,会更像“专属”。
2) 网页表白:一个打开就心动的页面
你可以做一个超轻量页面:
- 标题:
你愿意和我一起... - 背景:渐变
- 中间:按钮(YES/NO)
- NO 按钮会逃跑(经典整活)
示例(HTML + CSS + JS):
<button id="yes">愿意</button>
<button id="no">再想想</button>
<script>
const no = document.getElementById('no')
no.addEventListener('mouseenter', () => {
const x = Math.random() * 300
const y = Math.random() * 200
no.style.transform = `translate(${x}px, ${y}px)`
})
document.getElementById('yes').addEventListener('click', () => {
alert('那我们从今天开始,认真在一起。')
})
</script>
小技巧:把 alert 换成你们的合照/纪念日倒计时。
3) Canvas 爱心:可视化浪漫
思路:用 Canvas 画一个爱心曲线。
const c = document.querySelector('canvas')
const ctx = c.getContext('2d')
function heart(t) {
const x = 16 * Math.pow(Math.sin(t), 3)
const y = 13 * Math.cos(t) - 5 * Math.cos(2*t) - 2 * Math.cos(3*t) - Math.cos(4*t)
return [x, y]
}
ctx.translate(200, 200)
ctx.scale(10, -10)
ctx.beginPath()
for (let t = 0; t < Math.PI * 2; t += 0.01) {
const [x, y] = heart(t)
ctx.lineTo(x, y)
}
ctx.fillStyle = '#ff4d6d'
ctx.fill()
这类作品“视觉冲击”很强,适合发给对方:点开就看到。
4) Git 提交记录:把喜欢写进时间线
你可以在 GitHub 贡献图里拼字(比如拼对方名字/一个心形)。
做法:
- 建一个私有仓库(更安全)
- 用脚本按日期造提交
- 每天一个点,拼出图案
注意:别在公司仓库干这事。
5) 二维码彩蛋:扫描之后才看到
思路:二维码里放一个短链接,打开是一句“只有你能看到的话”。
你可以把二维码:
- 做成卡片
- 放在奶茶杯套里
- 贴在礼物盒上
彩蛋感直接拉满。
6) 定时消息:在你们的时间点出现
比如:
- 你们第一次见面那天的时间
- 你们的纪念日
写一个定时任务(或者简单一点,用手机自动化)发送一句话。
工程师的浪漫不是炫技,是“把细节做对”。
结尾:最重要的不是代码
代码只是载体。
最重要的是:
- 你愿意为对方花时间
- 你把它做成了“只属于你们”的东西
祝你表白成功。
如果你想,我也可以帮你把第 2/3 个方案写成一个完整的可部署页面(带移动端适配)。