Last active
March 10, 2017 21:21
-
-
Save thimo/ed717be3fa714b329d22dffefdddf1f2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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