Jattsi
An implementation of the game Yahtzee, using the rules found on the norwegian wikipedia-article about the game. The name comes from how the author would pronounce it in norwegian.
System requirements
- A java runtime environment version 7 or later
Download
File | Jattsi-2_1_1.zip (67KiB) |
---|---|
Release | 2.1.1, |
MD5-Sum | 64555a1fe74b10044cbc8e9b32cca677 |
SHA1-Sum | 259e6dad7bf07c99ddd1f6a4c275cf5e787ff25b |
SHA256-Sum | 9c226f8395df6ce814d240754cd0465a181552b02bfcf0c3189d744503071aa3 |
GPG Signature | Jattsi-2_1_1.zip.sig |
Languages
- English
- German
- Norwegian Nynorsk
- Norwegian Bokmål
Features
- AI Players
- Arbitrary number of human players utilizing the same computer (Hot-Seat)
- Loading and saving of games
Missing Features
Things that might be implemented in later versions
- Internet play
- A difficult AI
- Pictures of the dice
Known bugs
- If you have a small screen and add many players, the game might become bigger than your screen
- Some dialogs and buttons are not fully localized
- My german skills are rusty, so the german translation is not finished, and probably not very good.
Design
The current design is shown in the following UML diagrams.
Version 2.1.0
I’ve been fixing some bugs, and making the interface look a bit better. Under the hood I’ve also done some refactoring, either because I’ve learned something in the meantime, or because of new things in Java.
A moderately difficult AI has been added. Whereas the easy one just rolls the dice three times and then puts the score in the next free place, the moderately difficult one holds the dice to maximise the amount of points it gets. It still just puts the score in the next free place.
I’m thinking of adding a difficult AI later, one that searches for which score to use, but I need to read up on probability first. The function to choose score will probably be Maximum points available * Probability of getting the score.
If you want, you can now choose that you have to take the points in order (ones first, then twos, then threes, and so on).
There is a regression in this version, in that the window is not resized properly when you start a new game. It will be fixed in version 2.1.1.
Version 2.0.0
I’ve been doing some reading and coding since the first version, so I think I’ve managed to do it better this time around. There are still issues with it, however. The GUI is still not as good as I would like, and the AI could be more intelligent.
The current AI is rather stupid, and works like this:
StupidSequentialAI:
While dice can be rolled
Roll dice
For each possible place to record a score
If no score has been recorded here
Record score here
Return
Tools Used
Ant, ArgoUML, Gimp, Git, GNU Emacs, Java J2SE 1.7.0, JUnit