忍者ブログ

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

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

ブログ履歴

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ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

「初めてのプログラミング」練習問題7.5の1問目を考えてみた

初めてのプログラミングの練習問題7.5の1問目を解くために考えてみた。

マザーグースの歌を表示させろという問題なんだけれど、面倒な点があった。

1行目:99 Bottles ~
2行目:99 Bottles ~
3行目:Take ~
4行目:98 Bottles ~

という4行のかたまりが、ボトルがゼロになるまでループさせるものなのだけれど、この段階では、まだメソッド定義などをならっていない状況、そして配列・イテレータを習っていないというハンデがある。

さらに、ボトル数が1と0のときには、それぞれ、1 Bottle、No Bottles としなければいけないという面倒がかさなる。

その上、1行目がNo Bottles の際は、3行目は There ~ という別の文章で、4行目も、No Bottles としなければならないということになっている。

そこで、やり方としては綺麗じゃないかも知れないが、

1行目:99 Bottles ~
2行目:99 Bottles ~

を最初に出しておいて、
{
3行目:Take ~
4行目:98 Bottles ~
改行
1行目:98 Bottles ~
2行目:98 Bottles ~
}
以下、数字を1ずつ減らしてループ、1、0のときは、部分的に例外処理。

3行目:Take ~
4行目:No Bottles ~

という手を使って表示させてみることにした。

一応、実行するとうまくいったけれど、プログラムとしてはいいのかどうか?よくわからない。


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



beer99wall0.rb


drink = "of beer "
drinkwall = drink + "on the wall"
takepass = "Take one down and pass it around"

bottles = 99

puts bottles.to_s + " Bottles " + drinkwall
puts bottles.to_s + " Bottles " + drink

while bottles != 0
bottles -= 1
puts takepass
if bottles == 0
bottlenum = "No Bottles "
elsif bottles == 1
bottlenum = bottles.to_s + " Bottle "
else
bottlenum = bottles.to_s + " Bottles "
end
puts bottlenum + drinkwall
puts ""
puts bottlenum + drink
puts bottlenum + drinkwall
end

puts "There are no more to pass around"
puts "No Bottles " + drinkwall
PR

この記事にコメントする

NAME
TITLE
MAIL
URL
COMMENT
PASS

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

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

PR

カテゴリー

最新記事

アーカイブ

プロフィール

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

リンク

ブログ内検索

バーコード

RSS

忍者ブログ │ [PR]