[ プログラミング演習(Ruby) >  プログラミング演習(Ruby) 課題(2025) >  [課題12] 宝探し ]

[課題12] 宝探し

課題

以下の説明に基づいて,タートルグラフィクスを用いて, 宝探しのプログラムを作成して提出してください.

キャンバスに宝物が隠されます. 宝物の位置(x,y)はランダムに決められます(どこに隠されるかは分かりません). 宝物は発見されるまで表示されません. 以下を参照して,キャンバス上で亀を動かしながら,宝物を見つけ出してください.

(後述する)宝物の位置に関するヒントを利用しながら, 亀が自律的に動くのであれば,基本的にはどのような方法で探しても構いません. 一切ヒントを使わない方法,たとえばキャンバスをくまなく機械的に巡回する方法(いわゆるローラー作戦)は避けてください.

テンプレート

次に示すプログラムのテンプレート(雛型)を使ってください. このプログラムは名前を適宜変えた上で保存して利用してください(リンクを右クリックして「リンク先に名前をつけて保存」に相当する項目を選んでください).

今回はテンプレートをダウンロードした後,次のように「require 'gtr/turtle'」の次に「require 'gtr/treasure_hunt'」の行を追加してください.


# タートルグラフィクスパッケージの読み込み
require 'gtr/turtle'
require 'gtr/treasure_hunt' # この行を追加する(太字にしているのは説明のためです)
include Gtr

「require 'gtr/treasure_hunt'」によって,'treasure_hunt'を読み込んで, この課題のために利用するメソッドを亀に追加で定義します(追加されるメソッドについては後述). また同時に,宝物をキャンバスに配置して,亀をキャンバス上に(宝物と重ならないように)ランダムに配置するような設定を施します.

探索方法の概要説明

この課題では,どのようなに宝物を探すようにしているのか, 宝物を探す方針についての説明をプログラムの先頭の部分に次のように記述してください.

=begin

所属:
氏名:
学生番号:
難易度(5段階評価):

宝物を探す方針の説明

感想など(任意)

=end

備考

タートルグラフィクスで亀を動かす距離が極端に短い場合に亀が期待通りに動作しない場合があります. 亀を動かしても位置が変わらない場合は,この問題が生じていると考えて,移動距離を少し大きくするようにしてください.

利用可能なメソッド

この課題で利用可能な亀のメソッドを紹介します. なおすべてのメソッドを使わなければならないわけではありません.

サンプルプログラム

以下にサンプルプログラムを示します.

これらをブラウザの画面で開いたときに文字化けしてしまう場合には, ダウンロードしてEmacs等で開いてみてください.

プログラムの強制終了

プログラムが止まらなくなったようにみえたら,端末(Terminal)上で次のキーを入力してください. プログラムを強制的に終了させます.

  [Ctrl]+[c]
[ プログラミング演習(Ruby) >  プログラミング演習(Ruby) 課題(2025) >  [課題12] 宝探し ]