忍者ブログ

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

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

ブログ履歴

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

誕生日から10億秒後の世界「初めてのプログラミング」12.2練習問題1問目

初めてのプログラミングの12.2練習問題1問目、誕生日から10億秒後の世界を考えてみる。

10億秒の計算の前に、誕生日を入れてもらう入力モードを作った。
年月日時分秒の順に入力してもらうような仕様。
ただし日の場合は、すでに入れられた年月の値によって、範囲が異なるのでこれだけ別処理にした。
あとTimeクラスを使う関係上、年は1970から入力OKとした。

ただ10億秒後の日付がいつになるかなんて、私は知らないので出力結果が正しいかどうかはわからん。

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



onebillion0.rb


=begin
10億秒の計算の前に、誕生日を入れてもらう入力モードが必要だろう。
生年月日+時分秒までの入力をさせる必要がある。
ただし、日だけは、年月によって範囲が変わってくるというめんどくさいことに
日だけ分けるべきか、あくまで1つのメソッドの中での例外処理とすべきなのか。
それが問題だ。
=end

def input_data(comment, top, bottom)
puts "生まれた"+ comment + "を入れてね。ただし" + top.to_s + "から" + bottom.to_s + "の範囲でお願いね"
data = gets.chomp.to_i
if data =="" || data < top || data > bottom
puts "範囲外だからもう一回打ち込んでね"
data = input_data(comment, top, bottom)
end
data
end

def day_input_data(year, month)
missing = true
while missing
missing = true
puts "生まれた日にちを入れてね"
data = gets.chomp.to_i
if data == "" || data < 1 || data >31
puts "範囲外なのでもう一度お願いね"
elsif data == 31 && ( month == 2 || month == 4 || month == 6 || month == 9 || month == 11)
puts "にしむくさむらいには、31はないですよ、もう一回入れてね"
elsif data == 30 && month == 2
puts "2月30日ってないんだよねー。もう1回入れてね"
elsif data == 29 && (( year%4 != 0 || year%100 == 0 ) && year%400 != 0)
puts year.to_s + "年はうるう年じゃないんですよ。もう一回入れてね"
else
missing = false
end
end
data
end

def set_input(setting, time_data)
setting.each do |contents|
time_data.push input_data(contents[0], contents[1], contents[2])
end
time_data
end

ym_set = [["年", 1970, 2008], ["月", 1, 12]]
hms_set =[["時間", 0, 23],["分", 0, 59],["秒数", 0, 59]]

time_data = []

time_data = set_input(ym_set,time_data)
time_data.push day_input_data(time_data[0], time_data[1])
time_data = set_input(hms_set,time_data)

birthday = Time.mktime(time_data[0], time_data[1], time_data[2], time_data[3], time_data[4], time_data[5])

puts "あなたの誕生日は"
puts birthday

puts "誕生日から10億秒後は"

onebillion = Time.new
onebillion = birthday + 1_000_000_000
puts onebillion
PR

この記事にコメントする

NAME
TITLE
MAIL
URL
COMMENT
PASS

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

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

PR

カテゴリー

最新記事

アーカイブ

プロフィール

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

リンク

ブログ内検索

バーコード

RSS

忍者ブログ │ [PR]