提出課題:05回目レポート 本文: 1. #!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- heart = 0 def goodaction( ) a = ["大好物!","とってもうれしい!","ありがとう!"] srand action = rand(3) return a[action] end def bad( ) print"おいしいよね\n" srand b = rand(5)*5+10 printf("好感度が+%dになりました\n",b) return b end def good( ) printf("「%s」と良い反応そうです\n",goodaction) c = 50 printf("好感度が+%dになりました\n",c) return c end print"ドアの向こうにいるキャラクターとお友達になろう!\n好感度が100になったらお友達になれるよ\n" while true print"どのドアを開けますか? (A,B,C,D)\n" open = gets.chomp! if open == "A" print"バッドばつ丸くんがいました!\n" elsif open == "B" print"ポチャッコがいました!\n" elsif open == "C" print"クロミちゃんがいました!\n" elsif open == "D" print"マイメロディちゃんがいました!\n" end printf("現在の好感度は%dです\n",heart) print"あなたは何をプレゼントしますか?\n[らっきょう、バナナアイス、アーモンドパウンドケーキ、ポリパリラーメン]\n" present = gets.chomp! if open == "A" && present == "ポリパリラーメン" heart += good( ) elsif open == "B" && present == "バナナアイス" heart += good( ) elsif open == "C" && present == "らっきょう" heart += good( ) elsif open == "D" && present == "アーモンドパウンドケーキ" heart += good( ) else heart += bad( ) end printf("%sをプレゼントして好感度が%dになったよ\n",present,heart) if heart >= 100 break end print"また会いに行きたいですか? ( Y or N )\n" answer = gets.chomp! if answer == "N" break else print"ドアを選びに行こう\n" end end if heart >= 100 print"おめでとうごさいます!\n好感度がマックスになりました!\n" else printf("好感度は%dです!\nプレゼントをくれてありがとう!!\n",heart) end 2. 実行結果1 ドアの向こうにいるキャラクターとお友達になろう! 好感度が100になったらお友達になれるよ どのドアを開けますか? (A,B,C,D) A バッドばつ丸くんがいました! 現在の好感度は0です あなたは何をプレゼントしますか? [らっきょう、バナナアイス、アーモンドパウンドケーキ、ポリパリラーメン] ポリパリラーメン 「大好物!」と良い反応そうです 好感度が+50になりました ポリパリラーメンをプレゼントして好感度が50になったよ また会いに行きたいですか? ( Y or N ) Y ドアを選びに行こう どのドアを開けますか? (A,B,C,D) A バッドばつ丸くんがいました! 現在の好感度は50です あなたは何をプレゼントしますか? [らっきょう、バナナアイス、アーモンドパウンドケーキ、ポリパリラーメン] ポリパリラーメン 「とってもうれしい!」と良い反応そうです 好感度が+50になりました ポリパリラーメンをプレゼントして好感度が100になったよ おめでとうごさいます! 好感度がマックスになりました! 実行結果2 ドアの向こうにいるキャラクターとお友達になろう! 好感度が100になったらお友達になれるよ どのドアを開けますか? (A,B,C,D) B ポチャッコがいました! 現在の好感度は0です あなたは何をプレゼントしますか? [らっきょう、バナナアイス、アーモンドパウンドケーキ、ポリパリラーメン] らっきょう おいしいよね 好感度が+30になりました らっきょうをプレゼントして好感度が30になったよ また会いに行きたいですか? ( Y or N ) Y ドアを選びに行こう どのドアを開けますか? (A,B,C,D) B ポチャッコがいました! 現在の好感度は30です あなたは何をプレゼントしますか? [らっきょう、バナナアイス、アーモンドパウンドケーキ、ポリパリラーメン] ポリパリラーメン おいしいよね 好感度が+20になりました ポリパリラーメンをプレゼントして好感度が50になったよ また会いに行きたいですか? ( Y or N ) N 好感度は50です! プレゼントをくれてありがとう!! 3. キャラクターの好感度を上げて友達になるプログラムを作成した (6~11)それぞれのキャラクターのスキなものがプレゼントされた場合のアクションをランダムで配列の中からする (15~21)スキなもの以外がプレゼントされたときの反応+好感度が10~30の間でランダムで上がるようにする (24~30)スキなものがプレゼントされたときの反応(6行目~でのもの)を表示し、好感度を50上げる (41~49)扉の無効に誰がいるのか指定(プレゼントとセット条件があるため) (56~66)それぞれのスキなものがプレゼントされた場合は、good のdefに飛んでそこからリターンされた数値をheart に足す。スキなもの以外が来た場合はbadに飛んで、リターンされた数値をheartに足す (69~71)好感度がマックス以上になった場合、ループから抜ける (84~)ループから抜けたあとの表示を設定 4. defの方の処理とその他の処理でかぶった働きをしてしまうなど頭が混乱して、作るのが大変だった。 キャラクター別で好感度をあげれるようにしたかったが、heartを4つ作ったあと、どのようにそれぞれに足すように設定したら良いのかわからず、完璧なプロクラムを作ることはできなかった。 添付: ruby2-03.rb