开发者

How to implement a Mahjong game?

开发者 https://www.devze.com 2023-01-23 05:44 出处:网络
Mahjong is one of the most popular games in Asia (not the solitaire style found in Windows 7).There were plenty of Mahjong games out there including online ones from Yahoo or offline ones back in the

Mahjong is one of the most popular games in Asia (not the solitaire style found in Windows 7). There were plenty of Mahjong games out there including online ones from Yahoo or offline ones back in the DOS days!

Just another day I was thinking to myself, how can I write one (excluding the GUI)?

The data modeling part is easy.

The winning and scoring rules are... pattern matching?

The strategic part of the game, such as determining which tile to throw out and when to make the Chow or Pong moves are the most difficult part. How to implement this?

Thanks!

Research:

  • A demo of Mahjong (japanese style) : http://www.nobleflash.com/game/4495/Japanese-Mahjong.html
  • http://www.ninedragons.com/ - a Mah Jong game I used to play, its scoring system: 开发者_Go百科http://www.ninedragons.com/mahjong/scoring2.html
  • function language fits better? In what way? Is F# a good language for card game AI?
  • AI Mahjong - http://www.stanford.edu/class/cs229/proj2009/Loh.pdf


Read this

http://homepage.mac.com/s_lott/books/python/html/p05/p05c05_mahjongg.html

It might help.

"determining which tile to throw out" is actually pretty straight-forward. Given the discards and the nature of the hand, defining a "ready" hand is a matter of determine which potential sets have the most available (non-discarded, not in-play) tiles.

Each tile belongs to one of several possible patterns (pair, up to 3 chows, pung, kong). It's easy to compute the tiles required to fill the pattern. It's easy to reduce the counts of possible tiles based on what's played and what's exposed. The resulting possible patterns can be ranked. Discards are picked from the most-difficult-to-fill combinations.

[See this http://www.amazon.com/Mah-Jong-Handbook-Play-Score/dp/0804838747]

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号