BBS水木清华站∶精华区

 
                       第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 : 一个令人著迷的太空游戏. 
 
 

BBS水木清华站∶精华区