DONKEY.BAS 是一款于 1981 年编写的视频游戏,由微软联合创始人比尔盖茨和早期员工 Neil Konzen 开发。

体验游戏,并查看游戏的源代码(只有130+行)。

我可以猜出大部分代码的意思,除了一个名为的整数数组变量B%

...
1510 DIM B%(300)
1520 FOR I=2 TO 300:B%(I)=-16384+192:NEXT
1530 B%(0)=2:B%(1)=193
...
1760 IF Y AND 3 THEN PUT (140,6),B%
...

看起来比尔盖茨和尼尔康森用一些神奇的数字填充了这个数组,并在坐标 (140, 6) 处将其绘制为图像,此时变量的两个最低位Y(驴的 y 坐标)不都是 0。我认为 140 是道路中间虚线的 x 位置。

我对变量的代码很好奇B%,这些神奇的数字是什么意思,以及为什么前 2 个元素(2 和 193)的二进制模式与接下来的 298 个元素不同?

IF Y AND 3 THEN PUT (140,6),B%好像对道路中间的虚线做了某种变换,产生了动画,让玩家感觉到汽车在向前行驶。

1

  • 没有答案,只是写下位模式:[0] = 0000 0000 0000 0010 [1] = 0000 0000 1100 0001 [2] = 1100 0000 1100 0000


    – 



最佳答案
1

如果你查找BASIC 的中的格式解释如下

  • 字节 0,1:x 像素数,无符号整数。在 SCREEN 1 中,此值加倍。
  • 字节 2,3:y 像素的数量,无符号整数。
  • 字节 4 及以后:像素数据。数据以 2 字节字的形式排列。第一个 16 位字保存顶行前 16 个像素的位 0。第二个字保存第二个位,依此类推。数据在每行末尾按字对齐。因此,在每像素 4 位的屏幕模式下,第一行至少占用 8 个字节(4 个字),即使它仅由一个像素组成。每像素的位数取决于屏幕模式。

因此前两个元素不同,因为它们包含显示的矩形的大小。

其余部分是恒定的,因此它是一个重复的图案(条纹),其中一些 16 位被打开,一些被关闭。