This is a simple, very linear task, as shown by the illustration. The exact sequence and timing of the LEDs may need to be adjusted because I've lost track, but follow along.
Set the mS variable to –8000, the total time of staging, red and yellow LEDs before the green LED is illuminated. When staging starts, increment mS. It will start counting up towards zero (i.e., –7999, –7998, –7997...)
The blue LED is illuminated until mS > -1000
When mS reaches –1000mS, the red LED is on
When mS reaches –500mS, the yellow LED is on
When mS reaches zero, the green LED is on
Note: the above lines are literally 4 if/then statements.
During this entire event, the go buttons are monitored. When a button is pressed, mS is captured, and any addition presses are ignored (got to love me some boolean you know). If mS is negative, it's a foul. If mS is positive, it's the reaction time.
That's a total of about 8 if/then statements in the main program loop, plus a sub routine to display the results.