第6回 基礎プログラミング II レポート課題 氏名:笹原千珠子 学籍番号: c109080A 語学クラス:英語3 コース(系):政策マネジメント ---- 1. 18番目 = s 40番目 = nil alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] プログラムを作ろうとすると、数え始めの数は 1 でなく 0 になるので、 先頭の a は 0 になる。アルファベットを 0から順に数えて行くと最後は 25。 18 番目は s になる。また、アルファベットは 26文字しかないので 40 番目は 無い。よって無効という意味の nil になる。 2.今回はA問題とB問題をやった。 a.選択肢を選び選択肢によって結果が変わるプログラム。 今回は夢を題材にした。 b.def_rollplaying_a.rb #!/usr/koeki/bin/ruby def dream(tm) tm.times do # 「...」を繰り返し表示させる print("...\t") end print("\n") #改行 sleep(0.1) # 0.7秒遅れて表示 end def action(name) STDERR.printf("%s は夢を見ています。\n", name) # %sに名前が入る STDERR.print("[1]\t叫んでみる\n") STDERR.print("[2]\tその辺を歩いてみる\n") STDERR.print("[3]\t何か考える\n") STDERR.print("何をしてみますか?:") #どの選択肢を選ぶかきく end def deeply(progress,select) #この計算で最後の結果に影響する x = 4 * progress - select #質問の回数から選んだ番号を引いて4掛ける printf("%d時間くらい経過\n",progress) #質問の回数表示 x end printf("何だか夢を見ているみたい。\n") STDERR.printf("あなたはなんて言う名前?:") #名前を入力してもらう name = gets.chomp #入力した文字を取って来て名前にいれる if name == "" #もし何も入力されなければ name = "怒裏異夢" #名前が怒裏異夢になる end STDERR.printf("%sという名前なんですね。\n",name) sleeping = 1 # 眠りの深さ reality = 1 # 現実感 hour = 0 # 時間 printf("時間がたつほど目が覚めやすくなります。\n") while true #以下繰り返し dream(sleeping) action(name) ans = gets.chomp.to_i #選んだ番号をとってくる print "*" * 80 #わかりやすくするために * で線を引く sleeping += hour * ans # sleeping に hour と ans を掛けたものを足す reality += deeply(hour,ans) # reality に hour と ans を足す if sleeping > 4 #もし 4 より値が大きくなれば抜 while 文からける break end if reality > 4 #もし 4 より値が大きくなれば抜 while 文からける break end dream(ans) hour += 1 end dream(reality) # 最終的な現実感の値が「...」になる printf("%sは\n", name) if reality > 8 #もし合計が 8 より大きくなったら print("すっきり目覚めることができました。\n") elsif reality <= 5 #もし合計が 5 print("なんだか楽しい夢を見ました。\n") else print("しばらく夢の中です。残念。\n") end c. def_rubiocci.rb をもとに変数を問題に合わせて変えた。 その他、どの番号を選ぶかをきく文章を入れたり「...」が表示される時間を遅 くしたりした。 参考文献:ウェブページ 基礎プログラミング II 第6回 目的に応じて使ってみよう 「るびおっち」 (講義ノート) 西村まどか http://roy/~madoka/2010/r2/06/06_11_theme_09_rubiocci.html d. 1が表示される選び方の場合 pan{c109080}% ./def_rollplaying_a.rb [~/Ruby] 何だか夢を見ているみたい。 あなたはなんて言う名前?: 怒裏異夢という名前なんですね。 時間がたつほど目が覚めやすくなります。 ... 怒裏異夢 は夢を見ています。 [1] 叫んでみる [2] その辺を歩いてみる [3] 何か考える 何をしてみますか?:1 ********************************************************************************0時間くらい経過 ... ... 怒裏異夢 は夢を見ています。 [1] 叫んでみる [2] その辺を歩いてみる [3] 何か考える 何をしてみますか?:1 ********************************************************************************1時間くらい経過 ... ... ... 怒裏異夢 は夢を見ています。 [1] 叫んでみる [2] その辺を歩いてみる [3] 何か考える 何をしてみますか?:1 ********************************************************************************2時間くらい経過 ... ... ... ... ... ... ... ... ... ... 怒裏異夢は すっきり目覚めることができました。 2が表示される選び方 pan{c109080}% ./def_rollplaying_a.rb [~/Ruby] 何だか夢を見ているみたい。 あなたはなんて言う名前?: 怒裏異夢という名前なんですね。 時間がたつほど目が覚めやすくなります。 ... 怒裏異夢 は夢を見ています。 [1] 叫んでみる [2] その辺を歩いてみる [3] 何か考える 何をしてみますか?:2 ********************************************************************************0時間くらい経過 ... ... ... 怒裏異夢 は夢を見ています。 [1] 叫んでみる [2] その辺を歩いてみる [3] 何か考える 何をしてみますか?:2 ********************************************************************************1時間くらい経過 ... ... ... ... ... 怒裏異夢 は夢を見ています。 [1] 叫んでみる [2] その辺を歩いてみる [3] 何か考える 何をしてみますか?:2 ********************************************************************************2時間くらい経過 ... ... ... ... ... ... ... 怒裏異夢は しばらく夢の中です。残念。 3が表示される選び方 pan{c109080}% ./def_rollplaying_a.rb [~/Ruby] 何だか夢を見ているみたい。 あなたはなんて言う名前?: 怒裏異夢という名前なんですね。 時間がたつほど目が覚めやすくなります。 ... 怒裏異夢 は夢を見ています。 [1] 叫んでみる [2] その辺を歩いてみる [3] 何か考える 何をしてみますか?:3 ********************************************************************************0時間くらい経過 ... ... ... ... 怒裏異夢 は夢を見ています。 [1] 叫んでみる [2] その辺を歩いてみる [3] 何か考える 何をしてみますか?:3 ********************************************************************************1時間くらい経過 ... ... ... ... ... ... ... 怒裏異夢 は夢を見ています。 [1] 叫んでみる [2] その辺を歩いてみる [3] 何か考える 何をしてみますか?:3 ********************************************************************************2時間くらい経過 ... ... ... ... 怒裏異夢は なんだか楽しい夢を見ました。 e.考察 3つ全ての選択肢が表示された。 どれを選択するかをきく文章も表示されたのできちんと動いた。 3. ノベルゲームなどは基本的にるびおっちでやったような仕組みだと思った。 問題を考えるのが大変だった。今回はいつもより自分なりにプログラムを変えら れなかった。選択肢に影響する数字も余裕があったら変えたい。 だんだん前にやったメソッドを忘れてきているので思い出しながらやろうと思う。 今回で一段落したようなので少し安心した。 共同学習者:金田麻美