I need my project to be coded in Java (NetBeans 8.2). The tasks labeled as "Wajih" need to be completed.
BBM Inc. Feasibility Study BBM Inc. March 28, 2021 1 ICS4U Final Project - Feasibility Study Wajih B, Harman B, Diliyar M Problem Definition: The issue with the current generation is their lack of financial literacy. Through this application, we aspire to promote wealth building, through real estate investing, using an enjoyable game. Monopoly allows families and kids above 8 to understand the market through the gratification system of collecting rent or understanding proper budgeting so that the player does not go bankrupt. The game itself will operate similarly to Monopoly, but will involve more educational content by including the appreciation of property and the issues derived through poor financial decisions. Problem Analysis a. Hardware required to run the application To play the game, the user must have a computer with them at all times along with a keyboard and mouse to give input. There’s no real way to work around this due to the fact it’s all digital and needs a computer to run the program. Depending on the success of the computer version, a mobile version may be developed in the future. b. User training If the user has trouble understanding or having difficulty overall, the game will have the ability to allow the players to access an instructions guide that will show the rules of the game and contain a short tutorial. c. Recommended age of the user The recommended age of the player is 8 years old because the game has many features and rules that will most likely be difficult for someone younger to understand how to play the game. d. Time the user will need to learn how to use the program The user can learn how to use the program by accessing the user manual that will be made available to them. The user manual will contain screenshots of the game along with instructions with each picture for the user to know what each step of the program does. It W&A Baqri BBM Inc. March 28, 2021 2 would most likely take the user around 20 - 30 minutes if they go through each screenshot and instruction that comes along with it. However, the Monopoly game is very popular and so many users will, likely, already know the rules. e. Costs associated with developing the software There will be no costs associated with developing the software. f. Any user cost to purchase the application The user will not have to pay for the application as the current goal is to meet the needs of the client, Tarnveer T. Possibly in the future the application could be available for the wider market allowing for other users to enjoy the Monopoly game. g. Integration with other software (will this program work in a Windows or Mac environment and under various operating systems software?) The program is capable of working with Windows and Mac system software. The jar application will allow the user to have access to the game without having to download NetBeans. The only restriction is that the user has a java version downloaded on their computer. Additionally, MacOS users may have some difficulty opening the downloaded jar. h. Research requirements (do you thoroughly understand your topic? are there any concepts that you need to research before you can begin to code?) The application is based on Monopoly, so the project requires the programmers to understand the basic rules and how to play the game. Besides understanding the game we will need to go over adding sound and animating images which are fairly new concepts to our team. i. Time constraints (how much time do you have available to complete this project? when do you need to have the product available for testing and distribution, in this case, to your teacher?) There will be 8 days in class to complete this project, however, including the weekend of an ICS4U week, there will be an additional 2 days. Amounting to a total of 10 days to complete this game. The current timeline is for the product to be ready by April 8, 11:59 pm for testing and maintenance purposes. W&A Baqri W&A Baqri BBM Inc. March 28, 2021 3 End user requirements and recommendations Tarnveer Takhtar is a student at Centennial Collegiate Vocational Institute and the following interview took place on Thursday, March 25, 2021 by Harman Bassi, BBM Inc’s systems analyst. The client was clear with his reasoning behind the project which was to educate his brother and cousin. He detailed his worries about the lack of education on financial literacy that they have. He goes on to explain that he wants the game to act generally similar to Monopoly but wanted to have it explore a bit more to the financial side. Furthermore, Tarnveer wanted a particular feature that included something with taxes since many of the younger generation doesn't understand the concept of taxes in everyday life. In order to meet the timeline it will not be a graduated tax system which is the current system in Canada. That is when I explained our idea for appreciation and he found it exciting. He truly believes that even a small feature such as this can impact the children greatly as they will understand the value behind investing and compounding. Software Project Plan a. Statement of Work: i. Subtasks/Algorithm 1. All work will be done by BBM Inc developers. There will be three java developers that will complete the project. One will focus on graphics, one on the GUI, and the other on the classes and data files. 2. GUI/Board The Monopoly board which will show the pieces and the GUI will also show how much each player has in their bank account. 3. Data Files a. Properties - holds the information about the properties (location on the board, name of property, market value, rent, level of property, cost to upgrade, appreciation percent, and the owner) b. Chest - holds the information about chest square location, name, the type and value of the chest. So if it increases or decreases BBM Inc. March 28, 2021 4 that will depend on the value assigned to the card c. Chance - holds the information about the different options, so the location and name but also how much to move the player by, if it's 0 then it’s a go to jail card. 4. All classes a. The square class will be an abstract class b. The property and card classes are both subclasses of the abstract square class. It will hold information like the location, market value or type of card. c. The chance and chest cards are subclasses of the card class. The chance cards will make the user move forward or backwards. The chest cards will affect the players bank balance d. The player card will hold information that is important for the player, like an arraylist to store properties and the color of their piece. 5. Die a. It will be a 12 sided die (could be an animated GUI that appears when the user rolls the die) 6. Checking and modifying bank balances Depending on which player it is, use the class methods to get the bank balance or to modify it. 7. Checking square landed on The first thing to do will be to figure out which square the player is landing on. This will be done by taking their die roll and adding it to their current square. The squares are numbered starting at 1 which is the go square. Next the computer will check to see if the square is a property, if it is then it will check to see who owns it. If another player owns it then a message will appear and then the rent will be deducted from the bank account. If the player cannot afford rent they will be forced to sell a property. If it isn’t a property the computer will check if it is a go to jail square. If the user has a get out of jail free card it will then be destroyed and the user will be out of jail. If the user has landed on their own property they will BBM Inc. March 28, 2021 5 have the option to upgrade it, if they have the funds. 8. Searching A linear search will be done to the array that holds all of the property information when players buy them. The reason a linear search is done is because the number of objects to be searched through is low. 9. Appreciation of property Each property in the game will increase by a certain percent each time all the players have moved (every 3 turns). The percent they increase by is dependent on location, like real markets. To do this there will be a method that modifies an array with all the properties in it. 10. Sorting properties to sell When a player wants to sell a property, the computer will use a specific algorithm called quik sort, which uses recursion. The algorithm will take the property values that the player holds and will find the middle of the properties. It will then sort any property that costs less than the middle to the left and will put the properties that cost more on the right of the middle. It will then call itself to repeat this process eventually ending with a sorted array. 11. Selling property to the bank When a player lands on another players property, the computer will check if the player has enough funds to pay rent to the owner. If the player isn’t capable of paying the owner, a GUI will appear on the screen showing a list of properties sorted from cheapest to highest according to market value. The user will have the option to sell as many properties as they need in order to acquire enough money to pay the rent. If the user still doesn’t have enough money even after they sell all their properties, the player will be out of the game. The market value of the property will be shown, but the bank will always have their bid 20% lower than its market value. BBM Inc. March 28, 2021 6 12. Sound effects a. There will be some music playing in the background and there will be a variety of sound effects for things like rolling die, landing in jail, buying or selling property and passing the Go square. ii. Flowchart 1. How the program processes a players turn: https://lucid.app/lucidchart/invitations/accept/032065df-46f4-4e07-bf11-0 9b7d97f52b9?viewport_loc=-11%2C-11%2C1579%2C911%2C0_0 iii. Storyboards (They are rough drawings and the actual designs will likely differ): Intro Screen (Closes after four seconds) Menu Screen ( this will pop up with three options and allows the player to either play the game, check the manual, turn off sound or see the credits) https://lucid.app/lucidchart/invitations/accept/032065df-46f4-4e07-bf11-09b7d97f52b9?viewport_loc=-11%2C-11%2C1579%2C911%2C0_0 https://lucid.app/lucidchart/invitations/accept/032065df-46f4-4e07-bf11-09b7d97f52b9?viewport_loc=-11%2C-11%2C1579%2C911%2C0_0 BBM Inc. March 28, 2021 7 Player screen (player 2 screen will have the player 1 colour greyed out,