第 7 回 ゼミ紹介 レポート課題 氏名:羽田圭介 学籍番号:c1101690 語学クラス:英語2 コース(系):地域共創 1. 企画書 このプログラムを作った理由------------ 授業でるびおっちのプログラムを見て、自分でもできると思ったから。 プログラムを作ってみて---------- 思っていたよりとても時間がかかった。 しっかり答えによって違うエンディングにすることができたので良かった。 何か問題がありましたら c110169@f.koeki-u.ac.jp までお願いします。 取り扱い説明書 育成ゲームです。 ダウンロードする場合は、この説明書と、プログラム本体を右クリックしてsave link asでお好きなファイルへお願いします。 プログラムの実行方法 kterm で chmod +x ikusei.rb と入力してください。 こうすることでプログラムを実行する準備ができます。 そして、実行する場合は kterm で ./ikusei.rb と入力してください。 すると、まず名前を聞かれるので入力して下さい。 何も入力しない場合、パワフル君になります。 その後、選択肢が出るので、1から3までの数字を入力して下さい。 選択肢によってエンディングが変わります。 プログラム #!/usr/koeki/bin/ruby def yakyu(ct) ct.times do print("★\t") end print("\n") sleep(1) end def message(name) STDERR.printf("\n%sに練習させよう。 \n", name) # %sに名前が入る STDERR.print("[1]\tバッティング?\n") STDERR.print("[2]\tノック?\n") STDERR.print("[3]\tストレッチ?\n") end def player(perday,exercise) x = 4 * perday - exercise #質問の回数から選んだ番号を引いて4掛ける printf("%d日目\n",perday) #質問の回数表示 printf("筋力増加量 %d\n", x) x end printf("野球選手を育てよう。\n") STDERR.printf("どんな名前にしますか?\n") name = gets.chomp # 文字をnameに入れる if name == "" # もしnameが""だったら"" name = "パワフル君" # もしnameが何もなかったら"パワフル君"となる。 end # ifに対するend printf("\n%sという名前にしました。\n",name) rensyu = 1 # 習得度 kinryoku = 1 # 筋力 day = 0 # 育てた日付 printf("★が増えると良い選手になるよ\n") while true #以下繰り返し yakyu(rensyu) message(name) ans = gets.chomp.to_i #選んだ番号をとってくる rensyu += day * ans kinryoku += player(day,ans) # rensyu に day と ans を掛けたものを足す printf("習得度 %d\n", rensyu) # kinryoku に day と ans を足す printf("筋力 %d\n", kinryoku) if rensyu > 4 #もし 4 より値が大きくなれば while 文から抜ける break end if kinryoku > 4 #もし 4 より値が大きくなれば while 文から抜ける break end yakyu(ans) day += 1 # 日数が質問のたびに 1 増える end yakyu(kinryoku) # 最終段階の筋力が★になる printf("%sは", name) if kinryoku > 8 # もし筋力が8より大きければ print("プロ野球選手レベル") elsif kinryoku <= 5 # もし筋力が5と同じか小さければ print("高校球児レベル") else # それ以外ならば print("小学生レベル") end print("になりました.\n") 第6回 授業で使用したるびおっちをもとに、エンディングに影響する数値や変数 を変えた。 実行結果 pan{c110169}% ./ikusei.rb [~/public_html/advertise2] 野球選手を育てよう。 どんな名前にしますか? パワフル君という名前にしました。 ★が増えると良い選手になるよ ★ パワフル君に練習させよう。 [1] バッティング? [2] ノック? [3] ストレッチ? 1 0日目 筋力増加量 -1 習得度 1 筋力 0 ★ ★ パワフル君に練習させよう。 [1] バッティング? [2] ノック? [3] ストレッチ? 1 1日目 筋力増加量 3 習得度 2 筋力 3 ★ ★ ★ パワフル君に練習させよう。 [1] バッティング? [2] ノック? [3] ストレッチ? 1 2日目 筋力増加量 7 習得度 4 筋力 10 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ パワフル君はプロ野球選手レベルになりました. 名前を入力しなかった場合にパワフル君になり、 プログラム通り8以上の答えはプロ野球選手レベルと表示されたので、 プログラムは正しいといえる。 広告ページアドレス http://roy/~c110169/advertise2/index.html 2.感想 今回の課題はいつもより難しく、時間もかかった。 しかし、進めていくうちに理解も深まったので良かったと思う。 次回の課題も頑張りたい。 3.参考文献 基礎プログラミング II 第 6 回 「目的に応じて使ってみよう」 共同作成者 千葉倫之 水口天地