As another option you could use a little 8 pin Picaxe chip (08m2 chip) and some simple code like this to do the full job.
The pause 100 will give a 100 millisecond delay to allow for switch bounce, and human reaction time, while the "inc" will increase a internal counter register by 1 each time the switch is pressed, the rest is basically as it reads in English.
If the counter is equal to 1 then turn off led 2 and led 3 and switch on led 1...end of instruction.
if the counter is not equal to 1 then it will skip the instruction and go to the next instruction and so forth till it reaches the "goto main" and then it loops back to "Main" and starts over again.
Simple as 123.
If you would like to use a micro processor like this i will do a schematic to suit, but its not much more than 1 chip and a couple of resistors. (it will need a 5 volt supply)
The advantage with using a micro is if you want to change a function then its just a few lines in the code to change and reload the code, no need to change the hardware.
Lets say you wanted to flash a led a few times when the button was pressed then its just a matter of adding a few lines of code to do it, the circuit remains the same.
Pete.
Code:
#picaxe 08m2
Symbol button_switch = pinC.3
Symbol led_1 = C.0
Symbol led_2 = C.1
symbol led_3 = C.2
Symbol counter = b1
low led_1, led_2, led_3
Main:
if button_switch = 1 then
inc counter
pause 100
endif
if counter = 1 then
low led_2, led_3
high led_1
endif
if counter = 2 then
low led_1, led_3
high led_2
endif
if counter = 3 then
low led_1, led_2
high led_3
endif
if counter = 4 then
low led_1, led_2, led_3
counter = 0
endif
goto main
EDIT:-
Here is a schematic to show how simple it can be with a Picaxe.
If the leds need more than 20mA the a drive transistor will need to be added for each led.
The programming socket is a standard D9 serial socket, no fancy programming board required.