The Type-A-Thon

2024-01-05 The Type-A-Thon

The Type-A-Thon

1.Introduction

Out in the woods and up in the hills, the computer science students of

University Kalaya (note: any similarities to the real world in this fictional

situation are purely coincidental or in your head) have a predicament on

their hands. Inside the halls of their violet and pastel faculty building (not

purple and white! See? This is totally fictional), and completely isolated

from the rest of the university, the students have started to become

indistinguishable from each other. Once individuals with their own views,

identities, and interests, the terrible years of isolation with nobody but each

other have made them all slowly meld into one another, losing their

individuality.

To combat this epidemic that has spread amongst their students, the faculty

staff has decided to create a series of challenges and competitions among

the students, with the hope that the innate talents present in students that

can’t be replicated by others show themselves, thereby breaking the cycle

of loss of individuality.

Your group has been tasked with the responsibility of creating one such

challenge. This challenge is the Type-A-Thon. Contestants are prompted

with a randomly generated text and a timer and must type out the same

text in front of them as fast as possible until the timer runs out. This will

lead the fastest typist to stand out amongst his/her peers, and brings the

faculty one step closer to solving its problem.

2.Problem Statement (8 marks)

2.1. Main Game (4 marks)

Let us first start by building the basic blocks of The Type-A-Thon. Here are

your main tasks.

Text: The text to be generated consisting of random words from the English

dictionary, all in lowercase. The generated text must be large enough that it

is impossible for the user to run out of text to type out before the timer

runs out. It is advisable that you keep your text pool limited to commonly

used words such as “when, there, look, where, feel, consider, try, action,

etc.” for simplicity’s sake, but this is not a requirement.

Timer: Creating a 30 second timer that begins counting down as soon as

the user types out the first letter of the first word. Once the timer reaches

0, the game stops and the score is calculated.

Score: The final score after the game ends is calculated in Words Per

Minute. The WPM is calculated by taking the total amount of characters in

the correctly typed words, dividing it by 5, and normalized by 60 seconds.

Along with the WPM, the program keeps tracks of the number of mistakes

made by the user, regardless of if the user backspaced to correct the

mistake or not. An accuracy percentage score is also displayed.

Gameplay: Finally, we get to the actual gameplay. Players are required to

type out the prompted text using their keyboards while the timer is active.

If a player makes a typing error, they can either backspace to correct the

error (which takes time) or press space bar and move on to the next word

(keep in mind that no points will be given for incorrectly spelled words).

Once the level is over, players are given the option to either repeat the

same text prompt or start again with a randomly generated prompt.

2.2. Alternate Gamemodes (2 marks)

What game can be called fun with only 1 gamemode? Therefore for this

assignment, we’re going to spice it up a little bit. The player should be given

the option to choose between different gamemodes as such:

2.2.1. Timed

This is the default gamemode with the same gameplay explained in the

previous section. However, we would like you to add the following

features.

• The player can choose if they want punctuation to be included

within the randomly generated text. This would mean randomly

generated commas, open and close quotation marks, exclamation and

question marks, and periods.

• The player can choose to edit the timer to be either 15, 30, 45,

or 60 seconds. This should be done without affecting the score

calculation process.

2.2.2. Words

In this alternate gamemode, the player is presented with a limited

number of words, and is given the choice between 10, 25, 50, or 100

words, all generated at random. Instead of a timer, a stopwatch is used

to calculate how long the player takes to complete the generated text,

and the score is calculated similar to the normal game.

2.2.3. Quotes

In this gamemode, the player presented with a quote at random from a

movie, TV series, anime, game, book, song, or any other form of media.

The list of quotes can be chosen by you and stored in a text file for

generation. The time and score of this gamemode is calculated similarly

to that of the last alternate gamemode. It would also be nice to include

the source of the text at the end of the round along with the score.

2.3. Profiles (2 marks)

To serve the purpose of determining the best Type-A-Thon player,

you must create a feature for players to create accounts that store

their scores.

How you implement the account registration, storage, login, and

logout will be entirely up to you. However, you must include the

following features:

2.3.1. Player Profiles

Each registered account must come with a player profile with details

of the player. Each player is able to view their own as well as other

registered players’ profiles. Each player profile must include:

• Their average WPM and accuracy scores (all-time).

• Their average WPM and accuracy scores (last 10 games).

You are free to include anything else you may think of.

2.3.2. Leaderboards

The inclusion of a leaderboard is important to the functioning of this

game. You must include a leaderboard based on the average WPM

(last 10 games) of all the registered users. The leaderboard must be

updated based on the recent player scores. Additionally, users are

able to view the profiles of other players from the leaderboards

screen.

3. Sample Input & Output

Sample output of the classic mode

Sample output of the Quotes gamemode

4. Extra Features (4 marks)

You are presented with 4 extra features to choose from. Please note that the

maximum marks you can get for this segment is 4.

4.1. Correction Facility (2 marks)

The correction facility is an optional alternate gamemode. In this

gamemode, you are required to generate a random text using the

player’s most commonly mistyped words. The rest of the rules are

similar to the classic gamemode. Additionally, include a list of the

user’s 10 most misspelled words in their profile as a badge of shame.

4.2. Sudden Death (1 mark)

The sudden death is an alternate gamemode where if the player

makes a single mistake, the game ends and the timer stops, and the

score is calculated based on the typed words and the elapsed time. If

you choose to include this extra feature, you must also add the

“sudden death score” category separately on the user’s profile.

4.3. Performance Metrics (2 marks)

While it is nice to see your WPM and accuracy score at the end of

each game, sometimes that isn’t enough data. So for the data science

nerds out there, this extra feature is for you.

For this extra feature, you are required to record the WPM at each

individual second of the runtime of the game, and then graphing out

the WPM of each second of the game to show the progression during

that current game. Make a separate graph for the accuracy score as

well.

4.4. GUI (1 mark)

For this extra feature, you are given points for putting in extra effort

in making your project look presentable. This is a game after all. From

everything to the log-in screen, account creation, profile,

leaderboards, and especially the gameplay screen, the finishing

touches of a GUI (which doesn’t HAVE to be an actual GUI, a clean CLI

is sometimes even better) make all the difference.