甲府方重信Blog

...Shigenobu Koufugatas Blog

  • Increase font size
  • Default font size
  • Decrease font size
Error
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
Home 業務日誌 Adaプログラミング Adaチュートリアル セクション18.4 - オブジェクトの属性と操作

Adaチュートリアル セクション18.4 - オブジェクトの属性と操作

E-mail Print PDF

セクション 18.4 - オブジェクトの属性と操作

さて、わたし達は共通する構造一般を入手することが出来ました。次にわたし達は、どんなデータ値と操作がそれぞれのタグ付けされた型に適用されるかを見極める必要があります。

Thing型は、恐らくName属性とDescription属性を持つべきでしょう。この型は、また、そのコンテナーを参照する方法を持つべきなので、わたし達は、「Container」値をその実装に加えましょう。例えば、プレーヤー「Fred」がルーム「kitchen」にいるとすれば、Fredのコンテナーはkitchenを参照することになります。

これらの属性を他のプロシージャーから、完全に隠すことにしましょう。; これによりわたし達は、これらの値に何が起きるかをコントロールすることが出来るようになります。実際、オブジェクトが「どこにいるか」を変更するには、操作「Place」を提供するだけでよいのです。これは、与えられたThingが他のThingの内部に存在することを示します。このように、わたし達は内部データ値に一貫性を保たせることが確実になるようにすることが出来るのです。

プロシージャーのペアとして「looking」を実装してみましょう。最初のプロシージャーは、「look」と呼ばれ、オブジェクトにlookしていることを伝えるメッセージを送ります。(例、プレーヤー)。このプロシージャーは、見ることが可能かを考慮すべきです。(例えば、プレーヤーは見ることができることを決定するかどうか)。そして、次に、プレーヤーが何を見ているか、Put_Viewを呼び出します。(例えば、プレーヤーの部屋)

わたしは、プレーヤーが部屋の中にいつかどうか、疑っています。プレーヤーがドラゴンの腹の中にいる場合とは、見え方が異なるからです。そのため、Put_Viewは切り替え操作であるべきです。それによって、見えているオブジェクトの型によって異なったことが出来るようになります。Ada 95においては、サブプログラムを切り替え可能(プリミティブ)にするため、その型の仕様宣言において、サブプログラムの宣言をおくことができます。

同じ理由により、「Look」はプリミティブ操作であるべきです。; 恐らく、異なったプレーヤーは異なった種類のビジョンを持っているはずです。(X線透視ビジョンや、光を必要としないビジョンなど)そこで、わたし達は「見ている人」に依存して、切り替え可能にしたいのです。

わたし達はまた、オブジェクトを入手したり、手放したりすることを扱う必要があります。アドベンチャーゲームにおいては、多くの操作がアクター(例えば、プレーヤー)と、操作されるオブジェクトの双方を含んでいます。これは、Lookをどのように取り扱ったかと同じです。Lookは見ている人と見られているオブジェクトの双方を含んでいます。例えば、「Get」を動作させるためには、プレーヤーはものを入手することが出来なければなりませんし、入手されたオブジェクトは、プレーヤーによって獲得されたことに同意しなければなりません。そこで、Getに対して操作のペアを定義します。: Get自身、これは与えられたアクターがオブジェクトを入手するかどうかを尋ねます。そして、May_I_Get、これは与えられたアクターがそれを入手するかどうか、オブジェクトに尋ねます。手放す際にも、同じ引数が適用されます。これはDropとMay_I_Dropのペアを持つことになります。

出典: http://www.adahome.com/Tutorials/Lovelace/s18s4.htm

Last Updated on Wednesday, 09 January 2013 05:09  

ニュース速報

リナックスアカデミー新宿アネックス校舎で、LPIC2の資格対策講座を開催した

 

受講生は、12名。

1日目の演習で、研修室の半分のネットワークが動かないトラブルが発生。

システム部の人に、調査してもらった。教務部に、連絡しておく必要がある。

企業からの研修生が多かったため、演習の進度が速く、時間が若干余った。

別途、サーバー構築で作成していた演習課題を追加して、時間を調整した。

20代、30代の若手社員が多かった。