The other thing is that this implementation doesn't seem to support overlapping tiles, which is kind of important. For instance, the topmost tile should overlap and block all four tiles under it.
No.
According to wikipedia[1]: "A tile is said to be open or exposed if it can be moved either left or right without disturbing other tiles.". Also look at the photo in the wikipedia article[2]. This implementation looks correct to me.
[1]: https://en.wikipedia.org/wiki/Mahjong_solitaire
[2]: https://en.wikipedia.org/wiki/Mahjong_solitaire#/media/File:...
Impressive work!
Discussion: https://news.ycombinator.com/item?id=44100148
Which makes me wonder which ruleset would be the easiest to implement. Probably MCR or HK, riichi has too many edge cases and sepcial rules and yakus.
Instead, it is some solitaire using mahjong pieces.
https://en.wikipedia.org/wiki/Mahjong
Beautifully made though.
What I liked about the first one I saw in the 80s was the cascading shadows. Admittedly they were more important for 2d version
slowly lowers right hand in awkward silence
Back in college, while majoring in CS, I had a rough time dealing with semicolons, typos, missed characters while coding.
I thought to myself "I wonder if playing Mahjong in the Windows games would help me get better at scanning code and finding these types of errors". So I tried it and, lo and behold, it did.
Also, in this day and age of LLMs writing a lot of the code, scanning for missing semicolons in code sounds like "I was great at fixing telegraphs!"