第二回 KLIC プログラミングコンテスト
	      並列部門 "ライフゲーム" サンプルプログラム

							1997/07/30
				KLIC プログラミングコンテスト事務局

(1) この配布の構成

この配布に含まれるファイルは以下の通りです。

README			このファイル

README.e		その英語版

main.kl1		KL1 で書かれたライフゲームのメインルーチン
			(デバッグを目的とする。)

Makefile		Makefile (コンパイルの手順を示したもの)
	
test/			動作確認を行なうテストが含まれるディレクトリ
test/Makefile		動作確認のための Makefile
test/*.life		サンプル入力
test/outputs/*.out	サンプル入力に対する出力

game/			ライフゲームを楽しむためのグラフィカルユーザ
			インターフェースを含むプログラムが含まれる
			ディレクトリ


(2) メインルーチンと動作確認環境の利用方法

課題の述語 life:compute/3 を実装した life.kl1 というファイルに用意して, 
この README と同じディレクトリに置いて下さい。

make により, エギゼキュータブル life の作成と動作確認が動きます。


(2.1) Makefile

プログラムのコンパイルの手順とテストの起動について記述されています。
Makefile を必要に応じて編集し, パラメータ KLIC, KFLAGS, 等を設定して下
さい。


(2.2) メインルーチン main.kl1 について

ライフゲームのメインルーチンです。課題に対する応募作品を作成する際の
(逐次環境での)デバッグと動作確認を目的としています。(審査が同様のプロ
グラムで行なれわるとは限りません。)


(2.3) エギゼキュータブル life の作成

	% make

により, ソースファイル main.kl1, life.kl1 から KLIC により, エギゼキュー
タブルの life が作られます。


(2.4) エギゼキュータブル life の動作について

起動方法は二種類あります。

	% life

というように引数なしで起動された場合, 標準入力を入力とし, 

	% life ファイル名

と引数付きで起動された場合, 引数で示されたファイルを入力とします。。

(2.4.1) 入力のフォーマット

入力は, KL1 の term が一つに続けて . (ピリオド)です。Term の形式は 
life(HowManyGenerations,PointList) という functor で,
HowManyGenerations (整数)で, どの世代まで走らせるかを与え, PointList
(座標を示す p/2 の functor のリスト)で, 「オン」のセルのリストを与えま
す。PointList は, 昇順にソートされているとします(p(X0,Y0) < p(X1,Y1)
iff Y0