I should have posted about this earlier but I wanted to get a feel for what I could actually accomplish before I came up with some grandiose planes.
With any project you need to have a plan of what you want to accomplish. Even if you don't list out this plan or write it down you still have some kind of plan in your head. I feel it is best to list out what is needed and then list how to accomplish it. By doing this I can see holes in my design better then if I just keep everything in my head.
What the game needs:
1.A matrix of LEDs that displayed the level
2.The ability for the level to scroll
3.The top row of the level changes to make the road move
4.LEDs to represent the car
5.The ability for the car to move left and right
6.Collision detection between the car and the grass that would end the game
7.The game needs to get harder the longer it is played
How to accomplish these things:
1. A matrix of LEDs (duh) and memory in the form of D-flip flops to hold them.
2. Arrange the D-flip flops in the form of an 8 bit wide shift register. This allows the screen to cascade down.
3. Put a new byte in the shift register every cycle. Either random or from non volatile memory.
4. LEDs and D-flip flops again.
5. This is harder. A shift register that allows for left and right shifting as well as a loop back on either end so the car would not vanish off the screen but would simply stop.
6. A lot of or statements that could cancel out the oscillatory thus ending the game.
7. At specific times the game will speed up by reducing the amount the oscillator is divided.
This list will change as the project goes on and the list of how to accomplish goals will become better defined.
I will re-post this list as the project progresses and things change.
Preview of bi-directional shift register: