Value of Variable Staying The Same In For Loop

So I made a mini-game with my arduino uno. So there are 3 different colored LEDs, RED, YELLOW, AND green. When the green led is on and you press the pushbutton, you are given three points, yellow: you get 1.5 points and red, you get 0.5 points. And it will print your score at the end of the loop. But in the serial monitor, it just prints 0 each time. I don't know why so that's why I'm here.
I didn't send my void loop because I didn't put anything in it. Thanks!
My code:

#define GREEN_LED 13
#define YELLOW_LED 7
#define RED_LED 9
#define PUSH_BUTTON 2
int totalPoints = 0;
int trafficLightSpeed = 500;
int greenPoints = 3;
int yellowPoints = 1.5;
int redPoints = 0.5;
String youHave = "You have ";


void setup() {

  pinMode(GREEN_LED, OUTPUT);
  pinMode(YELLOW_LED, OUTPUT);
  pinMode(RED_LED, OUTPUT);
  pinMode(PUSH_BUTTON, INPUT);
  Serial.begin(9600);

  for(int i = 0; i < 3; i++){
    digitalWrite(GREEN_LED, HIGH);
    if(digitalRead(PUSH_BUTTON) == HIGH){
      totalPoints = totalPoints + greenPoints;
    }
    delay(trafficLightSpeed);
    digitalWrite(GREEN_LED, LOW);
    delay(trafficLightSpeed);
    digitalWrite(YELLOW_LED, HIGH);
    if(digitalRead(PUSH_BUTTON) == HIGH){
      totalPoints = totalPoints + yellowPoints;
    }
    delay(trafficLightSpeed);
    digitalWrite(YELLOW_LED, LOW);
    delay(trafficLightSpeed);
    digitalWrite(RED_LED, HIGH);
    if(digitalRead(PUSH_BUTTON) == HIGH){
      totalPoints = totalPoints + redPoints;
    }
    delay(trafficLightSpeed);
    digitalWrite(RED_LED, LOW);
    delay(trafficLightSpeed);
    Serial.println(youHave + totalPoints + " points!");
  }
}

Have you put a serial.Print() in the "if" that reads the PUSH_BUTTON to see if it ever reads "high"?

No, but I will try.

Good. Always the first step in debugging a program. Verifying what your "if" is really testing.

You mean like this?

for(int i = 0; i < 3; i++){
    digitalWrite(GREEN_LED, HIGH);
    if(digitalRead(PUSH_BUTTON) == HIGH){
      Serial.println(digitalRead(PUSH_BUTTON));
      totalPoints = totalPoints + greenPoints;
    }

No, don't reread the pin, just state that the pin read high. If you don't see the message, then for sure the pin was low.

I printed the state of the push button and it just read 0

And WHAT does that tell you about your push button?

That it's not functioning properly?

Most likely. What could cause that?

Nothing, because I wired everything for the pushbutton correctly. On the bottom right leg, I added a pull-down resistor(1k ohm) to the ground. The bottom left leg of the pushbutton is connected to the 5 volt supply. Then the top right leg is connected to a digital pin

Did you check it with a meter? That is not how to wire a 4 legged push button.

What's a meter? Plus, the way I wire a pushbutton works just fine on other projects.

A cheap digital volt-ohm meter, AKA DVM. That will show you the actual voltages with the button not pushed and when it is pushed.

I think the problem is that the for loop is resetting the variable's value. If it is, I don't know how to fix it.

I don't have that

Well, find out.
If your code is resetting variable, you will be able to see that line of code.

You can make a quick tester by putting a 220 Ohm resistor in series with one leg of a red LED. Then use the two unconnected ends to test for 5 volts. If the LED lights you have 5 volts, if it doesn't, you don't have 5 volts. Check the Arduino pin to ground and see if it shows light when the push button is pressed.

Ok thanks. So with a bit of printing, I figured out the problem, and it is that the pushbutton's state is always low. So how can I make the state high?

Likely to be the way the push button is wired. Trace you wiring with the LED tester.