アルゴリズムとデータ構造入門 必修課題3 サポートページ
注意:現在は、Cygwin版の使用が可能となったということなので、
これから始める人はそちらを使った方が無難です。
大変遅くなってしまい申し訳ありませんでした。
多くの人から「必修課題3をどうすればよいか分からない」、「Windowsで実行できない」といったメールが届いたので、
いろいろと調べてみたところ、MIT-Scheme-6001で実行可能だということが分かりました。
また、人型を描画するサンプル(wave)を加えたので、実際に動作させながら試してみてください。
なお、このページに関する質問は、村瀬までお願いします。
インストール方法
以下では、WindowsXPにおいて使用する方法を説明します。
- まず、MIT-Scheme-6001の
インストール用実行ファイルをダウンロードして、自分のパソコンにインストールします。
- インストールすると、ウィンドウズがインストールされているドライブ(普通はCドライブ)の下に、「C:¥u6001」というディレクトリ(フォルダ)ができているはずです。
- 次に、図形言語用ソースファイルをダウンロードして、解凍(展開)してください。
- 展開すると、「6001-images」、「psets」、「work」という3つのディレクトリ(フォルダ)が得られるはずです。これらをすべて、「C:¥u6001」の直下に置いてください。
- この状態で、「C:¥u6001¥6001-images¥fovnder.pgm」などのファイルができているはずです。以上でインストールや最初の設定は完了です。
実行方法
以下では、インストール時に「C:¥u6001¥work¥」に入っているはずの「wave.scm」ファイルを使って人型を作成する方法について説明します。
(waveは私が急いで作ったものなので、ソースコードは適当です。)
- まず、スタートメニューからMIT-Scheme 6.001 を起動します。
- すると、タスクバーに二つのウィンドウが表示されます。(画面に表示されるのは1つだけかもしれません。)
- このうち、「Edwin: *scheme*」というタイトルのウィンドウが作業用のウィンドウになります。
- ウィンドウには、バージョン情報や3行ほどのメッセージが表示されているはずです。
- このウィンドウはEmacsと同じキーバインドになっていますが、Emacsについてよく分からない人は以下のものだけ覚えておけば十分です。
- 「C-x C-c」で終了する。ただし、C-xとは、Controlキーを押しながらxを押すことです。(C-cも同じ。)
- 何かよく分からないことが起こったときは、「C-g」でキャンセルする。
- 「C-l」でカーソルが画面の中央に来るように再表示する。
特に、「C-g」は覚えておいてください。何かよく分からないことが起こったときは、ひとまず「C-g」を連打しましょう。
あとは、普通のテキストエディタと同じように使えます。
- 次に、図形言語を使うために以下のコマンドをうちます。
(load "../psets/ps4/psgo.scm")
うちこんだあと、行末で「C-x C-e」のコマンドを入力してください。MIT-Schemeでは、このコマンドを実行しないと、Schemeの式が評価されません。
- この状態で、新たに3つのウィンドウが表示されるはずです。表示されなければ今までの手順を確認してみてください。
- これで、ひとまず図形言語を使う準備ができました。以下は、サンプルのwaveを表示するための操作です。
- 「C:¥u6001¥work¥wave.scm」を読み込むために、以下のコマンドをうちこみ、行末で「C-x C-e」を入力します。
(load "wave.scm")
- すると、いくつかの関数が定義されるので、続いて以下のコマンドをうちこみ、行末で「C-x C-e」を入力してください。
(paint g1 wave)
- これで、1つめのウィンドウに図が表示されるはずです。g2なら二枚目に、g3なら三枚目に表示されます。
その他
その他に気をつけた方がよいことを挙げておきます。
- 自分で作成したプログラムは、「C:¥u6001¥work¥」の下に置く。(その方がロードしやすいため。)
- うまく動かないと思ったときは、まず「C-x C-e」を実行したかどうかを確認する。
- 画像を保存するときは、「Alt + PrintScreen」で画面をクリップボードへキャプチャできるので、保存したい図が表示されている状態で、「Alt + PrintScreen」を押し、
ペイントなどを立ち上げてペーストしましょう。(何らかのコマンドで保存できるのかもしれないので、知っている方は村瀬までメールをお願いします。)
- (paint g1 wave)の代わりに、(paint-hi-res g1 wave)とすると、2倍の解像度で描画することができる。
MIT-Schemeでは、「C-x C-e」を実行するのが面倒なので、ソースコードは別のテキストエディタで行い、ロードと実行だけをMIT-Scheme上で行うとよいと思います。
対応が遅くなってしまい申し訳ありませんでした。
それでは、レポート頑張ってください。