■
どうもども |
■
BELL.r
(881)投稿日:2005年05月24日 (火) 02時13分
|
|
お久しぶりでございます。ツクールでのあるもやもやが解消されて精神的に一息ついたBEEL.rです。
日記拝読しました。……PC災難でしたね。いや、なんかPCだけではなさそうですが(汗) RPGツクールXPで、ある変数番号の変数を弄る方法ですが、イベント3ページ目ラストにある「スクリプト」で
$game_variables[5] = $game_variables[$game_variables[4]]
と書いてやれば、 「4番に格納された変数番号の指す変数の内容を5番の変数に代入する」事が出来ます。
Ruby、慣れてくれば結構面白いですよ。いろいろ出来ます。 私は毎日コミュニケーションズの”Rubyの冒険・旅立ち編/遊々編”で勉強しています。この本結構砕けた会話口調で判りやすいと思います。 機会あったら読んでみて下さい。
余り嬉しくない、っておっしゃるでしょうけど、誕生日おめでとうございました(大分過ぎてからですいません)
|
|
|
|
□今度はイタリア抜きで…/きんたろ
(910)投稿日 : 2005年06月11日 (土) 22時12分
|
|
|
む、『アウシュビッツにガス室は無かった』ですね? やはり、敗ける戦争はするもんじゃないですねぇ… 極東の島国にしたって、追軍売春婦とか南京妄言とかで 強請られ続けてますし…(ーー;)
指は… 爪もある程度固まって来たし、大丈夫ですよ (一部、痛覚が無い部分が出来ちゃいましたけど)
例のツールは… 先月末の処理には間に合いませんでしたけど、今回は間に合いました。
やっぱ、あると便利だわ、これ…(^_^;) |
|
|
|
□お疲れ様でした。/BELL.r
(909)投稿日 : 2005年06月10日 (金) 00時56分
|
|
|
”ナ”の髭のオジサンも”ユ”の投資家からお金貰っていたらしいです。 沢山死んだけど、それは”新米の人たち”ばかりで”古参の人たち”はあんまり被害無かったそうな。そんで「自分たちってなんて悲劇の人たち?」を演出出来るって事で自作自演だったってのが真相っぽいし、私はその解釈を指示しています。 具体的にエゲツなさを上げたいとこですけど、やっぱ止めときます。 ……この話題は私の十八番です。何時間でも出来ます。
段々とRuby判ってきたらRubyのソフトでちゃんと表も組んで打ち出せたら良いんじゃないかと思ったんですが、指痛いところつき合わせてしまってなんかこっちこそ申し訳なかったかなと思っています。
まずはプリントアウト処理再構築がんばってください。
その他諸々詳しい所は後ほどメールします。 |
|
|
|
□張子の虎みたいな首振りの奴inあかべこ/きんたろ
(908)投稿日 : 2005年06月09日 (木) 22時34分
|
|
|
レス、遅れてすみません…
農薬の件ですが… かえって気を使わせてしまったみたいで こちらこそ失礼しました。
>ターミネーター〜 そんな技術もあるんですか? マジで知りませんでした。 “ユ”の連中も結構エゲツないですからねぇ… ここはひとつ“ナ”の人々に復活して頂いて “ユ”の野望を○○ごと殲滅… とか、伏字なしで書いたらマズイんでしょうねぇ 色々と…(ーー;)
>基礎編終了 いろいろと、本当にありがとうございました。 正直、まだ解らない事だらけですが 以前よりは『Ruby』の入り口に近けた様な気がします。
“引っ掛かり”は… 結局判らないままでしたが(多分、文法上の事だと思うんですけど…) もし、どうしても判らない事が出てきましたら その時、また相談に乗っていただけると嬉しいです。 |
|
|
|
□それは赤字の牛?/BELL.r
(907)投稿日 : 2005年06月07日 (火) 01時05分
|
|
|
私が言いたかったのは、基準内だとしてもそれが結構強い薬だって言う事を知っているので 農家は自分用の作物と出荷用の作物を別けて生産しているって事です。 酷い事をしているって言うつもりではありませんでした。言葉足りなくて失礼しました。
>ターミネーター・テクノロジー ぐぐればある程度出てきますが、分かりやすく言うと、 種子のみに反応する毒によって、一世代のみで結実させない遺伝子操作の事です。 この操作をされた種子は、結実して種を取っても決して芽が出ることがありません。 更に怖いのは、この配合種の花粉をつけた作物の種も、芽を出す事はありません。 (推定の域らしいけど、間違いないと思います)
極端な話、この配合種を育てた周り近所の畑では、来年種を蒔いても芽を出さないって事です。 枯葉剤どころの騒ぎじゃないです。 花粉は何処から飛んでくるか判らないし、蒔いてみないと分からないしで、かなり悪質です。
展開としては、ゴルゴ13第389話「害虫戦争」とほぼ同じ事態が予想されます。 つまり、種子が取れなくなった以上、この遺伝子操作をされた種子を買わざるを得ない。
……食糧、情報、エネルギー、軍事、これらを掌握すれば世界を支配できます。 ……流通が始まれば、全てがアメリカ(というより"ユ"の人たち)に集中する事になります……。
>って事で、詳細メールをお待ちしております。 了解。じゃあ、下準備開始します(w
>回答… 正解です。言う事ないです。 よく考えたら、難易度を上げるも何も、基礎編終わりました(汗 今までお疲れ様でした。
ツクールXPのスクリプト開いてみてください。 基本的に今回の回答の形を取っているはずです。
……あ、うそ。未だクラスの引継ぎやってませんでした。
class Man < Human …… end
と「<」を使うことで、Humanの定義を拡張したManの定義を新たに作ることが出来ます。
>実は私、前回の講義の中の何かがずっと頭に引っかかってて… ??。 なんでしょう? とりあえず、今回は例題無しです。
あえて宿題出すとしたら、 スクリプトにあるGame_Temp、Game_Systemに目を通して下さい。 そして、気が付いた事、思った事を述べて下さい。 |
|
|
|
□あかべこ?/きんたろ
(906)投稿日 : 2005年06月06日 (月) 22時38分
|
|
|
>これは日本でも〜 まぁ、その通りなんですけど… 日本の場合は市場が極めて限られているのと (北海道だけかもしれませんが)ペナルティが農家個人ではなくて 地区単位、地域単位で発生、更には風評被害の回復に 最低でも3〜4年はかかるのであんまりやんちゃは出来ない。 って事はありますけどね。 (……などと、さりげなく弁護してみたり ^_^;)
>ターミネーターTech… 初めて聞く単語です。 つうか、激しく詳細が聞きたいです。 推測ですが、現カリフォルニア州知事が裏で一枚…(ヲィ
>3D〜 ナマモノ大好き(w
只、毎年今月末あたりから仕事が 半端じゃなく忙しくなりますので、ネット巡りが…
あぁ、でもこの胸のトキメキを… って事で、詳細メールをお待ちしております。
回答…
class Human def initialize @name = "タロウ" # 名前 @sex = "男" # 性別 @age = 21 # 年齢 end attr_accessor :name #←追加分 attr_accessor :sex #←追加分 end
……で良いですか?
実は私、前回の講義の中の何かが ずっと頭に引っかかってて… それが気になって、今イチ理解できてないんですけど…
ホント、何なんだろ…(ーー;) |
|
|
|
□痛いのは初(以下検閲)/BELL.r
(905)投稿日 : 2005年06月06日 (月) 01時44分
|
|
|
今日(いや昨日か)某町牛祭りに行ってきました。 ……八代○紀見る前に帰ってきました。
う〜ん確かにそうですね。そう考えるのが妥当ですね。 >地元の人達は「あんな危ないモン食えるかっ!」 これは日本でも同じです。暗黙の了解ってか常識です。
では別の意味でヤバイもの、ターミネーターテクノロジーって知ってます? これは本当にヤバイです。農薬による有毒作物より数倍ヤバイです。
>>なんかやりま〜 きんたろさん、3D駄目な人です?(むろんポリゴンじゃないですよ) 私は大いに可です。 どちらかっていうと報告サイト(リンクサイト)の方が良いかなと ……これについては後でメールします。……ここでよければ話進めますが。
>回答 ……どちらかっていうと、出題ミスですね……。すいません。
p tarou では、ご存知の通り、全ての変数が出てしまいます。かと言って、
p @age では、nil(何も無いと言う意味)が出ます。 つまり「現在実行している階層ではそんなもの無い」と言われます。 htmlの相対アドレスで、違う階層はそのままでは参照できないのと似たような状況です。
結論としては、 メソッド定義を利用し、returnで@ageを返すようにする のが正解です。
スクリプトにすると、 class Humanに以下の定義を追加 def age return @age end
イベントのスクリプト欄に以下を書き加える。 p tarou.age
になります。 基本的に、Rubyではこのようにメソッドで中の変数を表したりするが一般的のようです。
……でもこれって、tarou.ageは@gaeと同じだという事になりそうな気がしませんか? つまり、tarou.tanjoubi と、tarou.age += 1 は同じ処理になるのでは??
しかし、実際に後者を実行してみると、エラーが発生します。 その理由は、オブジェクトの外側から直接内部の変数を操作出来ないように保護しているからです。
そこで、 1.変数を参照するようなメソッド定義を行う 2.オブジェクトの外側から直接操作出来るようにする
この二つを一行で定義する方法が用意されています。
attr_accessor :(変数名) ※「:」と変数名との間にはスペースは入れてはならない
これをアクセサと言います。 アクセサには種類があり、読み専用書き込み不可の(attr_reader)とかもあります。
【例題8】 アクセサを使い、全ての変数を外部から操作出来るように「Class Human」を書き直して下さい。 ただし、今回の回答のageメソッドは書かなくて良いです。
|
|
|
|
□やさしくしてね(はぁと/きんたろ
(904)投稿日 : 2005年06月04日 (土) 22時09分
|
|
|
>あと10数年で… こちらも又聞き程度の知識なので「こんな話もある」程度に聞いて下さい。
…あちらは、他国では使用禁止になったヤバ目の薬を 高濃度で散布している為に残留値が半端じゃない、って事らしいです。 (使用禁止と言う事で、他国の余剰品を安値で仕入れる事ができる。 一応、政府も“使用”は禁止にしているらしいですが、“輸入”自体は禁止していない。 ま、アノ調子の国ですから…ねぇ……ーー;)
ただ、日本と違って土地が広いですから、ソレ用はバンバン他国に輸出して “自分達”用はまた別に作る。ってスタンスらしいです。 (実際、地元の人達は「あんな危ないモン食えるかっ!」と言っているとかいないとか〜♪) 以上を踏まえての私見ですが… 作れなくなるって事は多分無いと思います。 いざとなったら、新たな農地を開墾するだけです。 ただ、限りなく「食ったらヤバい物」が増えるだけです。 (ダスキン=ミスドの例みたく「知っているのに知らぬふり〜♪」をかます商社も多いですし…)
おっといけねぇ!、思わず熱く語っちまったぜぃ!!「(>_<)
>ODN… ODNって言うより「日本テ○コム」を買収した「ソフトバ□ク」が結構…(^_^;) 実際、母体がアソコになってから我が家に違法っぽい上にかなりしつこい 電話回線切り替え(&プロバイダ変更)の勧誘が4〜5回来てますし…
>なんかやりま〜 おおおおおおおっ! 魂がこんなに震えるのは何故? ねぇ、これって恋なの? …仕事時間がもっと安定してたら是非やりたいんですけど 私の場合、集中して描かないと駄目なタイプなんで 出品等、かなり御迷惑をかけてしまうかと… っつうか、4月に指を潰してからこっち、全く絵を描いてないんで 唯でさえ下手なのが更に下手になってます。多分…(T_T)
で、回答…
オブジェクトの“中身”を表示する。 ??
で良いですか?
え〜と… 何かまだ、「解らない」所が判ってない状態なので 次回あたり、それが判ったら質問します…(´・ω・`)
|
|
|
|
□実際この辺から難易度上げます/BELL.r
(903)投稿日 : 2005年06月04日 (土) 01時11分
|
|
|
いろいろ宗派あってインドの家庭パーティもたいへんらしいですね。
>豚の持つ病原菌が人間にも悪さしやすい、ってのもあった様な気が… マイナーですけど、豚コレラってのもありましたね。
ああ、そちらの業界の方でしたか。 ……大変ですね。 ちょっと違うけど、「あと数年で中国で野菜が作れなくなるかもしれない」って話、振っても大丈夫ですか? 散布されている農薬が飽和値に達するんじゃないかと言われているらしいです。……未確認情報ですが。
ODNは知りませんでしたね……。なんかヤバイんですか。そーですか。
>会員による啓蒙活動 今現在、18禁可webスペース垢1つ遊んでますが(w(つか、開店休業中) 18禁不可もサブドメイン1つ空いてます。
……なんかやりましょうか? 最近個人的に絵書きたい気分ですし。
>…回答。 おおおおお、いや、
@age = @age + 1
なんてのを期待していたんですが満点どころか120点です。 あまりに高得点なので、更に難易度を上げましょう(マテ
■メソッド このdef tanjoubiの処理をHumanのインスタンス「tarou」に対して行うには、
tarou.tanjoubi
というふうに「.tanjoubi」で呼びます。この部分をメソッドと言います。 また、「def *** 〜 end」の定義をメソッドの定義と言います。 言い換えれば、『オブジェクトをメソッドで操作する』訳です。
■return def tanjoubi # 誕生日が来ると、1つ歳を取ります。 @age +=1 retrun @age end
なんか、3行目に見慣れない物がありますね。 「return」というのは、その値を返すと言う意味です。 返すっていうのは、
cc = tarou.tanjoubi
とした時に、ccにreturnで指定された物が入れられると言う事です。
以上を踏まえて、このtarou.tanjoubiの処理を行い、実際にageが増えたかどうか、 「p」(pメソッド)で見てみたいと思います。
「class Human」を書き換え、tanjoubiメソッドを追加するのはよいとして、
【例題7】 pメソッドで、@ageの中身だけを表示させるにはどうしたらいいでしょうか?
プログラムとして、というのは難しいでしょうから 文章で「どうこう出来れば良い」という格好でも結構です。 |
|
|
|
□葛飾柴又 本家と元祖/きんたろ
(902)投稿日 : 2005年06月03日 (金) 02時51分
|
|
|
>あれ?〜豚は… 仰る通りでございます。m(_ _)m っつうか、禁止はされてないけど「なるべく食わない・食いたくない」的な ニュアンスだったかと… ただ、「帝釈天が他人の嫁はんをナニして、豚になって…」ってな神話があって それに類する流派は摂食禁止とされているとかいないとか…
>だから「それ食っちゃう〜 あと、遺伝子配列が人間に近いので 豚の持つ病原菌が人間にも悪さしやすい、ってのもあった様な気が… まぁ、こちらは近年になって提唱された理論らしいですけどね。
あと、牛の健常時の体温は38.5℃前後ですねぇ… えぇ、もうショッチュウ測ってますんでばっちりです。 肛門に体温計を突っ込んで…ね。 (この作業、手についた○○○の臭いが中々取れないのよ…T_T)
>KDDI KDDIでは常時会員を募集しております。 また、会員による啓蒙活動も奨励しておりますので 是非、御氏の作品にて宣伝して下さい。 ちなみに、類似団体に『ODN〜Oshiri Daisuki Netwark〜』 というのもあったんですが、本部組織を黄色い看板を背負った連中に 乗っ取られて、今、結構やばい状況だったり…
…回答。
多分
@age +=1
で良いと思うんですが…
何か、いきなり難しくなってないですか?(T_T) |
|
|
|
□ぼうやだ……(いやいや、返し辛いなァ……/BELL.r
(901)投稿日 : 2005年06月03日 (金) 00時45分
|
|
|
UKはそんなに好きでなくてHR/HM派の私にはあんまり知らない話ですね。
>確か、ヒンズー教も豚は駄目で、ついでに牛も駄目 あれ?「ヒンズーは牛駄目だけど豚はどうでもいい」って記憶してましたが、違いましたっけ? 憶測ですけど、あっちの豚はあまり衛生上宜しくない所でも逞しく生きているようですね。 だから「それ食っちゃうと体壊すから、食べないように。」という、 昔の人の知恵だったのではないかと思います。 豚肉は身体に良くないからっていう人もいるようですが、 極論で言うと、体温が人より高い生き物の脂は人体に入った時点で固まりますから、 (豚:38℃、鶏:42℃、牛……忘れた)海産物と植物食べてれば良い事になります。 因みにガンジーさんは果物と乳しか口にしなかったとか。 (ただし乳も口にしなかった時期があるとかないとか)
ヒンヌー教、いいですね。でもどっちかと言うとKDDIに是非入れてください(w ってか、そのネタユウ者伝説に頂いて良いですか?
>でもって、回答… OKです! これで要素(変数)を持ったオブジェクトを作成することが出来ます。 アクターデータ等もこう言った要素(変数)を沢山かつ複雑に持っている訳で、基本は変わりません。
>何か、"name"と"age"文字列が入れ変わってるような?? ああ、これは結構入れ替わりますので気にしないで下さい。 気にしなくてもいいように名前(変数名)が付いているのですから。
これで「p」でオブジェクトの中身が覗ける事が分かりました。 ツクールXPのスクリプトで気になる処理があったら「p」で出力して見て下さい。 ダイアログが出なければ処理していないし、処理していれば何を操作しているか目で見ることが出来ます。
では今度は、新しくdefを作ろうと思います。
【例題6】 def tanjoubi # 誕生日が来ると、1つ歳を取ります。 …… end
要は、年齢「age」の中身を1つ増やす処理を定義したいと思います。 この「……」の部分を考えてください。 |
|
|
|
□君たちの好きなジョン・レノンは死んだ! 何故だ!!/きんたろ
(900)投稿日 : 2005年06月02日 (木) 23時07分
|
|
|
>そんな話も… 豚肉、旨いんですけどねぇ…(ーー;) 確か、ヒンズー教も豚は駄目で、ついでに牛も駄目 まず改宗出来そうにないです。(する気もないですけど…)
そんな私はヒンヌー教徒! (//▽//)ノシ また、キョヌー大大大好き学会(通称:KDDI)の会員でもあります。
でもって、回答…
class Human def initialize @name = "タロウ" # 名前 @sex = "男" # 性別 @age = 21 # 年齢 end end
で
#<Human:0x??????? @age=21,@name="タロウ",@sex="男">
と表示されます。
………あれ? 何か、"name"と"age"文字列が入れ変わってるような??
これで合ってますか???
|
|
|
|
□月末残業お疲れ様でした/BELL.r
(899)投稿日 : 2005年06月02日 (木) 00時28分
|
|
|
>化学調味料はムスリムの敵 そんな話もありましたね……。すっかり忘れてました。orz
>要は、人間が理解し易い物に直して表示する。 ……表示っすか。……応用編ですね。結論言うのは簡単ですけど……う〜ん。 1行表示するだけで5行ぐらい必要になりますし、 何やっているか理解出来ないと思われますので正直飛ばします(汗) (そもそもグラフィック表示私得手じゃないです。後ほど私より詳しい方紹介します)
>これって、以前の講座にあったメモリアドレスって事でしょうか? そうで〜す。大正解で〜す。 これは「Humanクラスのオブジェクトが16進数で???????番地にあります」と言う事を表しています。 エンターブレインとかに確認取ってませんが、状況からしてそのはずです。
……オブジェクトの中身をみる「p」で中身を見たはずですが、 表示された中身がこれだけって、なにかおかしい気がしませんか?
番地だけで中身がありません。 「タロウ」、「男」、「21」という要素を入れたはずなのに、その要素がありません。
実は、「def initialize」 で処理が始まり、「end」 で処理が終わった時点で 中の変数name、sex、ageは破棄されてしまったのです。
def initialize name ="タロウ" # 名前を作成 sex ="男" # 性別を作成 age =21 # 年齢を作成 end # ここで全て破棄
ですので、これらの変数が破棄されないように宣言しなければなりません。
ins = (クラス).new でオブジェクトが出来ますが、この出来たオブジェクトを 正確には”インスタンス”と言います。 このインスタンスが存在する間、存在し続ける変数にインスタンス変数があります。
ただの変数をインスタンス変数にするには、「@」マークを頭につけてやれば良いのです。 と言うわけで、
【例題5】 例題4のclass Humanスクリプトの変数をインスタンス変数に修正して下さい。 そして「#<Human:0x???????*******>」の、*******の部分に name、sex、ageの文字はどのように表示されるでしょうか?
|
|
|
|
□化学調味料はムスリムの敵/きんたろ
(898)投稿日 : 2005年06月01日 (水) 21時19分
|
|
|
はい、という訳で久方ぶりのレスでございます。
で、宿題の回答ですが… 7行目でSintaxError… ああっ! 石は投げないで…
と、まぁ冗談はおいといて… 実際に出たのは
#<Human:0x......> という文字列だったんですけど
これって、以前の講座にあったメモリアドレスって事でしょうか? っつうか、意図した答かどうかすら解らないんですが…(ーー;)
>形にする… ん〜と… 「要素を操作…」までは行ってないです。 その手前で、「逆コンパイルする」とでも言えば良いんでしょうか? 要は、人間が理解し易い物に直して表示する。 というつもりで書いたんですけど… (それもあって「少々脱線する」とか書いてみたり…^_^;) |
|
|
|
□おかまいなく/BELL.r
(897)投稿日 : 2005年05月31日 (火) 00時21分
|
|
|
いえいえ、あくまでも趣味の話題ですから、 急がず本職優先でどうぞ。
持ち帰り残業お疲れ様です。 |
|
|
|
□業務連絡/きんたろ
(896)投稿日 : 2005年05月30日 (月) 23時29分
|
|
|
すみません。 今日と明日、月末体制で忙しくなっちゃいました。
課題は仕事の隙をみつけて提出します。 (なるべく明日やるつもりですが… ーー;)
って事で、ちょっと時間下さい。m(__)m |
|
|
|
□「よいよい、近こう寄れ」/BELL.r
(895)投稿日 : 2005年05月30日 (月) 01時21分
|
|
|
←マトリックスポーズでハリセン回避中
旨味調味料を使わないのが信条のラーメン屋さんの友達に聞いたら、 「旨味調味料は良くないダシを誤魔化せる」そうで、 いい加減な食材でいい加減な仕事が出来るから嫌だと言っておりました。
>講座の趣旨から少々脱線する疑問 いや、こういうものの方が大事だと思います。 正解を知るより、なぜ正解になるのか、何が違うのかを知ることのほうが大事だと思います。
>>1:この記述、単に“Human”の“定義づけ”だけをしてる状態ですよね? そうです。……が、?。「=形にする」ってのが何を仰りたいのか判りません……。 クラス名に「.new」メソッドを付けて呼び出すことで「形になります」が……。 「要素を操作する」って事でしょうか? それならもうちょっと待ってください。 (この記述だけじゃ不完全ってのは実は大正解です)
>>2:初期化情報である「def initialize」は 「.new」の時、呼び出されるそうなので、「.new」をしないclassならば必要ないでしょうね。 大体のオブジェクトは「.new」で作りますので、実質的に必須と言う事になると思います。
>宿題 おお、OKです。ぱちぱちぱち。 ただ、期待した大満点はこちらになります。
def initialize name = "" # 名前 sex = "" # 性別 age = 0 # 年齢 end
これで中身空っぽの変数(これまでの流れで言えば「要素」)が作成されます。 でも次のステップに移るのに丁度良いので、きんたろさんの回答を使いましょう。
【例題4】 『実際にHumanのクラスのオブジェクトを作って確認してみましょう。』
このスクリプトをツクールXPのスクリプトの、mainより上に挿入してください。 http://dark4th.com/zzz/classHuman00.txt
イベントを作り、このスクリプトを3ページ目のスクリプトに貼ってください。 このイベントはトリガー実行[決定ボタン]にしておきます。 http://dark4th.com/zzz/eventScript00.txt
テストプレイでこのイベントに話しかければ、オブジェクトの中身をみる事が出来ます。
さて、何が表示されましたか? 何か気が付いたことはありませんか?
|
|
|
|
□殿、茶の湯と氷菓子を同時に食しまするとポンポンが…/きんたろ
(894)投稿日 : 2005年05月29日 (日) 23時20分
|
|
|
おおっ!さっそくお使い下さいましたか…
って、強調するのはソコかいっ!
…でも、化調入りのお茶って 駄目な人にはとことん駄目なんですよねぇ… 私は以前、粗相をしちゃいけない場所で 化調茶出されて、プチ海原雄山してしまって 取り繕うのにエライ苦労をした事が…(ーー;)
で、宿題…
def initialize name = "タロウ" # 名前 sex = "男" # 性別 age = 21 # 年齢 end
・ ・ ・ え〜と… 合ってる合ってないは別として、二つほどお聞きしたいのですが
1:この記述、単に“Human”の“定義づけ”だけをしてる状態ですよね? (私のイメージとして「[作る]=形にする」というのがありまして その場合、上記の記述だけじゃ不完全な物の様な気がしたもので…)
2:初期化情報である「def initialize」は 必ず入れなければならない物なんでしょうか? (これは、単に私の興味からくる疑問です)
あ、講座の趣旨から少々脱線する疑問かも知れませんので 回答その他は“ついで”の時で結構です。 |
|
|
|
□美味美味、苦しゅうない(←あんた誰?)/BELL.r
(893)投稿日 : 2005年05月29日 (日) 03時26分
|
|
|
「これ、お茶菓子の『くりすぴーさんど抹茶黒みつ』は未だか?」
……実の所、お茶あんまり詳しくないです。 とりあえず飲めれば良いので。 でも「美味しいお茶だよ」といわれて 旨味調味料入ったの出された時は正直閉口しましたが……。 (と早速ボールド使ってみました)
お断り:説明手順の都合上、あえて間違いながら進めます。
基本の考え方はそれでよいと思います。 ですが、感付いておられる様に足りないものがあります。 これでは、中に入るのが文字列なのか、数字なのか判りません。 ですので、それを教えてやるべきです。 例えば
name = "きんたろ"
とすれば、nameには「きんたろ」が入り、nameが文字列である事が判ります。
つまり、文字は""で囲う決まりになっています。 3 は数字ですが、"3"と書けば「3」という文字になります。
なぜ文字は""で囲わなければならないか? 至極単純に言うと、 数字しか扱えないPCが、文字番号01はA、文字番号03はC、というようなルールで文字を表示しているからです。このルールで文字を数字と解釈してしまうと「B」ではなく「2」が出て来てしまいます。 (正確には"3"はアスキーコードで0x33になります)
因みに、""だけ書いてやれば「空白何も無しだけど文字」を入れたことになります。 ""で囲わない数字を入れれば、数字を扱う変数として宣言した事になります。
これらを踏まえて、
【例題3】 def initialize name = ? sex = ? age = ? end
それぞれの?の部分を考えてみて下さい。
|
|
|
|
□宇治→あがた神社→木花開耶姫→富士山/きんたろ
(892)投稿日 : 2005年05月29日 (日) 01時49分
|
|
|
むぅ… この時期(八十八夜付近)に宇治物をねだるとは… 舌が肥えてますね? って事で、新茶です… つ旦
>間違えてくれる事を… ちょっと悔しかったんで、完っ璧にこなして 期待を裏切ってあげましょうと思ったんですけど… やっぱり全っ然解りません。(T_T)
…で、解らないなりに返答。
def initialize name # 名前 sex # 性別 age # 年齢 end
…何か、出された部品をただ書き写してるだけで 肝心な物が足りなてい気がするんですが こんな感じでしょうか…(ーー;)
そうそう… このBBSはhtmlタグを 使える様に設定してますので 強調したい所等がありましたら お気軽に使ってやって下さい。 |
|
|
|
□お茶は宇治茶にして下さい/BELL.r
(891)投稿日 : 2005年05月28日 (土) 23時14分
|
|
|
そうですそうです! 概ね正解です〜♪
ただ、 >プログラマが“ボウル”と“折”と“鯛焼き器”を使えと >指示すると、Rubyがタイヤキを作る。
ボウルと折は鯛焼き器を使えと指示した時点で自動的に準備させる事が出来ます。 というか、準備されるように予め教えておいた方が効率的だし、Rubyもそれを期待しています。
その手順について、これから入ろうと思います。
>【演習1】 漠然とし過ぎました。すいませんでした。 答えとしては性別のような物を期待していました。 あと、仕事、年齢、身長、体重、……。とりあえず年齢をチョイスしましょう。
というわけで回答例: class Human name sex age end
--------------------------------------------------- これで
BELL_r = Human.new
とすると、名前、性別、年齢の要素をもった人間BELL_rが出来る…… ような気がしますが、実は出来ません。
『.new』の動作、すなわちオブジェクト作成時の動作を教えていないからです。
def initialize *** *** *** end
で囲って書いてあげます。
【演習2】 名前、性別、年齢の3要素をもった人(Human)を作りたい場合、 この『***』の部分は、どう書いたらいいでしょうか?
※失礼ながら、ぶっちゃけ間違ってくれる事を期待していますので気楽に答えて下さい。 そうでないと、何で躓いているのか判りませんので。
インスタンス変数、アクセサ、メソッドが理解出来る所までお節介焼こうかと思っていますので どうにかお付き合い頂ければ……と。 |
|
|
|
□頭でお茶が沸かせま〜す/きんたろ
(890)投稿日 : 2005年05月28日 (土) 22時21分
|
|
|
すみません、レスが遅れました。 いや、決して思考を文章化するのに手間取ってた訳じゃないですって。(^_^;
>確認しますけど、[好摩]と… え〜と… 最初はそのつもりで書いてたんですけど いつに間にか「入れ物」みたいな扱いをしてますね。 私……(ーー;)
で、おさらい… 鯛焼き器が出たんで、鯛焼き器に喩えてみると * 小麦粉=データ * 餡 =データ として… * 小麦粉の入った“ボウル”=オブジェクト * 餡 の入った “折” =オブジェクト * 焼く手順 =クラス
で、[焼く手順]に“鯛焼き器”と名前をつければオブジェクトとして使えて プログラマが“ボウル”と“折”と“鯛焼き器”を使えと 指示すると、Rubyがタイヤキを作る。 (但し、[焼く手順]はプログラマがあらかじめ作成しておき その中では“ボウル”と“折”の中にある小麦粉と餡を使う という事を指示しておく) という事ですよね?
>【演習1】…
正直、全く解りません…(ーー;) が、そうも言ってられないので 「人間」を作る為のルールを定義してると仮定して考えると ?1 = 性別 ?2 = 作り方 ?3 = 作った“物”を入れる場所
で宜しいでしょうか?
(これが、人間を“識別”する為のルールだったら完全にお手上げ状態です) |
|
|
|
□「では実践に入ります」(ナニ?)/BELL.r
(888)投稿日 : 2005年05月27日 (金) 01時14分
|
|
|
スクリプトにしているうちに、 『鈴木さん+斉藤さん=花子ちゃん』ではなく 『A+B=C』という表現になってしまったので こちらも正確に読み取っていなかったような気がしたし、更に何処まで伝わったか実は不安でした。
>『Ruby』が住所しか見ていないという事が >納得出来る様な気がしたものでして…(ーー;) そうです、そうです、大体理解して頂けたようで良かったで…… ん?
確認しますけど、 [好摩]というのは私の言った「メモリアドレス(番地)」の事ですよね?
>“オブジェクト”ってのは基本的に「ひとつの“物”しか入らない」 そうです。正確には1つの「データを格納された場所」を指しています。
>で、意図的に二つの“物”を入れる時は“クラス”をオブジェクト化して処理する。 クラスは雛型です。物は入りません。物を入れるルールの定義(をした物)です。 1つの“物”を入れる時は“クラス”をオブジェクト化して処理します。
例の本の言葉を借りると、クラスはタイヤキ器です。
タイヤキ器.new
で、美味しいタイヤキが出来ます。 出来たタイヤキを識別するためには、”名前”が必要です。
1つめのタイヤキ =タイヤキ器.new
”名前”を付けたものはオブジェクトと呼ばれます。
--------------------------------------------------- 【演習1】 えっと、では、ある解説サイト様の受け売りになってしまいますが、 人間というクラスを作ってみましょうか?(w
class human name ??? ??? ??? end
この???の要素を考えてみましょう。 まずは名前(name)ですね? 後は……?。
|
|
|
|
□ありがとうございます。/きんたろ
(887)投稿日 : 2005年05月27日 (金) 00時04分
|
|
|
わざわざテキストに纏めて下さいまして ありがとうございます。 「完璧」と言える自信はありませんが どうにかRubyの根幹部分は理解出来た様なきがします。 そして、今更ですが おちゃらけ気味の喩え話にして申し訳なかったと 反省しております。
…で、ひとつ気になったんですけど [好摩]がオブジェクトじゃない。という事は “オブジェクト”ってのは基本的に 「ひとつの“物”しか入らない」 というのが前提なんですよね? で、意図的に二つの“物”を入れる時は“クラス”を オブジェクト化して処理する。 (*ここで言う“物”とは各種[変数]の他に [処理内容]等の作業動作も含むと考えて…) という事で良いですよね?
いえ…、そう考えると 『Ruby』が住所しか見ていないという事が 納得出来る様な気がしたものでして…(ーー;) |
|
|
|
□ありゃりゃ/BELL.r
(886)投稿日 : 2005年05月25日 (水) 23時47分
|
|
|
あ、スペース入れたつもりだったけど、見づらいですね。 こっち見てください。 http://dark4th.com/zzz/makelove.txt |
|
|
|
□う〜ん……。/BELL.r
(885)投稿日 : 2005年05月25日 (水) 23時40分
|
|
|
……かなりナニですけど……、お互いオトナだし、ま、いいか(汗)
いや、逆です。 [好摩]でなくて[鈴木さん]がオブジェクトです。
で、{子作り}は『住民+住民』で良いです。何処に住んでいても構いません。 正確に書くと、
class 子作り # 子作り全体の定義の始まり def initialize # 子作りclass作成の初期化の定義 @a # 男 @b # 女 end def bed(A,B) # classの処理の仕方 @a = A # ベッドの中ではA君は@aと呼ばれます(名前で呼んで?)。 @b = B # ベッドの中ではBさんは@bと呼ばれます(名前で呼んで?)。 c = @a + @b # ((大人の時間)) return c # returnで返す end end # 子作り全体の定義のお終い
※((大人の時間))を成す[交尾]の仕方は別の住所で教えてくれます(定義されています)。 ※@a、@bが犬猫ではなくて、人である事も別の住所で教えてくれます(定義されています)。 ※この”子作りの仕方”もどこかの住所に落ちています。
んで、実例: ---------------------------------------------------------------------------- A = 鈴木 # ある所に、鈴木君がいました。 B = 斉藤 # 彼の愛する斎藤さんもいました。 # 「斉藤さん、愛してる。」「鈴木くん、あたしも。」
子作り.new # 「子作りしよう!!」 # 「でも、こんなとこじゃ嫌。」「じゃあ、ベッドに行こう!」
花子 = bed(鈴木,斉藤) # …………こうして、花子ちゃんが生まれましたとさ。 ---------------------------------------------------------------------------- プログラマは、住所まで意識する事はありません。 Rubyが番地名まで詳しい住所を覚えています。 Rubyは、bedに入る人の住所しか見ていません。というか、あらゆる物事の住所しか見ていません。
|
|
|
|
□先生、答えは合ってますか?/きんたろ
(884)投稿日 : 2005年05月25日 (水) 22時36分
|
|
|
え〜と……
つまり 『鈴木さん+斉藤さん=花子ちゃん』という“処理”があったとして…
鈴木さんの住んでる[渋民]や斉藤さんの住む[好摩]が“オブジェクト” 花子ちゃんが入れられた[託児所]も“オブジェクト” (更に言えば、“+”=[交尾]も”オブジェクト”)
で、この場合 『[渋民]の住民+[好摩]の住民』という処理作業が {子作り}という“クラス”って事ですよね?
あと、{子作り}という処理作業を“オブジェクト”として定義してやれば、 [渋民]に引っ越してきた武部さんと[好摩]に越してきた冬柴さん [渋民]に引っ越してきた岡田さんと[好摩]に越してきた管さん でも{子作り}が出来て、子供を[託児所]に入れる事が出来る。と…
何か、喩え話にしたら逆に難しくなった様な気もしますが 要は、処理の対象や処理内容… 更には処理作業すら全てを“オブジェクト”と見なして その“オブジェクト”を色々と組み替える事によって、自分の意図する 動作をやらせるのが『Ruby』の基本操作って事ですよね? 多分…
むぅ…、感覚をつかむまで少々時間がかかりそうな気が…(ーー;)
|
|
|
|
□どういたしまして/BELL.r
(883)投稿日 : 2005年05月25日 (水) 00時01分
|
|
|
私も謝辞言われて気持ち良くなったのでもう少しお節介しようかと。
”オブジェクト”とは何ぞや? それは、入れ物ではなくて、メモリアドレス(番地)に付けられた名前である。
”クラス”とは何ぞや? オブジェクトを定義した物である。
私はこの2つを悟ったら気が楽になりました。 なにせRubyはオブジェクトの入れ子で出来ていますので。
つまり、c = a + b とは ”a”と名付けられた番地に格納されたデータと ”b”と名付けられた番地に格納されたデータを足して ”c”と名付けられた番地に格納する。 (正確には”+”と名付けられた番地に格納された指示に従ってaとbを処理する。そう、実は”+”もオブジェクトなんです。)
という事になります。 更に言うと、”a + b”の部分をクラスとして定義(オブジェクト化)出来ます。
class goukei a + b end
c = keisan
本当の所、記述が間違ってますが、意図する所のイメージはあってると思います。
|
|
|
|
□あめぃじんぐ、ぐれいす/きんたろ
(882)投稿日 : 2005年05月24日 (火) 23時00分
|
|
|
ども、お久しぶりです。 って言うか、すっかりご無沙汰してしまってすみません。
うお〜っ、出来ました! これで何とか次回使用時までには間に合いそうです。 本当に助かりました。
いや、実は結構困ってたんですよ。 月に2〜3回しか使わないとはいえ ある意味、必要に迫られてツクったソフトなんで…
『毎日コミュニケーションズ〜』の本ですね。今度探してみます。 実は私も別の会社のやつを一冊買ってはみたんですけど 睡眠薬と化してまして… 見栄を張って、難しそうなのを選ばなきゃ 良かったっス…(ーー;)
誕生日の祝辞、ありがとうございます。 いや、実際言われてみると結構嬉しいモンですわ♪ マジで…
それにしても…、今年は色々ありました。 って、まだ5月なんですねぇ…(ーー;) せめて、後半期は平穏に暮らしたいものです。 |