回 目 录
上 一 章

# 第二十章：快乐至上

  这一章将介绍这部文档中的示例程序中JustForFun目录下的程序。这些程序是我凭兴趣写的，但是并不是说它们是很好的编程范例，也不是使用ncurses的最佳方法或诀窍。它们为初学者提供了一些点子，同时允许您为这部文档添加更多的示例程序。如果你无意中用curses编写了一个又简单又有趣的程序，而且希望他们加入这个章节，可以联系作者。（译者注：用英文联系原文作者可以将您的程序添加到原始的英文版文档，如果您想将您的程序仅包含到中文版文档，可以联系译者）

### 20.1. 生命游戏(The Game of Life)

  生命游戏是一个神奇的数学游戏，用Paul Callahan的话说就是：

生命游戏(或者是简单生命)不是一个通常定义的游戏。在这个游戏中，没有玩家、没有输也没有赢，当这些“碎片”被放置到起点位置，规则将确定后面发生的任何事。然而，人生总是充满了惊奇！在很多情况下，看见开始位置（或者开始的样子）和看到未来发生的事是不可能的。遵循游戏的规则是发现起点和看到未来的唯一方法。

  这个程序开始以一个反转的类似U样子开始，它会告诉你生命是多么精彩。你有很多的空间可以用来改进这个程序。你可以让用户通过输入选择他的生命模式，甚至可以从文件中读取这些样式。你可以改变规则并在大量的变化得到乐趣。在google上可以查到很多和生命游戏（game of life）的信息。

文件路径： JustForFun/life.c

### 20.2. 幻方(Magic Square)

  幻方，另一个神奇的数学游戏。它很容易了解，但很难满足它的条件。在幻方中要让每行的和、每列的和、以及每个斜行的和必须相等。

  这个程序运行时需要附加一个奇数作为参数。

文件路径： JustForFun/magic.c

### 20.3. 汉诺塔(Towers of Hanoi)

  著名的汉诺塔模拟程序。目的是将第一个柱子上的所有盘子按从上到下、从小到大顺序移动到最后一个柱子上，中间有一个柱子用来临时放置盘子。无论怎么放，放盘子的时候不能让较大的盘子压在较小的盘子上。

### 20.4. “八皇后”问题（Queens Puzzle）

  这是最著名的八皇后问题。这个问题要求在国际象棋的棋盘上摆放8个皇后，而且这八个皇后不会相互攻击。这个程序用一个非常简单的返回算法来解决这个问题。

文件路径：JustForFun/queens.c

### 20.5. 纸牌（Shuffle）

  一个有趣的游戏，可以用来消磨时间。

文件路径：JustForFun/shuffle.c

### 20.6 打字练习（Typing Tutor）

  一个简单的打字训练程序，我创建了更多其它的东西以便于使用。如果对键盘不熟悉，但是你知道使用键盘的正确姿势。这个程序会很有用的。

文件路径：JustForFun/tt.c

回 目 录
上 一 章