アットウィキロゴ

課題1

教科書の実行例(p.134 図3.18, p.147 例3.2)を変更して実行し,正しくない動作をする例を見つけよ.正しくない動作の原因箇所をプログラム中から探し,どのように修正すれば良いかを考え,修正せよ.

ヒント
  • initGoalListメソッドとinitInitialStateメソッドでゴールと初期状態を決めているので,これを変更する.
  • 実行例を見て,怪しい部分があったらプログラム中にSystem.out.println文等を挿入して変数の値を確認しながら,動作の詳細を理解するとよい.
  • プログラムの意味がわかってきたら,その説明をコメント(// で始まる行)として追加していくと良い.
  • たとえば,remove ?x from on top ?y オペレータを,?x がテーブルの上にあるときに実行すると...?

課題2

教科書のプログラムでは,オペレータ間の競合解消戦略としてランダムなオペレータ選択を採用している.これを,あらかじめオペレータに優先度を付けておき,優先度が高いものから適用するような競合解消戦略に変更せよ.

ヒント
  • 単純な方法としては,例えばOperatorクラスにint priorityという変数を追加する等があるが,なるべく効果的な競合解消を考案して実装することが望ましい.

課題3

教科書のプログラムでは,最初にinitGoalListメソッドで"B on C", "A on B" というゴール文字列を与えている.これを,ユーザが何らかの方法で入力して指定できるように変更せよ.

ヒント
  • 標準入力から文字列を入力する場合は,System.inやBufferedReaderを組み合わせて用いる.GUIを用いる場合は,SwingならJTextFieldやJTextArea等を用いると良い.

課題4

教科書のプログラムでは,ブロックの色や形を考えていないので、色と形を扱えるようにせよ。具体的には,Aが赤で三角形,Bが青で四角形,Cが黄で四角形とし,色と形を使ってゴールを指定できるようにせよ. 例えば,"red on blue" や"square on blue"のように.

課題5

グループでスムーズに開発を進めるためには,役割分担,進捗状況の管理,情報共有などが必要になる.このとき,何に気をつけるべきか,必要なことは何かを,グループ作成書類Grep6で考察せよ.

タグ:

+ タグ編集
  • タグ:
最終更新:2010年12月05日 19:54