忍者ブログ

マドノマグラの初心者自作ゲーム制作日誌 迷走モード

プログラミング初心者が自作ゲームを作成してみようとする動きを記す。現在迷走中。

ブログ履歴

2010/11/06: HSP3.22の環境を整えてみる
2009/11/09: Rubyで適当版自分用関連記事リンク作成プログラムを作る
2009/06/04: Visual C++(DXライブラリ使用)の環境を整えてみるも休止状態に
2009/03/17: ActionScript勉強の環境を整えるも結局休止状態に
2006/07/15: とりあえず分岐型ゲームを作る グリーンタワーVer1.2 ダウンロード(zip)
2006/07/02: ブログスタート。NScripterで何かを作ろうとする

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

赤ちゃんドラゴンと会話「初めてのプログラミング」13.4追加練習問題2問目

初めてのプログラミングの13.4追加練習問題2問目、赤ちゃんドラゴンと会話を考えてみる。

初めてのプログラミングのp134からのドラゴンクラスをベースに考えることにした。

とりあえず、1文字を入力するとそれに応じたコマンドが実行されるというものにした。さらに、終了コマンドで、すぐこのプログラムを終われるようにした。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby



dragon.rb


class Dragon

def initialize name
@name = name
@asleep = false
@stuff_in_belly = 10
@stuff_in_intestine = 0

puts @name + "は生まれました"
end

def feed
puts "あなたは" + @name + "に食べ物を与えます"
@stuff_in_belly = 10
passage_of_time
end

def walk
puts "あなたは" + @name + "をトイレに連れていきます"
@stuff_in_intestine = 0
passage_of_time
end

def put_to_bed
puts "あなたは" + @name + "寝かしつけます"
@asleep = true
3.times do
if @asleep
passage_of_time
end
if @asleep
puts @name + "はいびきをかいて、部屋中煙だらけ"
end
end
if @asleep
@asleep = false
puts @name + "はゆっくり目を覚まします"
end
end

def toss
puts "あなたは" + @name + "を空中に投げ上げます"
puts "彼はキャハキャハ笑い、あなたの眉毛は焦げまくりです。"
passage_of_time
end

def rock
puts "あなたは" + @name + "を優しく揺すります"
@asleep = true
puts "彼は軽くうとうとと…"
passage_of_time
if @asleep
@asleep = false
puts "でもやめるとすぐ起きちゃう"
end
end

# 追加部分ここから

def quit
puts @name + "を置いて旅立つことにしました"
exit
end

def input_command
while true
puts "ドラゴンに対してどういう対処をとりますか?"
puts "b:寝かしつける,、f:えさを与える,、r:優しくゆする"
puts "t:空中に投げる、w:トイレに連れて行く、q:終了"

command = gets.chomp.downcase
puts
case command
when "b"
self.put_to_bed
when "f"
self.feed
when "r"
self.rock
when "t"
self.toss
when "w"
self.walk
when "q"
self.quit
else
puts "やり直してください"
end
puts
end
end
# 追加部分ここまで

private
def hungry?
@stuff_in_belly <= 2
end

def poopy?
@stuff_in_intestine >= 8
end

def passage_of_time
if @stuff_in_belly > 0
@stuff_in_belly -= 1
@stuff_in_intestine += 1
else
if @asleep
@asleep = false
puts "彼は突然目を覚まします"
end
puts @name + "は飢え死にしそう!やけになってあなたを食べてしまいました"
exit
end

if @stuff_in_intestine >= 10
@stuff_in_intestine = 0
puts "おっと!" + @name + "はやっちゃったようです"
end

if hungry?
if @asleep
@asleep = false
puts "彼は突然目を覚まします"
end
puts @name + "のおなかはゴロゴロ鳴っています"
end

if poopy?
if @asleep
@asleep = false
puts "彼は突然目を覚まします"
end
puts @name + "はうんちをしたくて踊っています"
end
end
end

pet = Dragon.new "Norbert"
pet.input_command
PR

この記事にコメントする

NAME
TITLE
MAIL
URL
COMMENT
PASS

この記事へのトラックバック

この記事にトラックバックする:

PR

カテゴリー

最新記事

アーカイブ

プロフィール

HN:
マドノマグラ
性別:
非公開
職業:
趣味:
駄文書き
自己紹介:
ゲームを作ろうとしているうちに、言語学習に飽きていく。典型的なダメな人パターンに陥るアホな人

リンク

ブログ内検索

バーコード

RSS

忍者ブログ │ [PR]