| 20行のソルバーです。以下の手順で遊びます。
- 4枚の異なる色の紙を重ねます
- 絵を切りぬいてジグソー・パズルを作ります。
- 隣接する部分が異なる色を得るように、色紙を並べ、4つのパズルを作ります
あなたの切り方がどんなにでたらめであっても、パズルへの解は必ず存在します。 私の記憶が正しければ、このことはイリノイ大学のある賢い人によって保証されています。この人はこの4つの色問題を解決して、いつも解が存在するためには、4つの色があれば十分であるということを証明しました。
この問題の解を計算するMINERVAプログラムは、力任せの検索方法をとっており、およそ20行のプログラムです。 パズル自体は60行程度のプログラムです。そして、それ以外のプログラムは絵を描くためのプログラムです。
このプログラムによって、かなり高度な技法がわかります
- 1つまたは全ての解を見つける全数探索の使用
- パズルを記述する宣言の使用
- 結果を保存するために黒板を使うこと
- package、external、init指令の使用
- プライバシーのためのアンダースコアを最初に付けた述語名の使用
- テスト目的のためのいくつかのモジュールにおいてmain/1を使用
- Javaクラスとそれらのメソッドの使用
- 多くの動くウインドウ
- 'action'と'paint'イベントでGUIを使うこと
注意:
'Show All Solutions'ボタンは、この実例のために192の新しいウインドウを生成します; 繰り返し使用した場合は、あなたのWindowsのリソースをすぐにを使い尽くしますのでご注意下さい。
Netscape 4.0は、正しくこの実例を実行しないかもしれません。
|