A graphical game of Gin Rummy. This game was created for our ECGR 2104 class as our Final Project.
The goal of the project is to develop a game where the computer (that is your
program) plays Gin rummy against a human opponent. The rules of Gin rummy are
described in the Wikipedia page https://en.wikipedia.org/wiki/Gin_rummy You can
implement any version of the game, although you are strongly encouraged to
initially work on simpler versions of the game first.
The project is done in groups of 3. The project consists of the following milestones:
- (Get familiar): Play the game manually to get a feel of the game. Remember, that unless you know how to play the game yourself, you cannot write a program that allows the computer to play the game!
- (Design): Figure out the following that you will need - 1) Classes 2) Data Structures 3) Algorithms. As an example, you could have a "Card" class to represent different suites and ranks; data structures to hold stock pile, discard pile, and player hands; and algorithms to identify melds, and deadwood.
- Implement and test each of the classes individually. Note: All your code should be organized as separate files - that is, class declarations in headers, and definitions in implementation files.
- Integrate all components and test the final game.
- Ask a friend (outside your group), to play against the computer.
Note: You may have to iterate over the milestones. For example, if the integration causes issues, it's possible you may need to revisit Milestone 2.
You are strongly encouraged to use a version control system in the project.
Version control systems are a category of software tools that help a software
team manage changes to source code over time. Version control software keeps
track of every modification to the code in a special kind of database. If a
mistake is made, developers can turn back the clock and compare earlier versions
of the code to help fix the mistake while minimizing disruption to all team members.
Here are useful links on how to use the widely used Github platform:
If you are using an IDE (Codeblocks, Netbeans etc.) use the Project features of
your IDE to organize your code.
If you are using command line (Linux, Mac), use the make utility for project management. Here's a tutorial for make http://www.math.tau.ac.il/~danha/courses/software1/make-intro.html
Project Evaluation: The project evaluation will be done through an oral exam by the Professor or TA. You will upload all your project as a .zip file on Canvas ahead of the oral exam. The signup sheets for the oral exam will be posted later.
You do NOT need have SDL libs installed. I put them in the repository for ease of use. Also you must be on a Windows OS, because all the DLLs are Window's based.
Please use <make> ./bin/make.exe
to compile the program when debugging.
You can also use <make> install
to compile the final (optimized) program.
See Installation. If you used <make> ./bin/make.exe
to compile, the program is
in the bin
directory. If you used <make> install
, then the game should automatically
run. If you want to play again, run the Play_GinRummy.exe
in the root folder
https://www.libsdl.org/
https://www.libsdl.org/download-2.0.php
https://www.libsdl.org/projects/SDL_image/
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
- Aryan Gupta
- Pichsapa Kulapruk
- Harrison Read
- https://kenney.nl/ - Assets
Because this software was created on UNCC campus, UNCC owns us. We are not sure of the details, but please visit http://legal.uncc.edu/ and http://legal.uncc.edu/policies/up-301 for more info.