マドノマグラの初心者自作ゲーム制作日誌 迷走モード
プログラミング初心者が自作ゲームを作成してみようとする動きを記す。現在迷走中。
ブログ履歴
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で何かを作ろうとする
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ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
「初めてのプログラミング」練習問題9.4の3問目を考えてみる
初めてのプログラミングの練習問題9.4の3問目を考えてみた。
「初めてのプログラミング」練習問題9.4の2問目を解いてみたで表示された古いローマ数字に対して、正規表現を使って変換という手もあるのだろうが、ここでは正規表現は習っていない状況なので別の手を考えることにする。
特殊な処理をしないといけなくなるのは、4:IV 9:IX 40:XL 90:XC CD:400 CM:900 という4 と 9 が付く数字の時のアホになる…もといややこしくなるようだ。
ところで、
2948 / 1000 => 2 で MM
2948 % 1000 => 948
948 / 100 => 9 で CM
948 % 100 => 48
48 / 10 => 4 で XL
48 % 10 => 8
8 / 1 => 8 VIII
8 % 1 => 0
という風に、10進数における各値の数値から、新しいローマ数字を追加する方法がよいと判断した。
1000の位を構成する文字は今回の範囲では M:1000 のみ
100の位を構成する文字は M:1000 D:500 C:100
10の位を構成する文字は C:100 L:50 X:10
1の位を構成する文字は X:10 V:5 I:1
ということで、各位と文字を配列にし、.eachで読み込むようにしてみた。
実行するとうまくいったので、これでいいのだろう。
初めてのプログラミング
posted with amazlet at 08.09.02
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均:
Rubyを使ってHello, Worldから丁寧な解説
Ruby
newromannumerals0.rb
nextvalueromes = [[1000,"","","M"],[100,"M","D","C"],[10,"C","L","X"],[1,"X","V","I"]]
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
[newplus, num]
end
puts "1-3999までの整数を入力してください"
number = gets.chomp.to_i
new_roman_numeral = ""
nextvalueromes.each do |contents|
(new_roman_numeral, number) =
change_new_roman(number, contents[0], contents[1], contents[2], contents[3], new_roman_numeral)
end
puts "新しいローマ数字でいうと、" + new_roman_numeral + "です"
PR
この記事にコメントする
PR
カテゴリー
最新記事
(04/22)
(11/20)
(11/11)
(11/11)
(11/09)
(11/07)
(11/07)
(11/07)
(11/07)
(11/06)
アーカイブ
プロフィール
HN:
マドノマグラ
HP:
性別:
非公開
職業:
謎
趣味:
駄文書き
自己紹介:
ゲームを作ろうとしているうちに、言語学習に飽きていく。典型的なダメな人パターンに陥るアホな人