スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)

ロボット達の小難しい物語

 2009-04-04
制作意欲が乏しい今日この頃、皆様におかれましては
ますますご健勝のこととお慶び申し上げます。
また、ブログを訪問していただき厚くお礼申し上げます。
この度、制作意欲向上のためカスタムメニューの制作状況をご報告したいと思います。
不具合・疑問点・ご質問等がございましたら、ご遠慮なく
お問い合わせくださいますようお願い申し上げます。

あ、カスタムメニューをつなぎ合わせて、エラーが出なくしただけの
継ぎ接ぎだらけ・・・。そう、フランケンスクリプトと名づけよう。
そういうことなんで、ゲームに使ったりなんかはおすすめできないです。
何が起こるかわからないですから。

完成品は、このスクリプトをベースにの基のスクリプトをベースに、
コマンドやステータス、オプションを加えられる形になると思います。

スクリプトの反響を見ながら、随時制作していきます。

以前の記事から変わってないですが、お試しあれ。
今回の公開で、メニュー項目の追加が容易になったという意見が聞ければ満足です。
そういった意見があれば、このまま続けたいと思います。
「こういうスクリプトだと項目に追加できないね?」という情報もお待ちしてます。
あ、設定方法は前の記事の説明を参考にしてください。申し訳ない。
それと、項目についての確認だけなんで、他のところを触ると問題が起こるかもです。
フランケンスクリプト

◆◇◆◇◆◇◆◇◆◇


サイト公開して何日か経ったので、サイト名で検索してみたよ。

ぬ゛ぐぅ。。。案の定、"もしかして: COCOA SOFT"って表示された。
最初は、ココアにしようとしたけど、すでに合ったから、
カカオにしたんだけど、検索エンジンに訂正された
間違ってないです!!

気を取り直してページを見てみました。
さすがに引っかかってないですね。
素材ページくらいかな?

あれ?これブログの方の一覧でねぇか。
古いやつは削除しとくだべだべさ。

TOPページが掲載されるのは、いつになる事やら。


しかし!その中で、ウチへのリンクを発見!!!
どのサイトもブログへリンクする中、サイトの方へリンクしてくださいました。
しかも!!その説明の中で、
「ブログ名は「仮」と付いていますが、仮の名前ではないそうです。」
という一文を発見!
なぜそれを!?さては、ブログを見てくれているな!!
ありがとう\(^ ^)/


◆◇◆◇◆◇◆◇◆◇


他サイトさんの講座を見ていて思ったのですが、
うちの講座って小難しい事を並べてないかなぁ?

例えば、Ruby には関数は無いとか。
「ヘルプに'組み込み関数'って書いてあんじゃんかよ!」
と言われても、それは Kernel モジュールのメソッドだったり。
そんな事どうでも良いですよね?処理の仕方が知りたいっすよね?
でも、説明の時に用語が・・・。
でも、そんな事してたら挫s・・・。
講座見る方は、何を求めているのだろう??


で、オブジェクトやインスタンスの説明を書いてたんですけど、
それって理解する必要があるのだろうか?
この辺の説明ってすごく難しいじゃないですか?
1つずつ項目わけしてたんですけど、ここって1ずつ説明できない・・・。

それに、この辺って人によって解釈の仕方が違うじゃないですか。
正しく理解したいですけど、よく分かっていない自分もいますし。
Ruby って、微妙に他のオブジェクト指向と考え方が違うじゃないですか?
なんか調べれば調べるほど、ごちゃごちゃしちゃう。

で、実際使い方さえ分かればオブジェクト指向なんてどうでも良いんじゃないか?
と思うわけです。どうでしょう?


◆◇◆◇◆◇◆◇◆◇


クラスってのが「型」です。ただの型ですので、動きません。
処理を定義してるわけです。つまり、設計図です。
この設計図をもとに実体(インスタンス)が作られます。
インスタンスとは、ロボットという"もの"です。
クラス(設計図)とは違い、インスタンス(ロボット)は実体があります。

クラス(設計図)からは、たくさんのインスタンス(ロボット)が作られます。
あまり作っていると、どれがどれなのかわからなくなってしまいます。
ですので、作成と同時に名前を付けます。これが変数です。
Ruby の変数は、箱ではありません。名札です。
int var = 0 # c++
var = 0   # Ruby
箱は入れるものによって形(型)を変える必要がありますが、
名札は付けるだけなので、形(型)なんてどうでもいいです。

ralph = Robot.new
設計図(クラス)から、ラルフ(変数)というロボット(インスタンス)ができます。
誤解を恐れずに申しますと、このラルフというのがオブジェクトです。
オブジェクト≒インスタンスです。

これらのロボットたちには、三原則が組み込まれています。
<ロボット工学三原則>
1.ロボットは、人間に危害を加えてはならない。また、人間に危険が及ぶ事を見過ごしてはならない。
2.ロボットは、第1の原則に反しない限り人間の命令に従わなければならない。
3.ロボットは、第1・第2の原則に反しない限り、自己を守らねばならない。
※ アイ, ロボット面白かったよね。

これらにあたるのが、モジュールです。
module TLR
# 三原則の定義
end
class Robot
include TLR # 三原則をインクルード
end

Robot クラスには、ロボットの基本動作しか定義されていません。
家事ロボットや農業ロボットなど専門分野に長けるロボットが必要です。
ロボットの基本動作+専門動作というように、
既にあるクラスの機能に追加・変更を加える作業を継承といいます。
既存のクラスをスーパークラス、それに追加・変更を加えた新規クラスがサブクラスです。
class Churlish_Robot < Robot
end
これは、ロボットの作り方を応用して作られた農夫ロボットの設計図です。
この時、Robot クラスは、Churlish_Robot クラスのスーパークラスといいます。
また、Churlish_Robot クラスは、Robot クラスのサブクラスといいます。

飛行ロボットの場合はどうでしょう?
今までのロボットは、二足歩行でしたがこのロボットは浮遊しています。
足はありません。

ですので、Robot クラスに定義してある"歩く"という処理を書き換える必要があります。
この"歩く"という処理のように、クラス内に書かれた処理をメソッドと言います。
class Flying_Robot < Robot
def 歩く
end
end
スーパークラス Robot に定義された"歩く"メソッドを Flying_Robot で再定義します。
これをオーバーライドと言います。
これで、足を動かして"歩く"処理から、重力制御装置によって"歩く"処理に変更されます。


こんな説明を項目わけしようと試みているのですが、どうでしょう?わかりにくい?
今回言いたかったのは、Ruby の変数は、名札であるということなのですが
そちらは伝わりましたでしょうか?
そのためだけに長文を書かせていただきました。
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/198-6838a3ad
≪ トップページへこのページの先頭へ  ≫
カレンダー
10 << 2017/11 >> 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

カテゴリー
最近の記事
最近のコメント
タグクラウド

リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。