Cleaning up code and making better loops for soccer shoot-out game
Not a bad start. However here's a few things that immediately pops out when I look at the code.


Avoid duplication: The code for both players to kick is exactly the same. You should try to move that into a function instead of writing it out twice.
Make a player class: By moving all the code for a player into a class, you avoid having to keep each variable twice. Instead of shot_1/shot_2, result_1/result_2 etc, you could have player[0].shot, player[0].result etc.
Make a game class: While you're at it, why not also turn the game itself into a class. I think this would solve your looping problem all by itself.


Something like this:

class Game
  def initialize
    # set up for a new game
  end

  def play_round
    # play one round of the game
  end
end