In Unit 2, Lab 2.5 you will build a flashcard program. Follow the instructions in the lab including the "If there is time". When your program is complete it should have these features. This is an individual project so you should work on your own though I am available to help.
Maintain a deck of cards to study. These can be hand written in your code or loaded with the Get Info From Web block.
Clicking each of the button sprites (created for you in the starter code) causes the corresponding part of the current card to be shown.
Some UI to advance to the next card in the deck.
Allow the user to mark a card as done so it isn't asked any more.
More advanced: allow the user to indicate whether they got a card right or wrong and use that information to control which cards they see when. (Remember from the first day of the year: you want to practice cards you missed fairly soon and space out the repetitions of cards you get right.
Provide a UI for adding cards to the deck in the app.
Additionally your code must have some internal characteristics:
You must define an ADT with a constructor block and any necessary selectors to represent your flashcards and use these blocks consistently.
You must store your deck of flashcards in a list. The items in the list should be those returned by your ADT's constructor.
Your code is runnable by clicking the Green Flag. It should reset any state when it restarts so it's like the first time I ran it.
Clean code. This means using the clean code feature but also getting rid of
any code you don't use: clean up free-floating blocks from the script area
delete custom blocks if you don't use them. (It's okay to have custom blocks
that aren't directly used via the Green flag if they serve some purpose such
as to help you add cards to your deck.)