Actually this never made much sense to me,..but it might to some one else.
LETTER DROP
So now that we have the skeleton of code that holds our data (A-Z) we now come to the choice of methods we
1] display them
2] monitor any keyboard entry
3] results at program end.
1] If we use SCREEN 12 then we know that we have 30 rows. So if we create a variable that holds the row we increment it upward until its equal to 30 and at that point we end this particular letters journey. Next we select the next letter in our array and reset our variable that holds the row back to 1. The process repeats. While this is happening we need to decide how much time our letter is displayed before it drops down a line. Probably best is a time that starts slow and speeds up. We probably want between 5 to 10 seconds of total falling.
2] When we monitor the keyboard we have several options. Input , Inkey or _keydown.
a] Input - program execution stalls and waits for a keypress and enter.
b] Inkey allows execution to continues but we have to remove keys from the buffer
c] _Keydown allows execution to continue and doesnt care about the buffer being full or empty
3] We need to connect right and wrong attempts to the existing 26 items of data. Idealy we could use another 2 arrays (parallel) to our Alphabet array to record both correct and incorrect attempts. At program end we could display back the wrong or right or both letters and their totals. This also allows us to "track" the users efforts and later to recommend them what are their faults. And obviously these would allow us to monitor the programs execution.
So clearly here there are 3 things that need to be done simultaneously. And all of this needs to repeat. This needs to repeat until the user exhausts all of the correct options or gets bored and wants to exit. So lets write some psuedo code to describe this.
Do
Locate and Print selected Letter
Monitor keyboard
If keyboard data compare it to existing game data
If key data right or wrong record it
Increment Row , Timer period , wrong attempts
If a letter sequence has been completed reset for next letter
Loop until Correct = All OR _keydown = ESCAPE