This App has been developed as part of the Udacity Android Basics Nanodegree Course for the Exercise Project "Score Keeper App". Tennis is the game chosen for the App.
Android device running with Android OS 4.0.4 (API Level 15) or above. Designed for Phones and NOT for Tablets.
- The chosen game has either multiple amounts of points that can be scored or multiple important metrics to track.
- App is divided into two columns, one for each team.
- Each column has a large TextView to keep track of the current score of the Team, and an optional secondary TextView to track other important metrics.
- Each column has Scoring Buttons to record the score for the team, which updates a corresponding TextView in that column to reflect the new score.
- Game has a Reset Button to reset the scores on the TextViews.
The Score Keeper App is structured for the Tennis Scoring Game based on the rules followed in the Grand Slams for Men's and Women's Tennis. It contains only one Activity, i.e., MainActivity which displays the Scoreboards for the Tennis Match and manages/tracks the scoring for each Player.
Match Type - Men | Match Type - Women |
---|---|
- At the top, we have a RadioButton option for selecting the Type of Tennis Match, i.e., Men's Match or Women's Match.
- Men's Match will be the best of 5 sets, while Women's Match is the best of 3 Sets.
- If the Match goes to the deciding Set (Last Set), then there will be no Tie-Breaker for that Set.
Below the Match Type RadioButton option is the Players' Scoreboard which keeps track of the Game points in each Set and the number of Sets won by each Player.
Scoring in a Set | Scoring in a Tie-Breaker |
---|---|
- Below the Players' Scoreboard, is a table of two columns, one for each Player, that displays the various points in an Ongoing Set.
- Points in an Ongoing Game (labelled as GamePlay Points), Game Points in the Ongoing Set and the Tie Break Points in a Tie-Breaker are recorded and displayed here.
- Each Player column will have a "+" button that increases the Points in the Ongoing Game for the corresponding Player, which in turn updates the Game Points in the Set for the corresponding Player adhering to the Tennis scoring rules.
- Tie-Breaker will start only when there is a tie in the Game Points for each Player at "Game Point 6" in the Set, to decide the winner of the Set, which will be the Player that reaches 7+ Tie-Breaker Points with a difference of 2, as per the rules of Tennis.
Begin Match | Reset Match | Restart Match |
---|---|---|
The last Button at the bottom, allows for -
- Starting a Match, when it displays Begin Match. This also does the Toss and decides which Player will Serve (on Random basis).
- Resetting the Match in between the play in order to restart play, when it displays Reset Match.
- Restarting a Match after a Match has finished, when it displays Restart Match.
Help message | Score Announcement |
---|---|
In between the Start/Reset/Restart Button and the Players' +
Buttons, there is a TextView that displays "Help messages" and "Announcements of Scores" just like in Tennis.
The Player currently Serving is indicated across three places on the screen -
- Scoreboard - The Player Serving will be in Bold.
- Table of Ongoing Set - The Player Serving will be in Bold color.
- Score Announcement Text - The Score announced will be in respect to the Player Serving (that which is mentioned).
- master
- Contains the code submitted for review, along with review suggestions incorporated.
- release_v1.0
- Fixed TextView size for Game-Play and Tie-Breaker Points.
- Game-Play Points hidden during a Tie-Breaker since it is not required.
- Added App Icon.
- Other minor changes to prepare the app for local release.
App Icon is from Icons8.
Copyright 2017 Kaushik N. Sanji
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.