GithubHelp home page GithubHelp logo

cs56-games-dealer's People

Contributors

acantor avatar adiltruong avatar ashedden avatar athielk avatar eric-xiao8 avatar hannavigil avatar jcneally avatar kbielaski avatar kjorg50 avatar kpoon1 avatar mastergberry avatar seemantasaha avatar sungkiwan avatar ttstarck avatar yunsuk avatar

Watchers

 avatar  avatar  avatar  avatar

cs56-games-dealer's Issues

Fix buttons in GUI

After winning or losing a game, the stand and hit button should be disabled in the GUI version of the game.

Add a bet system

Add a bet system that is applicable for BlackJack game.
It would be great if the bet system could also be applicable for future card games.

Refactoring code to apply design pattern like MVC

The project code structure should be changed applying MVC pattern so that game data model, logic and user interface get separated. I am not imposing to apply MVC pattern rather research about it which pattern would be better to apply consider issue #51

Add a Leaderboard System to Blackjack Game

Create leaderboard system to keep track of progresses and display top 5 scores at the beginning of run or corner of GUI. Display "New High Score" if new top score is reached.

Readme improvement

Add more instructions on how to use the app. Add some screenshots.

75 points

Implement a better shuffling algorithm

The current method of shuffling the cards is through random swapping.
Have the cards randomly assigned a place in the deck, or better yet, do research on how existing videogame shuffling algorithms work and implement a form of that.

~estimated 100 points

Improve the GUI of the game BlackJack

For example,

  1. Add a background image to the game.
  2. Make the hit and stand button more reasonable (smaller and add some space between them)
  3. Improve the win/lose message, so that the whole game won't move left / or right when the message shows up and disappear.

It would be very hard since we used the GridBagLayout, which is not teach in class. You may want to consider to use other Layout Manager.

What happens when the whole deck is dealt?

Right now the dealer continues to ask if you want more cards, even when all 52 cards have been dealt. Only once you have selected all 52 cards and then answer n to the prompt Do you want to continue? (y/n) does it tell you that there are no more cards in the deck. If you select y even when you have all 52 cards, the dealer still keeps going, but this doesn't really make sense.

Make a smarter dealer that knows when the deck is out of cards. For example, it could output something like "No cards left" or "All the cards are gone!" when whole deck is dealt, regardless of whether the user wants to continue or not. Then you can prompt the user if they want to start a new hand, and the deck will be reset.

~estimated 50

Keep track of cards in the deck

If I have a deck of 52 unique cards and I draw 5, I shouldn't see those cards again if I draw more cards.
Keep track of the cards that are being handed out to the user, the number of cards left in the deck and which ones they are.

~estimated 200 points

Separate the main for Object Oriented Design

Right now the code has only one java file where everything is defined and run; this isn't a good object oriented design. Create a 'Deck.java' class that has all the functionality of a deck of cards, and move the appropriate code from the first class into that one.
It would also be helpful to redefine the way the cards are expressed (literally writing out "10 of Clubs" to the screen instead of "TC").

~estimated 300 points

Ability to deal two hands at a time

  • Create the ability to deal two hands at a time.
  • Make sure there are no duplicate cards in each of the hands.
  • Both hands should have the same number of cards.

150 points

Handle incorrect inputs

Currently, dealer app does not handle incorrect input well for both CLI and GUI.

For example:

  • both interfaces throws error when asked to deal more than 54 cards combined or asked to deal 0 hand for any players
  • GUI does not handle num. player < 1 (throws error), and forces num. player to be 10 when > 10.
  • CLI forces num. player to be 1 when < 1.

Instead of crashing, it should print error message (not stacktrace) and instruct user to input correct number. Also, it should not allow more than 54 (or total number of cards) players IF the game does not allow dealing 0 hands.

200 points

User interface delay and game sounds

It takes time to appear the game screen when you select a particular game. -> It's a trade off between game sounds and delay in appearing screen. Partially solved in #55

Javadoc clean up

Remove all error and warning messages when building javadoc.

Add all missing javadocs. Some classes (like GameDealerPanel) is missing javadocs for its functions.

100 points

javadoc to Github

Host the javadoc on github by adding the javadoc to a gh-pages branch.

make a card class

only really makes sense if you plan to do #17 but would make adding games easier.

Create a GUI

  • The GUI must have all of the functionality of the command line program

300 points

Improve card shuffling

  • Include a fitting sound that plays as the cards are being shuffled.
  • Also include a time delay to make the shuffling seem more realistic.

300 points

Enhancing the user interface

Current user interface is very simple and user unfriendly. It takes time to appear the game screen when you select a particular game. After selecting a game user can not quit and go back to the main screen. There are lots of other scopes to improve. The description will be updated as the updating process of UI progresses and points for this issue would be 300~500.

Remove dead code

Remove all code that is currently not used. (Commented code. Duplicate classes)

50 points

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.