# coding: utf-8 Anna = [9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] Betty = [9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] Cara = [9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] Diana = [9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] # ステップ1 # Anna(アンナ)、Betty(ベティ)、Cara(キャラ)、Diana(ダイアナ)をあなたの友人とする # 1日だけを想定 # 必要に応じて、例えば、午後1時30分を 1330、午後5時45分を 1745 とする # 24時間を配列内の0〜23で表す # 0〜8は睡眠時間(睡眠時刻)としてカット # def とは define(定義する)の略 def g1(a,b,c,d) return(a==b and b==c and c==d) end # ステップ2: 目標設定 # 目標: 全員が出席できる時間を1時間にする # 入力: 時間を表す4つの整数 # 出力: ブール値(True か False を意図する値(True か False によって決められる値?)) # 効果: すべての入力時間が等しい場合に True を返す # ステップ3: 時間の制約 # 友人ごとに利用できない時間を設定 def c1(a) return(a<11 or a>=14) end # Anna は午前11時から午後1時50分まで授業 def c2(b) return(b<12 or b>=16) end # Betty は正午から午後3時まで授業 # 午後4時までダンスの練習 def c3(c) return(c<19 or c>=23) end # Cara は午後7時から午後11時まで仕事 def c4(d) return(d<18 or d>=23) end # Diana は午後6時から午後8時までボランティア活動 # 午後8時から午後11時まで仕事 Anna.each do |v| Betty.each do |w| Cara.each do |x| Diana.each do |y| if g1(v,w,x,y) and c1(v) and c2(w) and c3(x) and c4(y) ## === 解決の結果はココ puts "Anna, Betty, Cara, and Diana can hang out at: " + v.to_s + ":00" ## === # to_s -> 数値を文字列に変換 # (to_i -> 文字列を数値に変換) end end end end end