第6回 基礎プログラミング II レポート課題 氏名:永井 絹人 学籍番号:c109120 語学クラス:英語1 コース(系):政策 //////////////////////////////////////////////////////////////////////////////// 1、筆記問題 alphabet = ["a","b",...,"z"] の alphabet[18] および alphabet[40] は、 alphabet の配列の何番目と指しているので、[18]は18番目なので「r」である。 [40]は40番目でる。しかしそれはないので、「なし」である。 2、プログラム問題 A、プログラム #!/usr/koeki/bin/ruby def average(score) sum = 0.0 for stars in score sum += stars end sum / score.length end points = Array.new while true STDERR.print "今日は何キロ走った?: " line = gets if line == nil break end points << line.to_i p points end printf("\n 一ヶ月の平均は %3.1f kmです\n", average(points)) B、実行結果 pan{c109120}% ./def_statistic.rb [~/Ruby] 今日は何キロ走った?: 3 [3] 今日は何キロ走った?: 3 [3, 3] 今日は何キロ走った?: 2 [3, 3, 2] 今日は何キロ走った?: 5 [3, 3, 2, 5] 今日は何キロ走った?: 3 [3, 3, 2, 5, 3] 今日は何キロ走った?: ^D 一ヶ月の平均は 3.2 kmです C、考察 配列を組み込んだが平均が同じか分からないため確かめ算した。 pan{c109120}% bc -l [~/Ruby] (3+3+2+5+3)/5 3.20000000000000000000 同じだったので、このプログラムは正しい。 B.ゲームを作りました。 #!/usr/koeki/bin/ruby def cry(ct) ct.times do print("サッサッ!\t") end print("\n") sleep(0.5) end def message(name) STDERR.printf("今日の %s の行動は?: \n", name) STDERR.print("[1]\t進む\n") STDERR.print("[2]\t人助けをする\n") STDERR.print("[3]\t略奪する\n") end def fat(perday,exercise) x = 4 * perday - exercise printf("%d日目\n",perday) printf("満足度 %d \n", x) x end printf("はじまりだよ\n") STDERR.printf("君の名前は?") name = gets.chomp if name == "" name = "ウッディ!!" end printf("%sという名前になった。\n",name) happy = 1 manzoku = 1 day = 0 printf("人としてどう成長するかな?\n") while true cry(happy) message(name) ans = gets.chomp.to_i print "-" * 80 happy += day * ans printf("しあわせ度 happy=%d\n", happy) manzoku += fat(day,ans) printf("満足度 manzoku=%d\n", manzoku) if happy > 4 break end if manzoku > 4 break end cry(ans) day += 1 end cry(manzoku) printf("%sは", name) if manzoku > 8 print("村人A") elsif manzoku <= 5 print("勇者") else print("悪魔") end print("になりました\n") 実行結果 pan{c109120}% ./def_rollplaying_b.rb [~/public_html/advertise] はじまりだよ 君の名前は? ウッディ!!という名前になった。 人としてどう成長するかな? サッサッ! 今日の ウッディ!! の行動は?: [1] 進む [2] 人助けをする [3] 略奪する 1 --------------------------------------------------------------------------------しあわせ度 happy=1 0日目 満足度 -1 満足度 manzoku=0 サッサッ! サッサッ! 今日の ウッディ!! の行動は?: [1] 進む [2] 人助けをする [3] 略奪する 1 --------------------------------------------------------------------------------しあわせ度 happy=2 1日目 満足度 3 満足度 manzoku=3 サッサッ! サッサッ! サッサッ! 今日の ウッディ!! の行動は?: [1] 進む [2] 人助けをする [3] 略奪する 1 --------------------------------------------------------------------------------しあわせ度 happy=4 2日目 満足度 7 満足度 manzoku=10 サッサッ! サッサッ! サッサッ! サッサッ! サッサッ!サッサッ! サッサッ! サッサッ! サッサッ! サッサッ! ウッディ!!は村人Aになりました 考察 物語が進みデータどうりの結果となったのでこのプログラムは正しい。 3、感想 ゲームを作り、違うエンディングが出るようにしました。 4、参考文献 「映画の星づけランキング」 http://roy/~madoka/2010/r2/06/06_08_theme_07_aryavg.html