> ## Content Index
> Fetch the complete content index at: https://huizhou92.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# 浏览器的地址栏除了输入网址还能干什么？——玩贪吃蛇
- URL: https://huizhou92.com/liu-lan-qi-de-di-zhi-lan-chu-liao-shu-ru-wang-zhi-huan-neng-gan-shi-yao-wan-tan-chi-she/
- Published: 2025-10-02T06:53:26.000Z
- Updated: 2026-09-06T11:40:51.000Z
- Description: 浏览器的地址栏除了输入网址还能干什么？——玩贪吃蛇. 浏览器的地址栏除了输入网址还能干什么？——玩贪吃蛇 当一个十年前的疯狂创意重新走红，它揭示了互联网正在失去的东西 打开Chrome浏览器，在地址栏输入 https://demian.ferrei.ro/snake# ，然后 你就看到一串奇怪的符号。 是的。
- Author: huizhou92
- Tags: talk, hacker_news, #lang-zh-cn

# 浏览器的地址栏除了输入网址还能干什么？——玩贪吃蛇

## 当一个十年前的疯狂创意重新走红，它揭示了互联网正在失去的东西

打开Chrome浏览器，在地址栏输入 [https://demian.ferrei.ro/snake#](https://demian.ferrei.ro/snake?ref=huizhou92.com) ，然后 你就看到一串奇怪的符号。  
是的，你没看错。就盯着你的地址栏，在用箭头键或WASD控制方向。  
你会看到一条由奇怪符号组成的小蛇（░░░░░░░⠠⠤⠄⡀░░）在地址栏里爬行，吃掉食物，越长越长。整个游戏就在那个你平时只用来输入网址的细长文本框里运行。  
![Area](https://images.hxzhouh.com/blog-images/2025/10/5ea3b9a9457de17c348e4a8631605888.gif)

**没错，这是一个完整的贪吃蛇游戏，运行在浏览器的URL地址栏里。**

上周，这个十年前的项目突然在Hacker News上爆红，获得840个点赞和数百条评论。人们的第一反应都是："这太疯狂了，你们是怎么想出来的？"

但更疯狂的是这个游戏背后的故事——以及它揭示的关于现代互联网的真相。

## 一次偶然的好奇心，引发了一场技术冒险

创作者Francisco Uzo回忆起项目的起源时说："我想知道盲文系统是怎么工作的。"

这就是极客精神的起点——**不是为了解决问题，而是纯粹的好奇。**

当他深入研究盲文时，发现了一个迷人的规律：每个盲文符号由2x4的点阵组成，8个点位，每个点有"凸起"或"平坦"两种状态，正好产生2^8=256种可能的组合。而Unicode系统完整收录了所有这256个盲文字符。

某天的凌晨三点，他突然意识到：**"等等，这不就是一个现成的8位像素字符集吗？"**

这种顿悟的瞬间，正是每个极客最享受的时刻——当两个看似无关的知识点在脑海中碰撞，迸发出创意的火花。

然后就是典型的极客行为模式：**不管有没有用，先做出来再说**。  
整个实现充满了黑客思维：

- 将游戏世界映射到盲文字符网格——每个字符就是一个2x4像素块
- 蛇的身体用实心点（⣿）表示，空白区域用空盲文（⠀）表示
- 使用JavaScript的`history.replaceState()`API实时更新URL而不污染历史记录
- 每帧刷新，整个游戏画面就在地址栏里流畅运行

Francisco的透明度也很"极客"："源代码没有任何压缩或混淆处理。Ctrl+U就能看到全部代码。"整个实现只用了几百行JavaScript，简洁而巧妙。**在真正的极客眼中，代码本身就应该是可读的、可学习的、可启发的。**

## 等等，我的游戏怎么看起来乱七八糟的？

如果你现在打开这个游戏，很可能会看到一堆奇怪的`%20`、反斜杠和乱码。游戏勉强能玩，但画面支离破碎。或者根本不能动起来。

**这不是你的问题，也不是代码的问题。问题在于：十年过去了，浏览器变了。**

Francisco在讨论中坦言："这个项目是为十年前的浏览器设计的。自那以后，浏览器进行了一些所谓的'安全改进'，严重削弱了基于地址栏的游戏能力。"

最致命的改变是：**现代浏览器开始强制转义URL中的所有空格字符。**

在游戏的设计中，空盲文字符（⠀）代表空白区域。但现代浏览器把它们转义成`%20`或其他字符，导致画面变形。Francisco甚至开发了一套基于Canvas的字体测量系统来检测和替换被转义的字符，但效果仍然有限。

他在浏览器的问题追踪器中提出了申诉。开发者表示理解和同情，但最终的决定是：**"安全性照例压倒了趣味性。"**

用户报告的游戏体验差异巨大：

- 有人在Chrome上轻松得到2144分
- 有人在Firefox上看到满屏乱码
- 有人在移动Safari上根本看不到游戏
- 有人的浏览历史被每一帧都污染了

同一个代码，在不同浏览器上的表现天差地别。这就是现代Web开发的现实。

## 那些年，我们在浏览器里玩过的花样

地址栏贪吃蛇不是唯一一个这类创意项目。Hacker News的讨论中，大家开始回忆起一整个"非常规浏览器游戏"的黄金时代。

### **URL里的2048游戏**

有人分享了 [https://aquova.net/games/2048/](https://aquova.net/games/2048/?ref=huizhou92.com) ——将风靡一时的2048益智游戏移植到地址栏中。同样的盲文字符技巧，同样的实时URL更新。

### **浏览器标题栏的贪吃蛇**

Francisco提到，Reddit上最近有人发布了新版本——把游戏渲染在浏览器标签页的标题里。虽然这是一种"认输方案"（放弃了在地址栏显示的坚持），但它确实避免了URL转义的问题。

### **TinyJS贪吃蛇**

2023年，另一个开发者用不同的技术路径实现了类似的[项目](https://danielgjackson.github.io/tinyjs?ref=huizhou92.com#snake)。那时浏览器的限制还没有这么严格。

### **地址栏3D漫游**

有人分享了一个更疯狂的项目：[用非常规方式在浏览器中实现交互式3D世界](https://matthew.rayfield.world/articles/games-and-graphics-in-popup-url-bars/?ref=huizhou92.com#:~:text=The%203D%20Room%EF%BC%89)  
评论者说："虽然不是Doom，但你可以在3D世界里四处走动。"

这些项目有什么共同点？**它们都是程序员纯粹出于好奇心和乐趣的创造。**

没有商业价值，没有实际用途，甚至算不上"最佳实践"。但它们代表了早期互联网的一种精神：**这是一个可以玩耍、可以实验、可以突破界限的地方。**

## 为什么这些项目现在越来越难做了？

问题不只是空格转义。过去十年，浏览器经历了大量"**安全改进**"：

### **历史API的限制**

Francisco最初使用`history.replaceState()`来更新URL而不创建历史记录。但现代浏览器对这个API的调用频率有严格限制。当游戏帧率太高时，系统被迫降级到`location.hash`方案——结果是你的浏览历史被每一帧游戏都污染了。

一位用户吐槽："我最烦的就是这个。访问某些网站后查看历史记录，发现被我输入的每个按键都创建了条目。这一切都是以'用户体验'的名义。"

### **URL长度限制**

不同浏览器对URL长度有不同的限制，从2000字符到几万字符不等。对于需要在URL中编码整个游戏状态的项目来说，这是个硬性天花板。

### **字符集限制**

越来越多的特殊Unicode字符被标记为"不安全"，在URL中被自动转义或过滤。这直接打击了所有基于Unicode艺术的创意项目。

### **移动端兼容性**

许多移动浏览器根本不显示完整的URL，或者在用户滚动时隐藏地址栏。这让地址栏游戏变得不可玩。

Francisco总结道："自那以后，浏览器的许多改变都让这类项目越来越难实现。我在浏览器问题追踪器中得到了一些同情，但安全性总是优先的。"

## 当安全性扼杀了互联网的乐趣

这里出现了一个根本性的矛盾。

\*\*没人会反对浏览器安全性的提升。\*\*URL注入攻击、跨站脚本漏洞、钓鱼网站——这些是真实存在的威胁，影响着数十亿用户。浏览器开发者有责任保护用户安全。

但与此同时，每一次"安全改进"都关闭了某些创造性实验的大门。

Francisco的游戏十年前完美运行，今天却在大多数浏览器上支离破碎。不是因为代码有问题，而是因为浏览器"进化"了。这种"进化"让用户更安全，但也让互联网变得更加统一、更加受控、更加......无聊。

### **失去的不仅仅是游戏**

在Hacker News的讨论中，有人提出了尖锐的批评："为什么人们不去做有用的事情？别滥用互联网。"

这个评论遭到了社区的集体反驳：

- "制作这类项目的学习价值是巨大的"
- "创造性休息和技能开发同样重要"
- "这就是我来Hacker News的原因——100%的黑客精神"
- "ChatGPT发明不出这个。我爱这种创造力"

最精辟的回应来自一位用户："对普通人来说这可能不算什么，但对我来说这太疯狂了。你们是怎么想出这些东西的？"

\*\*这就是问题的核心。\*\*这些项目的价值不在于"有用"，而在于它们代表了一种纯粹的创造冲动——因为好奇而探索，因为有趣而创造，因为"为什么不试试"而突破界限。

当我们为了安全而设置越来越多的限制，我们不只是在关闭安全漏洞，我们也在关闭创新的可能性。

### **权衡是必要的，但我们应该意识到代价**

这不是在指责浏览器开发者。他们面对的是极其艰难的权衡决策：

- 允许灵活的URL编码 vs. 防止注入攻击
- 支持高频API调用 vs. 避免性能问题
- 显示任意Unicode字符 vs. 防止钓鱼欺诈

**没有完美的答案。** 每个决定都有其代价。

但我们至少应该意识到并讨论这些代价。当我们说"安全第一"时，我们应该问："我们因此失去了什么？"当我们说"用户体验优化"时，我们应该问："这优化了谁的体验？"

Francisco在浏览器问题追踪器中得到的回复是典型的："我理解你的困扰，但安全性必须优先。"这个回答在技术层面无可指摘，但它也代表了一种更广泛的趋势：**在现代互联网上，控制和安全正在系统性地压倒创造和乐趣。**

## 在AI时代，这种人类创造更加珍贵

当讨论转向AI时，Francisco说了一句发人深省的话：

"这个游戏已经存在十年了，所以很可能在这些AI的训练数据中。机器人也许能复制它，但它们肯定无法享受它！（至少现在还不能）"

这句话触及了当前技术文化的核心焦虑。在ChatGPT可以瞬间生成代码、Copilot可以自动补全函数的时代，什么样的编程项目还值得人类去做？

答案可能就在这个地址栏贪吃蛇里。

AI可以看到盲文字符，可以理解Unicode编码，可以生成JavaScript代码。但AI不能体验：

- 凌晨三点突然意识到"盲文可以当像素"的那一刻顿悟
- 第一次看到蛇在地址栏里动起来时的惊喜
- 花几个小时调试字符转义问题时的执着
- 十年后看到陌生人喜欢你的项目时的满足感

这些**纯粹的人类创造体验**，在AI可以复制几乎所有代码的时代，反而变得更加珍贵。

Francisco的项目不是为了解决问题而创造，而是为了探索和乐趣而创造。这种动机，这种过程，这种纯粹的创造喜悦——**这是AI永远无法真正拥有的。**

## 我们需要更多像这样的项目

这个地址栏贪吃蛇重新走红，不是因为它特别有用或特别赚钱。它走红是因为它提醒了我们一些重要的事情：

**互联网不应该只是一个高效、安全、标准化的工具。它也应该是一个充满惊喜、可以玩耍、可以实验的地方。**

当Francisco十年前问自己"盲文是怎么工作的"时，他不是在解决商业问题或优化用户体验。他只是好奇，然后他创造了一个让数千人微笑的项目。

在这个越来越同质化、越来越"安全"、越来越被算法优化的互联网上，我们需要更多这样的项目。不是因为它们有用，而是因为它们提醒我们：

**技术的意义不仅仅是效率和安全——它也应该是充满惊奇和乐趣的。**

**在这个游戏上你能得多少分？你的浏览器支持得好吗？**

也许更重要的问题是：**这个项目让你想起了什么？你有没有做过类似的"无用但有趣"的创造？**