第11章 示□与游戏程式
MIT 发行的 core 版本提供了少数的示□程式以及仅有的一个游戏程式.
它们展现出某些视窗系统的威力, 且能给人一种强烈的美好印象 -- 特别是在
彩色萤幕上.
11.1 找出通过随机迷宫的路径 - maze
maze 在视窗中产生一个随机的迷宫 (图 11 - 1), 它会自动找出从入口
通过迷宫到达出口的路径. 它会追踪它走过的轨迹, 当它从一个死巷中退出时
则将轨迹消除. 你可以用滑鼠按钮启动, 暂停, 继续或停止程式, 就如同在手
册页中所描述的. maze不提供颜色.
注意 : 中间按钮对暂停与重新启动的作用并不可靠.
┌--------------------------------┐
│ p125. fig 11 - 1 │
│ │
│ │
│ │
│ │
│ 图 11 - 1 迷宫程式 │
└--------------------------------┘
11.2 担任指标的大眼睛 - xeyes
xeyes 在视窗中绘出两个大眼睛, 且它们永远保持看著指标 (图 11 - 2).
当指标移动时眼睛也随著调整 (且若你移动指标到它自己的眼睛之间, 它们会
变成斗鸡眼! (cross eyed!)
你可以明确地给视窗的每个元素设定颜色 - 瞳孔, 背景, 外框等.
注意 : xeyes 会使你的系统执行速度变慢.
┌--------------------------------┐
│ p126. fig 11 - 2 │
│ │
│ │
│ │
│ │
│ 图 11 - 2 xeyes 程式 │
└--------------------------------┘
11.3 智慧盘游戏 - puzzle
puzzle 是一种古老的游戏, 有 15 个编号的小方块被一个 4x4 框架围住.
你必须移动小方块使它们按照数字顺序排列. (图 11 - 3)
┌--------------------------------┐
│ p127. fig 11 - 3 │
│ │
│ │
│ │
│ │
│ 图 11 - 3 智慧盘游戏 │
└--------------------------------┘
你可以使用滑鼠控制游戏 :
启动游戏 : 藉著在控制棒的左上边盒子内碰触按钮可以重新搅和小方块.
移动小方块 : 将指标移到与空白位置相同的行或列的小方块上,碰触按
钮以移动该小方块与所有它之前的所有小方块进入空的位置. (所以
移动後, 空位置在你碰触按钮的地方)
由 puzzle 自己去解 : 在控制棒的右手边盒子上碰触按钮.
离开 (跳出) : 在控制棒的中间碰触中间按钮.
11.3.1 puzzle 的命令列选项
使用一个大小不是 4x4 的框架 : 使用选项 - size width x height,
其中尺寸是以小方块为单位.
改变小方块被移动的速率 : 使用选项 -speed num. 此处 num 是每秒移动
的数目 (预设值为 5).
11.4 列印一个大X语标 - xlogo
xlogo 建立一个视窗并在它里面显示一个X语标(logo),如图 11 - 4. 假
如你重定视窗大小,语标再次被绘出, 且尽可能地将视窗填满.
┌--------------------------------┐
│ p127. fig 11 - 4 │
│ │
│ │
│ │
│ │
│ 图 11 - 4 xlogo 程式 │
└--------------------------------┘
11.5 跳动的多面体 - ico
ico 产生一个视窗且在它里面有一个 12 面体 - 一个具有 12 面的实心
体 - 如图11 - 5 所示. 这个多面体是会动的, 它在视窗内不断地碰撞跳跃.
在单色显示器上你可能只有一个直线构成的图 (使用选项 -i 可以反白显示),
但是在彩色显示萤幕上, 你可以看到实心的彩色面.
试下面的例子 :
ico -nodeges -faces -colors red blue yellow green
你可以设定一个跳跃的12面体在一个根视窗内 (背景视窗),而不必靠它自
己使用 -r 选项指定特定视窗. 另外, ico 可指定多面体的面数, 不是只有12
面体 : 如果你想得到一个完整的列表可以键入下列命令 :
ico -objhelp
┌--------------------------------┐
│ p128. fig 11 - 5 │
│ │
│ │
│ │
│ │
│ 图 11 - 5 ico 程式 │
└--------------------------------┘
11.6 动态几何图样 - muncher 与 plaid
muncher 与 plaid 重覆地绘出变化多端而有趣的几何图样 (图 11 - 6a
与 b).
┌--------------------------------┐
│ p129. fig 11 - 6 │
│ │
│ │
│ │
│ │
│ 图 11 - 6 muncher 与 plaid 程式│
└--------------------------------┘
11.7 结论
core版本中没有非常广泛的示□程式. 假如你曾读取 contrib 的磁带, 你
可能会发现下列有趣的程式 :
paint : 简单的绘图程式. (像一个画图程式, 但你可以对区域涂上纹理
或颜色, 不只是线.)
xcolors : 一个可展示你的系统上所有颜色名称的好程式.
xfish : 设定鱼在你的整个背景视窗内游动. 有趣的部分是你可以用滑鼠
射击它们.
qix : 一个 qix 射击游戏的程式.
xmille : 和你玩一个 Mille Bournes 的牌戏.
xsol : 和你玩一个单人玩的牌戏.
xtrek : 一个令人著迷的太空游戏.