moved Kajongg from playground to kdereview
wolfgang at rohdewald.de
Sat Feb 13 22:38:04 GMT 2010
I just moved Kajongg to kdereview, aiming to get it into
KDE core kdegames 4.5
Kajongg implements the traditional game of Mah Jong played by four
It has two modes: You can play against the computer or against other
over the net, or you play as usual and only use Kajongg for computing
Computing scores is a rather tricky aspect of Mah Jong so I
expect users who mostly use this part (like myself).
A special problem of Mah Jong is that there are many different rule
worldwide, and it is absolutely normal to negotiate rules before
to play. I have good support for customized ruleset definitions. A
player starting a new table on the game server defines the ruleset to
be played on that table. Still missing: The other players need a diff
function to see which of their own rulesets matches the table ruleset
most closely and what differences there are between any two rulesets.
I wrote an extensive english user manual (docbook), and I translated
into German. Others translated around 100% to Ukrainian, Swedish,
The user manual however does not explain the gaming rules. Please look
them up at Wikipedia. Or try kajongg.py --automode, start a new game
(CTRL-P), login to localhost, select a ruleset, press Start in the
list. Now 4 computer players are playing against each other. This is
quite a demo mode since the dialogs that should normally be answered
the players only flicker. I added this only for testing. But you can
some action. The winner has 4 groups of 3 or four tiles each
sequence) plus a pair of identical tiles.
There are definitively more features I want to add like voices, more
more intelligent computer players, suspend/resume of games but I think
should be enough value for KDE core.
Kajongg is a pure Python application, so many of the guidelines at
http://techbase.kde.org/Policies/SVN_Guidelines are simply not
I just tried to be a good citizen but I have no idea how good...
The game server part is able to run without KDE, it only needs
Qt4 (as my debian stable server does not offer KDE4 for
I actually could make it run without Qt4 - but see no need to do so
The client part is a normal KDE4 application, using backgrounds and
Game server and game client can of course run on the same computer,
sharing the same data base (SQLite). When simply playing against 3
players the server is started automatically.
I decided against using ggz for network gaming and used the python-
networking library instead. I hope this makes it easier to install as
python-twisted has a broad user base and a very active community.
I also mostly decided against using qt-designer, I prefer to manually
the GUI. There are currently only 2 ui files for the config menu
(background and tileset selector), similar to what KMahjongg does
(I started Kajongg by reimplementing parts of libkmahjongg in Python).
You can compare Kajongg against xmj by Julian Bradfield (OSS, GTK,
implements the computer playing part but has quite intelligent
players) or http://www.mahjongcalculation.com/index.htm (Windows
only implements the scoring part). And of course there is
http://www.4windsmj.com/ (Windows/shareware, implements both modes) -
this one implements both modes, and it is top of the art in that it
implements many different rulesets.
More information about the kde-core-devel