(点击上方公众号,可快速关注)
【伯乐在线导读】:用过 Windows 的朋友,应该对纸牌游戏不陌生。但恐怕没有多少人知道这个小游戏的开发者是谁吧。
自1990 年的 Windows 3.0 开始,微软将游戏附带于 Windows 系统中。当时,许多用户仍不熟悉图形用户界面,微软想借助《纸牌》来“安抚被操作系统吓倒的人们”。事实证明,游戏有助于用户熟悉鼠标的使用,比如说移动纸牌时需要用到拖放技术。
2016 年 1 月,有人在 Reddit 上发帖,挖出了纸牌游戏的幕后开发者——Wes Cherry,并在 Facebook 上给 Wes 留言了。

下面是 Wes Cherry 在 Reddit 网站上对纸牌游戏的补充说明,伯乐在线摘编如下。

我是 Wes Cherry,我收到一条 Facebook 的消息,说我的主页被大量来自 Reddit 的网友刷爆了(我刚刚才注册了 Reddit 的账号)。
以下是一些关于纸牌游戏的说明。这个游戏是我在 1988 年夏季在微软做实习生时用业余时间为 Windows 2.1开发的。我之前在 Mac 上玩过一个类似的游戏,为此我连期末考试都耽误了,我想为自己写一个 Windows 版本的。
代码没啥特别的,唯一的亮点是我做了一些优化,使得纸牌的拖动看起来很流畅。要知道在那个时候,将一个像素放在 EGA 缓冲区上,那要花一个世纪(需要在硅片上锤凿)。
那时面向对象编程是一个新鲜事物,Windows 上也没有可用的 C++ 编译器,所以多态和继承都是通过一个落后的消息传递机制实现的。
当时微软内部有个叫做 Bogus software 的“公司中公司”。它其实是一台服务器,一帮子程序员在上面折腾 Windows 为乐,以学习游戏开发会用到的 API。Windows 组的一个 PM 发现了我写的游戏,并决定将它加入 Window 3.0 中。他明确告知不会给我任何报酬,但会送我一台 IBM XT,以用于在学校期间解决发现的 Bugs。我当时觉得很划算,直到现在也这么认为。
为什么很划算呢,我又用业余时间写了一个 Windows 版本的 Pipe Dream,微软的游戏集中包括了这个游戏。我因为此拿到了一些股票,后来换了几千美元。
有人会开玩笑地当面给我一分钱,有人则会邮寄给我,有时候我被别人介绍为“没有任何酬劳的纸牌游戏开发者”。到现在为止,我已经收到 8 美分了。
我目前在 Washon Island 做苹果酒生意, 这是我的网站 www.dragonsheadcider.com。如果你在西雅图附近的话,欢迎来品酒。
除了给我的苹果酿酒机写一些嵌入式的 C/C++ 代码,我不再编程了。
谢谢大家的留言,太多了。我正在陪一个来自旧金山的好友玩耍,明天回来后回复大家的问题。
这个朋友正在教我 7 岁的儿子用 Scratch 编程。很有趣,我儿子正在努力写一款 Scratch 版本的 Minecraft(我的世界)。这个非常非常基础,但是他愿意做。

下面是 Wes Cherry 在 B3TA 网站上回答网友的提问,伯乐在线摘编如下:

armaitus 问:你会因为开发了这样一个广受欢迎且必不可少的应用,而微软却没有给你任何报酬而难过吗?
是的,尤其是看到你们都是付费来玩这个游戏的。
Artamnesia 问:尽管比尔·盖茨没有给你报酬,但我愿为这个神奇的游戏付钱,你想要多少钱啊?
每份拷贝给一分吧。如果每个人都给的话,我承诺给大家办一个大趴体。
queenie_b 问:你在编写纸牌游戏时玩什么呢?你知道我差点因为你而丢掉学位吗?当然,也是有一些其他原因啦。
呃,我在大学里为了写纸牌游戏都放弃复习期末考试了。
你知道在全球范围内,上班族玩纸牌游戏浪费了多少时间和金钱吗?
纸牌游戏恰好在 1991/1992 年,正好是全球经济萧条时发布,谢谢。噢,已过去的时光,一去不复返了。
(伯乐在线插播补充:自从游戏成为 Windows 系统的标配以来,员工玩《纸牌》降低业务生产力成为普遍的问题。2006 年,纽约市市长迈克尔·布隆伯格看到一名政府公务员用办公室的电脑玩《纸牌》后决定解雇他。 )
你有在玩纸牌游戏时被发现,并谎称在测试吗?
本来我做了一个老板键按钮,按下时会随机显示一些 C 程序。但是微软让我删掉它。
我曾经一次去听 Rick Wakeman 音乐会时,发现他的音响师整场演出期间都在玩纸牌游戏。你知道玩纸牌游戏最有名的人是谁呢?
我知道比尔·盖茨在玩,他说想赢不简单。
这个游戏有什么作弊的后门吗?是哪些呢?
有,当你玩翻三张(Draw Three)时,你可以按住 Ctrl+Shift+Alt,并点击获取一张牌,这样有大概率会赢。
是否有办法改变游戏最后连续弹出所有牌的速度呢?我发现不同的操作系统上速度是不一样的。
有,升级到 IBM 286 或者安装诺顿杀毒软件都会降低速度。我把这个工作交给 Moore 先生 了,他会提高速度的。(伯乐在线补充:这里说的 Moore,就是指摩尔定律。)
写纸牌游戏时,我尝试了各种各样能够提高最后连续弹出纸牌速度的方法。有一个计算机杂志提出了纸牌游戏测计算机性能的方法,游戏最后连续弹出纸牌越快,机器性能越好。
关于 Vegas 模式:
  • 它的工作原理是什么?
  • 它为何这么难?
  • 为什么引入这个模式?
  • 你知道谁在 Vegas 模式下玩纸牌游戏吗?
我不是很愿意把这些公之于众。
  • 你为每张牌支付 $1(总共需要 $52),然后每出掉一张牌获得 $5. 如果你玩翻三张会获得三轮的机会,翻一张获得 1 轮机会。
  • 你在拉斯维加斯见过这样的赌场吗?很贵的。
  • 我说不太好,这算一个功能吧。
  • 我在玩啊。第一次差不多10年。
你玩空当接龙 (Freecell)吗?
不,我也不玩纸牌游戏。
空当接龙一直在公布统计数据,但纸牌游戏没有,我想要一份。
答案1:Freecell Freecell Freecell, 我讨厌听到人们说空当接龙的好。
答案2: 如果你的老板看到这个统计数据后会裁掉你的。
据说纸牌游戏中有个彩蛋是比尔·盖茨抓着一个海洋动物,这是真的吗?
是的,Andrew Wyland 对最初的彩蛋做了很多修饰。(伯乐在线注: Wyland是一个著名的新时代海洋艺术制作者)
我们曾经用 Borland 来 hack 纸牌游戏,并将牌搞成一团糟。我们这样做的时候,你会恼怒吗?
有趣的是,过去的几年我一直莫名其妙的恼怒,谢谢你让我知道了原因。
烤面包总是把有黄油的那面朝下,猫总是蹲坐在它的腿上。如果你把面包绑到猫背上,会发生什么呢?
你的眼睛会被愤怒的猫挖掉的。
在犯罪现场,留什么卡片可以戏弄侦探呢?
搞一个卡片,写上“他走这边了à”(指向反方向)。哈哈哈。
纸牌背面的设计图案是你选择的吗?你喜欢蝙蝠吗?
有一半纸牌的背面是我女友 Leslie Kooy 设计的。不幸的是,她设计成了飞行的蝙蝠(flappy bat),所以我们分手了。
纸牌我玩 4 次,只能赢 1 次,我是不是有些笨?
我建议把“获胜”重新定义为工作中的放松。
你玩扫雷吗?最高分是多少?
我玩,我从比尔·盖茨那里学到了一个获胜的技巧,就是尽可能快和随机地点。
如果你可以选择一个人, 让他一天都说真话,你会选择谁呢?
乔治·布什 (George Bush),那个邪恶的家伙。我希望我有另一个纸牌游戏在手,这样的话我会发布出来,造成另一个经济萧条期。
考虑到纸牌游戏将全球数百万潜在的工作时间都浪费了,你认为你做了一件好事还是坏事?(我想是好事,所以不要认为我让你难堪)
时间就像海绵里的水,只要愿挤,总还是有的,所以我没做坏事。😂
你被认出来过吗?他们都说什么?
“警察蜀黍,就是他干的”。
如果你可以把世界上任何一个东西放到任意一个地方,你会选择什么,放到哪里呢?
把我放到小甜甜布兰妮那里。
你与动物搏斗过吗?如果有,那你赢了吗?
高中时,我一个朋友 Mark Causey 勾住我的下巴,把我踢了出来。
为什么那个戴着太阳镜,露着笑脸和舌头的人出现在无人岛大冒险( desert island )的卡片上?
你在说什么?我建议你去做一个精神评估。
为什么你在游戏英文版里不取名 Patience(耐心)呢?
因为我讲英语,所以我称它为 Solitaire(纸牌游戏的正版英文名字)。
如果你将被困在荒岛上,你会带什么游戏呢?
机器人2084 (Robotron 2084), 最好玩的视频游戏。
如果纸牌游戏在下个 Windows 版本中删除了,你会怎么想呢?
  • 你脱离了世界
  • 世界脱离了你
  • 被欺骗的感觉,内心很苦涩
  • 很温暖的感觉,很愉悦
  • 其他?
当然是很愉快了。
你每次开发都会写的代码是什么?
10 PRINT “Wes Rulez!!!”

20 GOTO 10.
驼峰法命名发好,还是匈牙利命名发好呢?
我喜欢匈牙利法,虽然在现代语言中它不是很有用。驼峰法对我来说无意义。
你最后是给什么项目写代码?
免费插件。我给我的 MP3 更新了一个播放程序——Juke 。我也发布了一个可视化软件 Mocha,我的 Winamp 可视化软件。
如果纸牌游戏每被玩一次,你就会获得 $1,你会以一种舒服的状态来接受这个采访吗?
我用了 11 个月的时间来回答这些犀利的问题。如果真有人付钱了,我不会这么迟才来参加这个访谈。所以快点吧。
主页君后话:玩过纸牌游戏的朋友,还记得你的最高纪录是多少么?
看完本文有收获?请转发分享给更多人
关注「程序员的那些事」,编程更有趣
继续阅读
阅读原文