X Window 系统使用指南--示□与游戏程式


第11章 示□与游戏程式
MIT 发行的 core 版本提供了少数的示□程式以及仅有的一个游戏程式.
它们展现出某些视窗系统的威力, 且能给人一种强烈的美好印象 -- 特别是在
彩色萤幕上.

11.1 找出通过随机迷宫的路径 - mazemaze 在视窗中产生一个随机的迷宫 (图 11 - 1), 它会自动找出从入口
通过迷宫到达出口的路径. 它会追踪它走过的轨迹, 当它从一个死巷中退出时
则将轨迹消除. 你可以用滑鼠按钮启动, 暂停, 继续或停止程式, 就如同在手
册页中所描述的. maze不提供颜色.注意 : 中间按钮对暂停与重新启动的作用并不可靠.┌————————————————┐
│ p125. fig 11 - 1 │
│ │
│ │
│ │
│ │
│ 图 11 - 1 迷宫程式 │
└————————————————┘
11.2 担任指标的大眼睛 - xeyesxeyes 在视窗中绘出两个大眼睛, 且它们永远保持看著指标 (图 11 - 2).
当指标移动时眼睛也随著调整 (且若你移动指标到它自己的眼睛之间, 它们会
变成斗鸡眼! (cross eyed!)你可以明确地给视窗的每个元素设定颜色 - 瞳孔, 背景, 外框等.注意 : xeyes 会使你的系统执行速度变慢.┌————————————————┐
│ p126. fig 11 - 2 │
│ │
│ │
│ │
│ │
│ 图 11 - 2 xeyes 程式 │
└————————————————┘
11.3 智慧盘游戏 - puzzlepuzzle 是一种古老的游戏, 有 15 个编号的小方块被一个 4x4 框架围住.
你必须移动小方块使它们按照数字顺序排列. (图 11 - 3)┌————————————————┐
│ p127. fig 11 - 3 │
│ │
│ │
│ │
│ │
│ 图 11 - 3 智慧盘游戏 │
└————————————————┘你可以使用滑鼠控制游戏 :启动游戏 : 藉著在控制棒的左上边盒子内碰触按钮可以重新搅和小方块.移动小方块 : 将指标移到与空白位置相同的行或列的小方块上,碰触按
钮以移动该小方块与所有它之前的所有小方块进入空的位置. (所以
移动後, 空位置在你碰触按钮的地方)由 puzzle 自己去解 : 在控制棒的右手边盒子上碰触按钮.离开 (跳出) : 在控制棒的中间碰触中间按钮.
11.3.1 puzzle 的命令列选项使用一个大小不是 4x4 的框架 : 使用选项 - size width x height,
其中尺寸是以小方块为单位.改变小方块被移动的速率 : 使用选项 -speed num. 此处 num 是每秒移动
的数目 (预设值为 5).【X Window 系统使用指南--示□与游戏程式】
11.4 列印一个大X语标 - xlogoxlogo 建立一个视窗并在它里面显示一个X语标(logo),如图 11 - 4. 假
如你重定视窗大小,语标再次被绘出, 且尽可能地将视窗填满.┌————————————————┐
│ p127. fig 11 - 4 │
│ │
│ │
│ │
│ │
│ 图 11 - 4 xlogo 程式 │
└————————————————┘
11.5 跳动的多面体 - icoico 产生一个视窗且在它里面有一个 12 面体 - 一个具有 12 面的实心
体 - 如图11 - 5 所示. 这个多面体是会动的, 它在视窗内不断地碰撞跳跃.
在单色显示器上你可能只有一个直线构成的图 (使用选项 -i 可以反白显示),
但是在彩色显示萤幕上, 你可以看到实心的彩色面.试下面的例子 :ico -nodeges -faces -colors red blue yellow green你可以设定一个跳跃的12面体在一个根视窗内 (背景视窗),而不必靠它自
己使用 -r 选项指定特定视窗. 另外, ico 可指定多面体的面数, 不是只有12
面体 : 如果你想得到一个完整的列表可以键入下列命令 :ico -objhelp┌————————————————┐
│ p128. fig 11 - 5 │

推荐阅读