ELMに付いてくるサンプルを紹介しておきます。 詳しいところは、ソースをじっくりながめて理解するように しましょう。
前節の内容と同じで、定番のサンプルです。 以下の全てのサンプルを実行する上での基本 が確認できます。
メッセージをリレーする例題です。いっしょに含まれるHelloElm.javaは 前のサンプルと同じものです。 実行するにはVESMA仮想空間内にhelloというオブジェクト名でHelloElm を一つ生成し、relayHelloというオブジェクト名でRelayHelloを生成 します。relayHelloに対してrelayHelloというメッセージを送れば relayHelloがhelloにメッセージを送り、その答えをリレーして 返してくれます。
メッセージの別のタイプであるオーダ(Order)の例題です。 OrderExamクラスのオブジェクトを、オブジェクト名 node1,node2,node3で、3つ作成します。 node1,node2,node3のそれぞれに対して searchNextElmメソッドを実行した後にnode1にloopメッセージ を送れば、3つのオブジェクト間でOrderメッセージが輪のように 交換され、無限ループになります。
オーダタイプのメッセージは返事を受け取る手間が省けるので 簡単にメッセージを送れます。
Orderタイプのメッセージをコマンドラインから入力する には、コマンドラインの最後に'&'マークを加える必要があります。 例えば以下のようになります。
##node1 searchNextElm &
上のOrderExamの例題は実行するまでのオブジェクトの準備 などが面倒です。これを自分の部屋をカスタマイズすることで、 簡単化します。MyRoomクラスのオブジェクトをMyRoomという オブジェクト名前で作成して下さい。そのオブジェクトに 対してloadElmFromTextメッセージを送ります。
##MyRoom loadElmFromText MyRoom.txt
メッセージに引数がある場合はメッセージ名の後に続けて 入力します。この場合MyRoom.txtというファイル名が引数 です。
部屋の準備ができたら、その部屋に入ります。
cd MyRoom
すでにnode1,node2,node3のOrderExamオブジェクトが用意さ れています。次のようにコマンドを入力すると無限ループが スタートします。
#searchNextElm #loop
上のコマンドはシャープ(#)一個で初まるコマンドです。これは、 現在自分のいる部屋に対してメッセージを送ることを意味します。 自分が現在いる部屋は一つしかないので、オブジェクト名を指定 する必要が無いのが特徴です。#searchNextElmを実行すると、 node1,node2,node3のそれぞれにsearchNextElmメッセージを送る ので、コマンドの入力が1回ですむようになります。
全てのElmオブジェクトは3次元座標を持っています。この座標を 変更することで、Elmオブジェクトを移動させることができます。 実行方法は、PlaceExamクラスのオブジェクトを生成し、 method1メッセージを送るだけです。
ELM,VESMAでは簡単にリモート通信(離れたコンピュータ同士の 通信)が可能です。この例題を実行するためには、ネットワークで 接続された2つのコンピュータが必要です。
Elmオブジェクトの外見(UI:User Inteface)を変える例題です。
Elmオブジェクトのユーザインタフェースを 自分でカスタマイズしたオリジナルなものにする例題です。
部屋のバックグラウンド(壁紙?)を自分でカスタマイズ する方法です。
オブジェクトをダブルクリックすると出てくるウィンドウを カスタマイザと呼びます。このカスタマイザを自分で作る 方法です。
ELM,VESMAで作成したプログラムをアプレットとして公開する 場合の方法です。
ELMやVESMAのクライアントでは、達成できない機能が ある場合には、自分でクライアントを作成することができます。 テキストベースのクライアントの例です。
拡散限定凝集と呼ばれる物理現象のシミュレーションです。
ラプラス方程式と呼ばれる偏微分方程式の境界値問題の 簡単な数値解を求める実験です。
重りとバネで構成された物理系のシミュレーションです。
ライフゲームと呼ばれるシミュレーションです。
三体問題と呼ばれる物理現象のシミュレーションです。
マウスのクリックを関知する例題です。
ELMで階層構造を持つ仮想空間を作成する例題です。