Skip to content

Instantly share code, notes, and snippets.

@thimo
Last active March 10, 2017 21:21
Show Gist options
  • Save thimo/ed717be3fa714b329d22dffefdddf1f2 to your computer and use it in GitHub Desktop.
Save thimo/ed717be3fa714b329d22dffefdddf1f2 to your computer and use it in GitHub Desktop.
def ask_question question
print "#{question} "
return gets.chomp
end
def ask_exercise_level
puts "What's your exercise level (1-5)? "
puts ' 1. little or no exercise'
puts ' 2. exercise/sports 1 - 3 times per week'
puts ' 3. exercise/sports 4 - 5 times per week'
puts ' 4. exercise/sports 6 - 7 times per week'
puts ' 5. very hard exercise/sports or physical job'
return gets.chomp
end
def calculate_bmi(weight, height)
weight / (height / 100.0)**2
end
def calculate_ideal_weight(bmi, height)
(0.5 * bmi + 11.5) * (height / 100.0)**2
end
def calculate_bmr(weight, height, age, gender)
bmr = 10.0 * weight + 6.25 * height - 5.0 * age
bmr += 5 if gender == 'm'
bmr -= 161 if gender == 'f'
return bmr
end
def calculate_cal_per_day(bmr, exercise_level)
cal_per_day = bmr
cal_per_day *= 1.2 if exercise_level == '1'
cal_per_day *= 1.375 if exercise_level == '2'
cal_per_day *= 1.55 if exercise_level == '3'
cal_per_day *= 1.725 if exercise_level == '4'
cal_per_day *= 1.9 if exercise_level == '5'
return cal_per_day
end
def diet_plan(weight, ideal_weight, cal_per_day)
if weight > ideal_weight
diet_cal_per_day = cal_per_day - 500
diet_weeks = (weight - ideal_weight) / 0.5
else
diet_cal_per_day = cal_per_day + 500
diet_weeks = (ideal_weight - weight) / 0.5
end
return diet_cal_per_day, diet_weeks
end
puts "Welcome, let's create you a diet plan!"
puts ""
age = ask_question("What's your age (years)?").to_i
height = ask_question("What's your height (cm)?").to_i
weight = ask_question("What's your weight (kg)?").to_i
gender = ask_question "What's your gender (m/f)?"
exercise_level = ask_exercise_level
bmi = calculate_bmi weight, height
ideal_weight = calculate_ideal_weight bmi, height
bmr = calculate_bmr weight, height, age, gender
cal_per_day = calculate_cal_per_day bmr, exercise_level
diet_cal_per_day, diet_weeks = diet_plan(weight, ideal_weight, cal_per_day)
goal_bmr = calculate_bmr ideal_weight, height, age, gender
goal_cal_per_day = calculate_cal_per_day goal_bmr, exercise_level
puts "\nYour ideal weight is #{ideal_weight} kg. To reach this weight you should be consuming #{diet_cal_per_day} calories per day for #{diet_weeks} weeks."
puts "When you've reached this weight you should adjust your diet to contain #{goal_cal_per_day} calories per day."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment