Update 10.0.3

Hi All Mah Jongg fans,

I am about to release an important required update as soon as I can. I found and fixed several important bugs recently. Fixes in this version include:

  • Fix for training/demo not working in “No Internet” Mode
  • Fix for sometimes not being able to call Mah Jongg when you draw it
  • Update to make longer names fit
  • Update adds clock and elapsed game time displays
  • Fix for discarded joker being shown as some other tile
  • Fix for Warn MahJongg setting not being recognized

Also upgrading to the latest new Godot game engine, 4.5.1.

I am also requiring this upgrade because some users still are using an older version that can overwrite other user’s status files.

Known bugs that might not be fixed:

  • Rarely might say you have Mah Jongg when you don’t
  • Ranking for new Max Score logic and quint probability adjustment might need to be adjusted (work in progress)

Sorry for the problems an required updates.

John

Game Statistics

I posted a printable pdf version here. (Slightly updated on 13 Oct 2025)

Hi Mah Jongg Fans. I posted this JLMahJongg example NMJL 2025 card win completion display in two Mah Jongg Facebook groups:

The above result was for a limited number of games where I was playing against 3 computer players and following the AI-recommended hands. I had noticed the 2468, Line 4 gets recommended by the AI an annoying number of times. The above result is consistent with that, but is not enough random samples to give accurate results. Someone in another Facebook group made the same observation about 2468, line 4. I apologize to anyone who wants to call it a hand instead of a line. I distinguish a hand from a line. I call a hand a specific unique pattern of 14 tiles defined by one of the patterns on a line.

Several group members commented on the lack of enough data, but seemed interested in the results. I decided to use the demo feature of JLMahJongg to generate more meaningful statistics by playing games with 4 computer players (CPs or bots) playing against each other. I removed all delays so games are completed quickly.

I had the CPs play 5000 games and recorded all the results. This is called a Monte Carlo technique for generating statistics from a simulation. I also wrote a program to process the data and generate the statistics. The results are given in the following figures:

In the above charts, a higher win percentage means it was easier for the computer players to win with that Line. Note that these results depend on how the AI logic tells the computer players to play. In JLMahJongg, the logic calculates the approximate winning probability (odds) for each hand. These odds are not exact, but are good enough to make the pro-level computer players difficult to beat. However, not all available information to a player is considered in calculating the odds. For example, you know any specific tiles you see during the Charleston are no longer in the wall. The ideal best-hand odds depend on this. JLMahJongg does not include Charleston observations in its odds calculations, but could, and may in the future.

The total number of wins is not 5000 because the other 496 are wall games.

The results show 2468, line 4 and Consecutive run, lines 2 and 4 are all significantly easier (for the Computer players), with about 10% of the wins each. Your results may vary. Another note: the AI currently chooses hands based on maximizing the odds of winning. This is not the same as maximizing your total average score. To maximize total average score, the hand selection criteria need to consider harder hands can result in higher scores. Pro players consider this and play harder, higher-scoring hands if their specific tiles make the odds of winning high enough. I plan to add this as a characteristic of the “Pro” computer players in the future. Maximizing win probability instead of score is part of why the “Singles and Pairs” and some of the other harder hands are never chosen in this analysis.

Below is a video showing how the JLMahJongg Demo/Tutorial/Testing mode generates data for statistics. The game goes to the highest speed at the end when I mute the voices (Press the V key). Due to file upload size limits on the server, I could only show a very short clip.

Reasons Some Lines are Easier:

  1. Use of Flowers. There are 8 flowers and only 4 of other tiles, except jokers. A set with 3 or more flowers is easier to make because it can use 8 flowers and 8 jokers. However, flowers are the most-used tile in hands overall, so their odds of being discarded by players is lower.
  2. Sets of 3 tend to be easier to make. Singles and pairs are harder because you can’t call, except for Mah Jongg and can’t use jokers. Sets of 4 (Kongs) are harder because it is harder to get all 4 of 4 tiles. Quints are even harder because you need at least 1 joker too.
  3. Some lines define more unique hands than others (see above charts). The more hands that are represented, the easier it tends to be to make a hand from that line. That is why the consecutive run hands tend to be easier; they represent many different specific hands.
  4. Concealed (Closed) hands will be harder because you can’t call, except for Mah Jongg. Note that all Singles and Pairs hands are concealed because you can’t call for a single or pair except for Mah Jongg. The NMJL singles and pairs hand values are not doubled for jokerless – they are “pre-doubled” because they all must be jokerless.

The above charts are sorted by win % below:

Update 10.0.1 Now Available

JLMahJongg update 10.0.1 is now available for all devices. The Microsoft store version of windows is not updated yet, but I will update soon. If you want the latest update for Windows, you can download it from this website.

This update includes graphics enhancements, win history, and card completions features. Also more bug fixes. I will be releasing another update soon that should fix another bug I am working on (Can sometimes, rarely, say a player has Mah Jongg, when they don’t).

Update 10.0.1 Coming Soon

This 10.0.1 update is available now for Windows and in the online browser option A. The main new feature is skill rating feedback. Based on how many games you play and how skilled your opponents are, a skill rating is calculated between 0 and 10. 0 is beginner and 10 is pro. Everyone will start out at 0 until they win some games. A color “belt” rating is also given: white, yellow, green, blue, red, or black. If you could get an actual belt, here is what it would look like:

I am considering adding an option for Siamese play (2 players each play 2 racks). Let us know if you would like this feature. If enough people say the want it, we will consider adding it.

Thanks Again,

John & Lisa

Updates for Version 10.0.1

Hi all! An exciting JLMahJongg update coming in version 10.0.1. I’m adding a new feature to give you feedback on your skill level. Players will be rated by how many wins they get against players with a particular skill level. To get to the highest level (Black Belt), you will need to win against the pro computer players without using AI help. The skill levels are based on my favorite martial art, Tae Kwon Do, color belts: White, Yellow, Green, Blue, Red, and Black. There will also be a numerical rating between zero and ten.

Note that the skill rating should also work for the many who use the guest accounts. The rating is calculated and stored locally on each device based on the games played on that device. The rating posted for others to see will be the rating for the last person who used the particular guest account.

If you play against other real players, the skill rating will take into account the skill rating(s) of the other real players.

There are also other updates for version 10.x.x.

  1. The tiles have had a minor makeover
  2. Updated to Godot Engine 4.5
  3. Removed unused network options (smaller and faster)
  4. More bug fixes
  5. Display improvements for smaller devices

The new tiles are already available in version 10.0.0 that is now available in the Windows, Android, and Online Browser versions.

JLMahJongg Update 9.9.9

This update is now available for all devices. It fixes what happens if you are called dead – the other players continue playing without you. If you are dead and want to stop, select quit from the menu.

Also some display updates and minor bug fixes.

A new feature is tracking and display of your winning hand history and your number of wins for each line of a card you use.

The Pro computer players may now actively try to get a “Finesse” Mah Jongg. A Finesse is now defined as stealing any Joker just before calling Mah Jongg and scores double from all players.

John & Lisa

Update 9.9.8

I have released update 9.9.8 that is available now for Windows and Apple. I will update Android soon. This update makes the app work better if your device blocks JLMahJongg access to our website. One user with an iPad had this problem. I tried to make it so you can still use the free card included with JLMahJongg. The app requires access to the website to enable use of the NMJL card data (2025).

Also, I removed general access to the custom tiles feature because there was little interest and too much room for causing trouble by using copyrighted images without permission. If you do want to design your own tiles and use them in JLMahJongg, contact us and we will work with you to make that possible.

Critical Review Response

Thank you to the person who left the scathing anonomous review on Apple App Store. I have been wanting feedback to help make JLMahJongg better. I suspect you may be a developer of one of the competing options. Part of the reason JLMahJongg looks dated it uses the Godot 2D engine with its origins in the 80’s. Also, I have been developing game apps since the 70’s, so maybe 80’s does not look so bad to me. I also developed user interfaces for military equipment and wonder if those now look “Modern”, like XBox games.

But I actually decided to use the 2D graphics for a number of reasons. As Einstein said: “Everything should be made as simple as possible, but no simpler.” The MahJongg game does not really require 2D graphics. The main element in the game is the tiles. Originally was going to make 3D tiles and a 3D table, but decided that would only make it harder to read and use on a smaller display. The 3D MahJongg games I have tried prove to me that is true. Those games also do not feel like a real American Mah Jongg game. I wonder if the developers every played an American Mah Jongg Game in Real Life.

I am biased, obviously, but I like the tiles I designed. If you don’t like them, you can easily change to the standard tiles. The JLMahJongg standard tiles are better than any of the other tiles I have seen in other apps. Not as good as some of the designer sets, but I was unable to get permission to used those. Also, If you don’t like the voices, you can turn them off or record your own voices.

Anyway, thanks for the feedback and I will continue to try to make the graphics, interface, and features better. Hopefully someone will eventually want to use our app. If not, Lisa and I like it and that is what matters the most.

John & Lisa

P.S. Some important aspects of the app can’t be seen. JLMahJongg uses detailed calculation of the odds of winning each possible hand to drive the Computer Players (CP or Bots) play. You can see the odds when you view the recommeded hands. I have not seen any other app do this. You can learn by watching the best play possible when competing against our Bots at the Pro level. I had to make easier levels because it was too hard to win against the Pro bots. Also, our main display is similar to Real MahJong because it is optimized for easiest American Mah Jongg play.

For any iPad or iPhone Users

Update 9.9.7 fixes a problem if you quit and try to restart. The app will hang at the next game point where you can stop the Charleston. It was trying to stop the game instead of just the Charleston. This update is currently being reviewed by Apple.

This only affects iOS devices because iOS does not let an app quit (there is no quit function) iOS apps can only be stopped by the user. (Swipe up from the bottom edge, then over to the right, and swipe the app off the display). Apple intends for apps to remain running after they are started. When apps are minimized, they do not use many resouces.