Tim Liew(tmliew), John Lau(john-lau)
a) A Blackjack game for up to 3 players.
b) As a gambling enthusiast, I can play this game to practice my Blackjack skills so that I can become better at the game As a card game player, I can play this game so that I can enhance my Blackjack skills As a dealer, I can see how the game works so that I can become a more efficient dealer
c) The game runs, prompting the user for amount of players, then the game of Blackjack is instantiated. Users then take turns betting and hitting or staying to win the game. The rounds end after everyone's turn is over.
d) As a dealer, I can check end game statistics so that I can further my understanding of the game to become a better dealer As a gambling enthusiast, I can check end game statistics so that I can find out when it is better to hit or stay As a player, I can play with others online so that I can get a real world experience of playing Blackjack
e) The README has a screenshot of an instance of the game, a very short description, and a section for recent changes, as well as a section for possible improvements. While these are all necessary, what could be further expanded on is running the game, and other screenshots, as there were many other prompts before actually entering the game of Blackjack. It could also have a section for current features so that there is a clear understanding of what exactly is implemented.
f) The comments in the build.xml file could be a bit more specific. Some of the comments are only 1 or 2 words and don't really tell the user what that block of code is doing, and why it is doing it. For example, the "images" target is a little ambigious and may not be needed.
g) There are currently 6 open issues, many of them asking for addiotional features. Looking at the issues on the github, even though someone says that it has been "done" but it clearly is not reflected when the program is run. Thus, there should be enough issues right now to fix/add.
g) 1.The game allows you to continue placing bets after you've already lost. #23 2.The game doesn't stop you when you get to 0, it just goes negative. #24 3.The betting window could be put in the same frame as the actual game window, to make things easier to see and to manage while playing the game. Also, the GUI could be more concise and user friendly. (Related issue along the lines of the first issue stated)
h) The code is organized quite well, the methods make sense, with appropriate comments. The classes also make a lot of sense with little ambiguity. Their relationships are clear and are just as expected, for example: the class Blackjack, which instantiates a deck, which consists of card objects. The deck is an Arraylist of cards, and a hand is also an Arraylist of cards except for each player. There are also @param tags when necessary, and across the board the code has followed normal conventions. I would show the programmer a class diagram or the Blackjack class to get up to speed. The classes make sense and their relationships are clear based on how they are named and used.
i) The test coverage covers every class, as there is a test class for each class, for example, Blackjack has BlackjackTest and Deck has DeckTest. In the test cases, there are many tests or many scenarios already in place. For the most part there are only a few tests for some of the classes while other classes only have three test cases for each scenario, so I think there are many opportunities in each class to add additional test cases. For Deck.java there are only two test cases, so that is an area we would start adding more test coverage.
Issues to work on: 1)Fixing logic issues, such as money going into the negatives, end the game for a user when necessary like when they are out of money. 2)Fixing the GUI, it's a little slow and unintuitive because there are a lot of instances when new windows open and it can make the overall experience confusing 3)Option to leave the game in the middle of a game. 4)Networking between across instances of the game for different computers. 5)Complete splitting a hand (seems like it has been started according to the issues on the repo) 6)More animations