Reference no: EM132873961
ITECH2000 Mobile Development Fundamentals - Federation University
Assignment 1: Word Scramble App
Summary
You will implement an app in AppInventor based on a given project specification. This app will use a range of components. You will also submit a brief report containing pseudocode and describing how your solution utilises various concepts we have learned in class.
Learning Outcome 1: Understand constructs typical of many programming languages such as: variables, expressions, assignment, sequence, selection, iteration, procedures, parameters, return values.
Learning Outcome 2: Design, develop, test and debug mobile apps from a given textual program specification. S1. Analyse the input, processing and output needs of small programming problems.
Learning Outcome 3: Design code sequences to realise algorithms in a programming language.
Learning Outcome 4: Design basic user interfaces and develop storyboards to convey designed interaction sequences.
Application Description
Your assignment is to develop a "Word Scramble" game application, using MIT AppInventor. In this game, the player must unscramble a randomly chosen 9-letter word to reveal the correct word. For reference, this is similar to the game "Boggle", except that there will be only one solution in a game that uses all letters.
The application may contain a number of screens to fulfill the requirements described below. As long as you fulfil the requirements in a logical way, you have free reign to design your interfaces as you like.
Specifically, the logic requirements that must be supported in the app are as follows:
• When the application is first opened, a menu should be displayed that provides the user with two options: "Play" and "Time Trial". These two options, when clicked, will start the game as follows:
o Play: The player has unlimited time and guesses with which to solve the puzzle.
o Time Trial: The player must guess the scrambled word correctly within 30 seconds, else it is game over.
• There should be a separate screen in which the game is played, opened from the menu.
• When the game is started, a random, 9-letter word should be selected (from a candidate list of words), and its letters should be shuffled.
o The split text block, when provided with an empty string/text block (as shown below), will return a list containing all the letters of a word. You may need to do further processing on this list so that it is ready for use in the game.
o You will need to determine a suitable method for shuffling the letters. Hint: Try to plan your algorithm on paper first, using pseudocode to work out the steps required before implementing in code.
• The shuffled letters should be displayed in some way on the screen, such that the user can select the letters one at a time to form a potential solution to the scramble (i.e., a 9-letter word). The user should not be able to select any single letter from the word more than once when working on a solution - the guess can only utilise the exact 9 letters from the word.
• The user's guess should be displayed and updated on the screen as letters are selected one letter at a time.
• The user should have an option to manually reset their guess, so that if they make a mistake, they can start forming a new guess without having to select all 9 letters first. That means that their current guess should be reset, and all letters should become available to select again.
• The user should also have an option to "give up", which ends the game and displays the correct solution to the user, before returning to the main menu.
• Once the user has selected all 9 letters, the app should check if the provided solution is correct and alert the user to the outcome.
o If the answer is correct, a message should be displayed that indicates the game is won, and then the user should be navigated back to the main menu.
o If the answer is incorrect, a message should be displayed to indicate this, and the game board should reset so that the user can start a new guess.
• In time trial mode, the game mechanics are exactly the same, except that there is a 30 second timer that starts counting down when the game begins. If the user gets the correct answer before the time is up, they win the game. If the user gets the answer incorrect before the time is up, they get to try again. Once the timer reaches zero or the user decides to "give up", the game stops and a "Game Over" notification is displayed before the app moves back to the main menu.
General Requirements for Coding
While your app should meet the functionality described above, you also need to ensure that you satisfactorily demonstrate all of the concepts that have been covered in ITECH2000 so far. To achieve full marks, you will need to ensure that you have correctly made use of each of the following components or constructs somewhere in your app:
• a Notifier
• Various user interface components, including Labels, Textboxes, Buttons, and/or Checkboxes, as well as HorizontalArrangement, VerticalArrangement or TableArrangement (or all of them).
• a Clock and instants
• the list construct
• a repetition construct
• a decision construct
• a boolean (AND or OR) expression.
• Procedures that you have defined using the ‘to do' or ‘to do ... result' blocks.
Please read through all of the requirements before you commence work on the app, so you get a full sense of what is required to be done. It is recommended that you first model any events or complex algorithms using pseudocode before commencing programming.
2. Brief Report Requirements
As well as completing the program described above in AppInventor, you are also required to submit a brief report that includes the following:
• A title page that includes your name and student ID number.
• Pseudocode describing the behaviour of three (3) events that your app will respond to. Ensure that you clearly label these events so that it is clear what aspect you are modelling.
• For each of the 8 design elements/blocks listed in the previous section (General Requirements for Coding), you should describe in 2-3 sentences how you used this component in your solution and justify why. If you have used a component multiple times, please describe one example.
Attachment:- Word Scramble App.rar