忍者ブログ

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

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

ブログ履歴

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

ローマ数字変換メソッド.to_romanの作成「初めてのプログラミング」13.1練習問題3

初めてのプログラミングの13.1練習問題3、ローマ数字変換メソッド.to_romanの作成を考えてみる。

「初めてのプログラミング」練習問題9.4の3問目を考えてみる の newromannumerals0.rb に手を加える形をとった。

数字が1から3999の範囲外のときに、.to_roman が成された場合には、nil を返す仕様にした。

5つの数字についてテストを行い、うまく動作することを確認した。

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



toroman.rb


class Integer
def to_roman

def change_new_roman(num,value,rome10,rome5,rome1,newplus)
if num != 0
degree = num/value
num %= value
if degree == 9
newplus += rome1 + rome10
elsif degree == 4
newplus += rome1 + rome5
elsif degree > 4 && degree < 9
newplus += rome5 + rome1 * (degree - 5)
else
newplus += rome1 * degree
end
end

# puts "newplus=" + newplus + " num= " + num.to_s

[newplus, num]
end

nextvalueromes = [[1000,"","","M"],[100,"M","D","C"],[10,"C","L","X"],[1,"X","V","I"]]
# puts self.to_s

number = self
new_roman_numeral = ""

if number > 0 && number < 4000
nextvalueromes.each do |contents|
(new_roman_numeral, number) =
change_new_roman(number, contents[0], contents[1], contents[2], contents[3], new_roman_numeral)
end
new_roman_numeral
else
puts "都合により1-3999の範囲外の整数は変換できません、nilを返します"
nil
end
end
end


a = 1999.to_roman
puts a
b = 3456.to_roman
puts b

c = 0.to_roman
puts c
d = 4000.to_roman
puts d
e = -8.to_roman
puts e
PR

この記事にコメントする

NAME
TITLE
MAIL
URL
COMMENT
PASS

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

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

PR

カテゴリー

最新記事

アーカイブ

プロフィール

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

リンク

ブログ内検索

バーコード

RSS

忍者ブログ │ [PR]