Skip to content

Instantly share code, notes, and snippets.

@nicolasleander
Created May 22, 2024 16:22
Show Gist options
  • Select an option

  • Save nicolasleander/db781615e70ad26b31618d1be284e3ec to your computer and use it in GitHub Desktop.

Select an option

Save nicolasleander/db781615e70ad26b31618d1be284e3ec to your computer and use it in GitHub Desktop.

Revisions

  1. Mykola Bugaiov created this gist May 22, 2024.
    33 changes: 33 additions & 0 deletions output.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,33 @@
    Week 1 - Workout Schedule
    Monday:
    Back Squat: RPE 8-9.5 @ 94kg, 5 sets of 5
    Power Snatch: 60-70% @ 42kg - 49kg, 3 sets of 2
    Clean and Jerk: 60-70% @ 42kg - 49kg, 3 sets of 1

    Tuesday:
    Back Squat: RPE 8-9.5 @ 94kg, 5 sets of 5
    Snatch: 60-70% @ 42kg - 49kg, 3 sets of 2
    Power Clean and Jerk: 60-70% @ 42kg - 49kg, 3 sets of 1

    Wednesday:
    Back Squat: RPE 8-9.5 @ 94kg, 5 sets of 5
    Power Snatch: 60-70% @ 42kg - 49kg, 3 sets of 2
    Clean and Jerk: 60-70% @ 42kg - 49kg, 3 sets of 1

    Thursday:
    Rest Day

    Friday:
    Back Squat: RPE 8-9.5 @ 94kg, 5 sets of 5
    Snatch: 60-70% @ 42kg - 49kg, 3 sets of 2
    Power Clean and Jerk: 60-70% @ 42kg - 49kg, 3 sets of 1

    Saturday:
    Back Squat: RPE 8-9.5 @ 94kg, 5 sets of 5
    Power Snatch: 60-70% @ 42kg - 49kg, 3 sets of 2
    Clean and Jerk: 60-70% @ 42kg - 49kg, 3 sets of 1

    Sunday:
    Back Squat: 65% @ 65kg, 3 sets of 5
    Snatch: 60-70% @ 42kg - 49kg, 3 sets of 2
    Power Clean and Jerk: 60-70% @ 42kg - 49kg, 3 sets of 1
    101 changes: 101 additions & 0 deletions squat.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,101 @@
    # ### Squat Program (with RPE + %)

    # **Week 1 - Week 5 (W1 - W5)**

    # **Day 1 (Monday)**

    # - Back Squat: RPE 8-9.5, 5 sets of 5 reps
    # - Power Snatch: 60-70% of 1RM, 3 sets of 2 reps
    # - Clean and Jerk: 60-70% of 1RM, 3 sets of 1 rep

    # **Day 2 (Tuesday)**

    # - Back Squat: RPE 8-9.5, 5 sets of 5 reps
    # - Snatch: 60-70% of 1RM, 3 sets of 2 reps
    # - Power Clean and Jerk: 60-70% of 1RM, 3 sets of 1 rep

    # **Day 3 (Wednesday)**

    # - Back Squat: RPE 8-9.5, 5 sets of 5 reps
    # - Power Snatch: 60-70% of 1RM, 3 sets of 2 reps
    # - Clean and Jerk: 60-70% of 1RM, 3 sets of 1 rep

    # **Day 4 (Thursday)**

    # - Day off

    # **Day 5 (Friday)**

    # - Back Squat: RPE 8-9.5, 5 sets of 5 reps
    # - Snatch: 60-70% of 1RM, 3 sets of 2 reps
    # - Power Clean and Jerk: 60-70% of 1RM, 3 sets of 1 rep

    # **Day 6 (Saturday)**

    # - Back Squat: RPE 8-9.5, 5 sets of 5 reps
    # - Power Snatch: 60-70% of 1RM, 3 sets of 2 reps
    # - Clean and Jerk: 60-70% of 1RM, 3 sets of 1 rep

    # **Day 7 (Sunday)**

    # - Back Squat: 65% of 1RM, 3 sets of 5 reps
    # - Snatch: 60-70% of 1RM, 3 sets of 2 reps
    # - Power Clean and Jerk: 60-70% of 1RM, 3 sets of 1 rep

    # This routine provides a comprehensive structure, focusing on building strength and power in squatting, as well as technique in Olympic lifts across a week, with one rest day.

    def generate_workout(week)
    rm = {squat: 100, snatch: 70, clean_and_jerk: 70}
    rpe_squat_weight = (0.935 * rm[:squat]).round # Average for RPE 8-9.5

    exercises = [
    {day: "Monday", workouts: [
    {name: "Back Squat", type: "RPE 8-9.5", sets: 5, reps: 5, weight: rpe_squat_weight},
    {name: "Power Snatch", type: "60-70%", sets: 3, reps: 2, weight: (0.6 * rm[:snatch]).round..(0.7 * rm[:snatch]).round},
    {name: "Clean and Jerk", type: "60-70%", sets: 3, reps: 1, weight: (0.6 * rm[:clean_and_jerk]).round..(0.7 * rm[:clean_and_jerk]).round}
    ]},
    {day: "Tuesday", workouts: [
    {name: "Back Squat", type: "RPE 8-9.5", sets: 5, reps: 5, weight: rpe_squat_weight},
    {name: "Snatch", type: "60-70%", sets: 3, reps: 2, weight: (0.6 * rm[:snatch]).round..(0.7 * rm[:snatch]).round},
    {name: "Power Clean and Jerk", type: "60-70%", sets: 3, reps: 1, weight: (0.6 * rm[:clean_and_jerk]).round..(0.7 * rm[:clean_and_jerk]).round}
    ]},
    {day: "Wednesday", workouts: [
    {name: "Back Squat", type: "RPE 8-9.5", sets: 5, reps: 5, weight: rpe_squat_weight},
    {name: "Power Snatch", type: "60-70%", sets: 3, reps: 2, weight: (0.6 * rm[:snatch]).round..(0.7 * rm[:snatch]).round},
    {name: "Clean and Jerk", type: "60-70%", sets: 3, reps: 1, weight: (0.6 * rm[:clean_and_jerk]).round..(0.7 * rm[:clean_and_jerk]).round}
    ]},
    {day: "Thursday", workouts: []},
    {day: "Friday", workouts: [
    {name: "Back Squat", type: "RPE 8-9.5", sets: 5, reps: 5, weight: rpe_squat_weight},
    {name: "Snatch", type: "60-70%", sets: 3, reps: 2, weight: (0.6 * rm[:snatch]).round..(0.7 * rm[:snatch]).round},
    {name: "Power Clean and Jerk", type: "60-70%", sets: 3, reps: 1, weight: (0.6 * rm[:clean_and_jerk]).round..(0.7 * rm[:clean_and_jerk]).round}
    ]},
    {day: "Saturday", workouts: [
    {name: "Back Squat", type: "RPE 8-9.5", sets: 5, reps: 5, weight: rpe_squat_weight},
    {name: "Power Snatch", type: "60-70%", sets: 3, reps: 2, weight: (0.6 * rm[:snatch]).round..(0.7 * rm[:snatch]).round},
    {name: "Clean and Jerk", type: "60-70%", sets: 3, reps: 1, weight: (0.6 * rm[:clean_and_jerk]).round..(0.7 * rm[:clean_and_jerk]).round}
    ]},
    {day: "Sunday", workouts: [
    {name: "Back Squat", type: "65%", sets: 3, reps: 5, weight: (0.65 * rm[:squat]).round},
    {name: "Snatch", type: "60-70%", sets: 3, reps: 2, weight: (0.6 * rm[:snatch]).round..(0.7 * rm[:snatch]).round},
    {name: "Power Clean and Jerk", type: "60-70%", sets: 3, reps: 1, weight: (0.6 * rm[:clean_and_jerk]).round..(0.7 * rm[:clean_and_jerk]).round}
    ]}
    ]

    puts "Week #{week} - Workout Schedule"

    exercises.each do |day|
    puts "#{day[:day]}:"
    if day[:workouts].empty?
    puts " Rest Day"
    else
    day[:workouts].each do |workout|
    weight_str = workout[:weight].is_a?(Range) ? "#{workout[:weight].min}kg - #{workout[:weight].max}kg" : "#{workout[:weight]}kg"
    puts " #{workout[:name]}: #{workout[:type]} @ #{weight_str}, #{workout[:sets]} sets of #{workout[:reps]}"
    end
    end
    puts "\n"
    end
    end

    generate_workout(1)