第二回 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