Code Monkey home page Code Monkey logo

bowling-scoring's Introduction

Bowling-Scoring

Bowling scoring app for the Google Android Basics Nanodegree

The assignment for Project 2 of the Google Android Basics Nanodegree by Udacity was to create a scorekeeping app for a sport of our choice, with a number of requirements such as including two players, and tracking multiple scores. Since I wanted a challenge, I decided to focus on a sport that's more difficult to keep score for. Initially, I settled on Snooker, due to its somewhat complex scoring system, but eventually gave up on that due to my lack of passion for the sport and seemingly difficult structure of the game since I wanted to include the automatic player switch logic.

As such, I picked a sport I actually like, which has complicated scoring that I hadn't previously fully understood, and set out to create an app to track its score. The sport is, obviously, bowling, and I started with a rough paper sketch and some features I wanted to include, as well as some code scribbled on paper as well regarding the functionality of scoring a game that calculates score based on future moves, without simply hardcoding all the possibilities. I did this using an array, and recursively stepping back through it, remembering the appropriate scores and adding them in case a strike or spare is detected.

From there, I moved on to mocking up the app, then printing it out and figuring how to lay everything out in XML. I used LinearLayouts nesting other LinearLayouts and RelativeLayouts, and tried making everything work using weights but eventually gave up and just hard coded some values. Certain parts work as intended, and scale down on tiny screens (top logo disappears entirely), but others do not, and it's beyond the scope of this project to improve this, since I am not allowed to use a ConstraintLayout.

Please try out the app and report any bugs.

It's been tough, making this rather simple app, with a lot of bugs to fix and logical structures to figure out, but I've learned a lot and I'd like to especially thank @Thor from the Udacity slack for helping with the Drawables vector and respective java code.

Features I'd like to implement: Please see the Issues section

Known issues:

  • layout is a bit of a mess
  • bottom buttons are too low on tiny screens
  • app cannot make you better at bowling :)

You can see the design mockup below:

design mockup

bowling-scoring's People

Contributors

adriantache avatar colemclark1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.