My project:

  • The CPT project that I an submitting to collegeboard will contain:
    • A random letter generator, that will generate one of the 26 letters ont he alpahbet randomly
    • a start button, which will begin the countdown clock
    • a countdown clock, which will decrement every second and the initial time will change based on the numebr of countries the user has to guess
    • multiple country guess bars, one for each country that begins with the corresponding letter
    • a check function, which will return a) that the country is valid and begins with the letter generated, b) that the country is valid but doesn’t begin with the specified letter, c) that the country begins with the specified letter but isn’t a real country, or d) both b and c
    • A results sentence, letting the user know how many they got correct
    • A leaderboard, storing the user’s time and number of countries guessed right
    • If time permits, and option to do all of the above, except with the last letter of the country rather than the first

What my video will show:

  • Me playing the game with two different letters
    • one letter will have a lot of countries beginning with it
    • one letter will have very few countries beginning with it
    • I will guess some correct countries
    • I will guess some incoreect countries
    • I will guess some non-countires
    • I will show the leaderboard with each try

Collegeboard Criteria:

  • Program Purpose/Function
    • Purpose: Entertainment and testing knowledge
    • Function: Chooses a letter, and gives the user 10 seconds to guess 3 countries which begin with said letter.
  • Data Abstraction
    • Use of multiple lists, to store user guesses, and to store a list of countries which begin with each letter of the alphabet
  • Managing Complexity
    • Chooses a random letter from the list to have the user guess for, and compares the user’s guesses to make sure each is correct. This program becomes almost impossible without lists, but it may be possible to directly use the country names from the database, but would become much more complex
  • Procedural Abstraction
    • A procedure to check a user’s guess and make sure that country exists and begins with the right letter
  • Algorithm Implementation
    • sequential search both to check each letter in a word and each word in the guesses/
  • Testing
    • described above

What I may need:

  • An API for countries
    • while I could just copy a current list, countries are often added, deleted, split, or merged, so it would be good to have an uupdating list with an API to the United Nations website
  • A time API or python package
    • It would be helpful to have a time package, as my project is time based, so I would need a kind of countdown clock for the user to see the time left to name the countries
  • A changing database/API
    • something similar to the sqlite table would work, storing each user for the leaderboard, along with their time and number of countries guessed.