├── README.PACKAGERS ├── logo.png ├── doc ├── config.png ├── highscore.png ├── numbered.png ├── boardeditor.png ├── gamescreen.png ├── config_layout.png ├── config_tiles.png ├── config_background.png └── CMakeLists.txt ├── sounds ├── tile-remove.ogg ├── tile-touch.ogg └── tile-fall-board.ogg ├── icons ├── 16-apps-kmahjongg.png ├── 22-apps-kmahjongg.png ├── 32-apps-kmahjongg.png ├── 48-apps-kmahjongg.png ├── 64-apps-kmahjongg.png ├── 128-apps-kmahjongg.png ├── sc-apps-kmahjongg.svgz └── CMakeLists.txt ├── .flatpak-manifest.json.license ├── po ├── ca │ └── docs │ │ └── kmahjongg │ │ ├── config.png │ │ ├── numbered.png │ │ ├── config_tiles.png │ │ ├── gamescreen.png │ │ ├── config_layout.png │ │ └── config_background.png ├── de │ └── docs │ │ └── kmahjongg │ │ ├── config.png │ │ ├── highscore.png │ │ ├── numbered.png │ │ ├── shortcuts.png │ │ ├── config_tiles.png │ │ ├── gamescreen.png │ │ ├── config_layout.png │ │ └── config_background.png ├── fr │ └── docs │ │ └── kmahjongg │ │ ├── config.png │ │ ├── highscore.png │ │ ├── numbered.png │ │ ├── shortcuts.png │ │ ├── config_tiles.png │ │ ├── gamescreen.png │ │ ├── config_layout.png │ │ └── config_background.png ├── lt │ └── docs │ │ └── kmahjongg │ │ ├── config.png │ │ ├── highscore.png │ │ ├── numbered.png │ │ ├── shortcuts.png │ │ ├── config_tiles.png │ │ ├── gamescreen.png │ │ ├── config_layout.png │ │ └── config_background.png ├── pl │ └── docs │ │ └── kmahjongg │ │ ├── config.png │ │ ├── highscore.png │ │ ├── numbered.png │ │ ├── shortcuts.png │ │ ├── config_tiles.png │ │ ├── gamescreen.png │ │ ├── config_layout.png │ │ └── config_background.png ├── sv │ └── docs │ │ └── kmahjongg │ │ ├── config.png │ │ ├── highscore.png │ │ ├── numbered.png │ │ ├── shortcuts.png │ │ ├── boardeditor.png │ │ ├── gamescreen.png │ │ └── showremoved.png └── uk │ └── docs │ └── kmahjongg │ ├── config.png │ ├── highscore.png │ ├── numbered.png │ ├── boardeditor.png │ ├── config_tiles.png │ ├── gamescreen.png │ ├── config_layout.png │ └── config_background.png ├── CMakePresets.json.license ├── Messages.sh ├── src ├── kmahjongg.qrc ├── prefs.kcfgc ├── kmahjongglayout.h ├── kmahjongglayoutselector.h ├── gamebackground.cpp ├── settings.ui ├── frameimage.h ├── kmahjongg.kcfg ├── CMakeLists.txt ├── kmtypes.h ├── gamebackground.h ├── movelistanimation.h ├── demoanimation.h ├── boardlayout.h ├── movelistanimation.cpp ├── selectionanimation.h ├── selectionanimation.cpp ├── demoanimation.cpp ├── editor.h └── main.cpp ├── Mainpage.dox ├── .gitignore ├── layouts ├── CMakeLists.txt ├── crab.layout ├── castle.layout ├── dragon.layout ├── spider.layout ├── cat.layout ├── Vi.layout ├── alien.layout ├── altar.layout ├── arena.layout ├── arrow.layout ├── aztec.layout ├── bat.layout ├── bug.layout ├── chip.layout ├── clubs.layout ├── cross.layout ├── eagle.layout ├── girl.layout ├── glade.layout ├── grid.layout ├── hole.layout ├── key.layout ├── km.layout ├── mask.layout ├── maya.layout ├── maze.layout ├── mesh.layout ├── moth.layout ├── order.layout ├── penta.layout ├── star.layout ├── stax.layout ├── swirl.layout ├── tomb.layout ├── totem.layout ├── well.layout ├── 4_winds.layout ├── X_shaped.layout ├── atlantis.layout ├── balance.layout ├── castle2.layout ├── chains.layout ├── checkered.layout ├── columns.layout ├── enterprise.layout ├── explosion.layout ├── flowers.layout ├── future.layout ├── galaxy.layout ├── garden.layout ├── helios.layout ├── labyrinth.layout └── pattern.layout ├── .gitlab-ci.yml ├── .kde-ci.yml ├── .flatpak-manifest.json ├── LICENSES └── BSD-3-Clause.txt ├── CMakeLists.txt └── .clang-format /README.PACKAGERS: -------------------------------------------------------------------------------- 1 | MINIMAL 2 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/logo.png -------------------------------------------------------------------------------- /doc/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/doc/config.png -------------------------------------------------------------------------------- /doc/highscore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/doc/highscore.png -------------------------------------------------------------------------------- /doc/numbered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/doc/numbered.png -------------------------------------------------------------------------------- /doc/boardeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/doc/boardeditor.png -------------------------------------------------------------------------------- /doc/gamescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/doc/gamescreen.png -------------------------------------------------------------------------------- /doc/config_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/doc/config_layout.png -------------------------------------------------------------------------------- /doc/config_tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/doc/config_tiles.png -------------------------------------------------------------------------------- /sounds/tile-remove.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/sounds/tile-remove.ogg -------------------------------------------------------------------------------- /sounds/tile-touch.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/sounds/tile-touch.ogg -------------------------------------------------------------------------------- /doc/config_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/doc/config_background.png -------------------------------------------------------------------------------- /icons/16-apps-kmahjongg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/icons/16-apps-kmahjongg.png -------------------------------------------------------------------------------- /icons/22-apps-kmahjongg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/icons/22-apps-kmahjongg.png -------------------------------------------------------------------------------- /icons/32-apps-kmahjongg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/icons/32-apps-kmahjongg.png -------------------------------------------------------------------------------- /icons/48-apps-kmahjongg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/icons/48-apps-kmahjongg.png -------------------------------------------------------------------------------- /icons/64-apps-kmahjongg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/icons/64-apps-kmahjongg.png -------------------------------------------------------------------------------- /sounds/tile-fall-board.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/sounds/tile-fall-board.ogg -------------------------------------------------------------------------------- /.flatpak-manifest.json.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | -------------------------------------------------------------------------------- /icons/128-apps-kmahjongg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/icons/128-apps-kmahjongg.png -------------------------------------------------------------------------------- /icons/sc-apps-kmahjongg.svgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/icons/sc-apps-kmahjongg.svgz -------------------------------------------------------------------------------- /po/ca/docs/kmahjongg/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/ca/docs/kmahjongg/config.png -------------------------------------------------------------------------------- /po/de/docs/kmahjongg/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/de/docs/kmahjongg/config.png -------------------------------------------------------------------------------- /po/fr/docs/kmahjongg/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/fr/docs/kmahjongg/config.png -------------------------------------------------------------------------------- /po/lt/docs/kmahjongg/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/lt/docs/kmahjongg/config.png -------------------------------------------------------------------------------- /po/pl/docs/kmahjongg/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/pl/docs/kmahjongg/config.png -------------------------------------------------------------------------------- /po/sv/docs/kmahjongg/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/sv/docs/kmahjongg/config.png -------------------------------------------------------------------------------- /po/uk/docs/kmahjongg/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/uk/docs/kmahjongg/config.png -------------------------------------------------------------------------------- /po/ca/docs/kmahjongg/numbered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/ca/docs/kmahjongg/numbered.png -------------------------------------------------------------------------------- /po/de/docs/kmahjongg/highscore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/de/docs/kmahjongg/highscore.png -------------------------------------------------------------------------------- /po/de/docs/kmahjongg/numbered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/de/docs/kmahjongg/numbered.png -------------------------------------------------------------------------------- /po/de/docs/kmahjongg/shortcuts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/de/docs/kmahjongg/shortcuts.png -------------------------------------------------------------------------------- /po/fr/docs/kmahjongg/highscore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/fr/docs/kmahjongg/highscore.png -------------------------------------------------------------------------------- /po/fr/docs/kmahjongg/numbered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/fr/docs/kmahjongg/numbered.png -------------------------------------------------------------------------------- /po/fr/docs/kmahjongg/shortcuts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/fr/docs/kmahjongg/shortcuts.png -------------------------------------------------------------------------------- /po/lt/docs/kmahjongg/highscore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/lt/docs/kmahjongg/highscore.png -------------------------------------------------------------------------------- /po/lt/docs/kmahjongg/numbered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/lt/docs/kmahjongg/numbered.png -------------------------------------------------------------------------------- /po/lt/docs/kmahjongg/shortcuts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/lt/docs/kmahjongg/shortcuts.png -------------------------------------------------------------------------------- /po/pl/docs/kmahjongg/highscore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/pl/docs/kmahjongg/highscore.png -------------------------------------------------------------------------------- /po/pl/docs/kmahjongg/numbered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/pl/docs/kmahjongg/numbered.png -------------------------------------------------------------------------------- /po/pl/docs/kmahjongg/shortcuts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/pl/docs/kmahjongg/shortcuts.png -------------------------------------------------------------------------------- /po/sv/docs/kmahjongg/highscore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/sv/docs/kmahjongg/highscore.png -------------------------------------------------------------------------------- /po/sv/docs/kmahjongg/numbered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/sv/docs/kmahjongg/numbered.png -------------------------------------------------------------------------------- /po/sv/docs/kmahjongg/shortcuts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/sv/docs/kmahjongg/shortcuts.png -------------------------------------------------------------------------------- /po/uk/docs/kmahjongg/highscore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/uk/docs/kmahjongg/highscore.png -------------------------------------------------------------------------------- /po/uk/docs/kmahjongg/numbered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/uk/docs/kmahjongg/numbered.png -------------------------------------------------------------------------------- /po/ca/docs/kmahjongg/config_tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/ca/docs/kmahjongg/config_tiles.png -------------------------------------------------------------------------------- /po/ca/docs/kmahjongg/gamescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/ca/docs/kmahjongg/gamescreen.png -------------------------------------------------------------------------------- /po/de/docs/kmahjongg/config_tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/de/docs/kmahjongg/config_tiles.png -------------------------------------------------------------------------------- /po/de/docs/kmahjongg/gamescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/de/docs/kmahjongg/gamescreen.png -------------------------------------------------------------------------------- /po/fr/docs/kmahjongg/config_tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/fr/docs/kmahjongg/config_tiles.png -------------------------------------------------------------------------------- /po/fr/docs/kmahjongg/gamescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/fr/docs/kmahjongg/gamescreen.png -------------------------------------------------------------------------------- /po/lt/docs/kmahjongg/config_tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/lt/docs/kmahjongg/config_tiles.png -------------------------------------------------------------------------------- /po/lt/docs/kmahjongg/gamescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/lt/docs/kmahjongg/gamescreen.png -------------------------------------------------------------------------------- /po/pl/docs/kmahjongg/config_tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/pl/docs/kmahjongg/config_tiles.png -------------------------------------------------------------------------------- /po/pl/docs/kmahjongg/gamescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/pl/docs/kmahjongg/gamescreen.png -------------------------------------------------------------------------------- /po/sv/docs/kmahjongg/boardeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/sv/docs/kmahjongg/boardeditor.png -------------------------------------------------------------------------------- /po/sv/docs/kmahjongg/gamescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/sv/docs/kmahjongg/gamescreen.png -------------------------------------------------------------------------------- /po/sv/docs/kmahjongg/showremoved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/sv/docs/kmahjongg/showremoved.png -------------------------------------------------------------------------------- /po/uk/docs/kmahjongg/boardeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/uk/docs/kmahjongg/boardeditor.png -------------------------------------------------------------------------------- /po/uk/docs/kmahjongg/config_tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/uk/docs/kmahjongg/config_tiles.png -------------------------------------------------------------------------------- /po/uk/docs/kmahjongg/gamescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/uk/docs/kmahjongg/gamescreen.png -------------------------------------------------------------------------------- /po/ca/docs/kmahjongg/config_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/ca/docs/kmahjongg/config_layout.png -------------------------------------------------------------------------------- /po/de/docs/kmahjongg/config_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/de/docs/kmahjongg/config_layout.png -------------------------------------------------------------------------------- /po/fr/docs/kmahjongg/config_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/fr/docs/kmahjongg/config_layout.png -------------------------------------------------------------------------------- /po/lt/docs/kmahjongg/config_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/lt/docs/kmahjongg/config_layout.png -------------------------------------------------------------------------------- /po/pl/docs/kmahjongg/config_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/pl/docs/kmahjongg/config_layout.png -------------------------------------------------------------------------------- /po/uk/docs/kmahjongg/config_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/uk/docs/kmahjongg/config_layout.png -------------------------------------------------------------------------------- /po/ca/docs/kmahjongg/config_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/ca/docs/kmahjongg/config_background.png -------------------------------------------------------------------------------- /po/de/docs/kmahjongg/config_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/de/docs/kmahjongg/config_background.png -------------------------------------------------------------------------------- /po/fr/docs/kmahjongg/config_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/fr/docs/kmahjongg/config_background.png -------------------------------------------------------------------------------- /po/lt/docs/kmahjongg/config_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/lt/docs/kmahjongg/config_background.png -------------------------------------------------------------------------------- /po/pl/docs/kmahjongg/config_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/pl/docs/kmahjongg/config_background.png -------------------------------------------------------------------------------- /po/uk/docs/kmahjongg/config_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kmahjongg/HEAD/po/uk/docs/kmahjongg/config_background.png -------------------------------------------------------------------------------- /CMakePresets.json.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021 Laurent Montel 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | -------------------------------------------------------------------------------- /Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $EXTRACTRC $(find . -name '*.rc' -o -name '*.ui' -o -name '*.kcfg') >> rc.cpp 3 | $XGETTEXT $(find . -name '*.cpp') -o $podir/kmahjongg.pot 4 | -------------------------------------------------------------------------------- /src/kmahjongg.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | kmahjonggui.rc 5 | 6 | 7 | -------------------------------------------------------------------------------- /doc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########### install files ############### 2 | # 3 | # 4 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kmahjongg) 5 | -------------------------------------------------------------------------------- /src/prefs.kcfgc: -------------------------------------------------------------------------------- 1 | # Code generation options for kconfig_compiler 2 | File=kmahjongg.kcfg 3 | #IncludeFiles=defines.h 4 | ClassName=Prefs 5 | Singleton=true 6 | Mutators=true 7 | #CustomAdditions=true 8 | -------------------------------------------------------------------------------- /Mainpage.dox: -------------------------------------------------------------------------------- 1 | /** @mainpage KMahjongg API Reference 2 | 3 | KMahjongg is an open-source implementation of the popular Mahjongg game written using KDE technologies. 4 | Game depends on libkmahjongg. 5 | 6 | 7 | */ 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: CC0-1.0 2 | # SPDX-FileCopyrightText: none 3 | .kdev4/ 4 | /build*/ 5 | *.kdev4 6 | CMakeLists.txt.user* 7 | .vscode 8 | .cmake/ 9 | /compile_commands.json 10 | .clangd 11 | .cache 12 | .idea 13 | /cmake-build* 14 | -------------------------------------------------------------------------------- /icons/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ecm_install_icons(ICONS 2 | 128-apps-kmahjongg.png 3 | 64-apps-kmahjongg.png 4 | 48-apps-kmahjongg.png 5 | 32-apps-kmahjongg.png 6 | 22-apps-kmahjongg.png 7 | 16-apps-kmahjongg.png 8 | sc-apps-kmahjongg.svgz 9 | DESTINATION ${KDE_INSTALL_ICONDIR} 10 | THEME hicolor) 11 | 12 | -------------------------------------------------------------------------------- /layouts/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | ########### install files ############### 3 | 4 | FILE(GLOB layoutfiles "${CMAKE_CURRENT_SOURCE_DIR}/*.layout") 5 | FILE(GLOB desktopfiles "${CMAKE_CURRENT_SOURCE_DIR}/*.desktop") 6 | INSTALL(FILES ${layoutfiles} DESTINATION ${KDE_INSTALL_DATADIR}/kmahjongg/layouts) 7 | INSTALL(FILES ${desktopfiles} DESTINATION ${KDE_INSTALL_DATADIR}/kmahjongg/layouts) 8 | 9 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | include: 5 | - project: sysadmin/ci-utilities 6 | file: 7 | - /gitlab-templates/linux-qt6.yml 8 | - /gitlab-templates/linux-qt6-next.yml 9 | - /gitlab-templates/freebsd-qt6.yml 10 | - /gitlab-templates/windows-qt6.yml 11 | - /gitlab-templates/flatpak.yml 12 | - /gitlab-templates/craft-windows-x86-64-qt6.yml 13 | - /gitlab-templates/craft-windows-appx-qt6.yml 14 | - /gitlab-templates/xml-lint.yml 15 | - /gitlab-templates/yaml-lint.yml 16 | - /gitlab-templates/documentation.yml 17 | -------------------------------------------------------------------------------- /.kde-ci.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | Dependencies: 5 | - 'on': ['Linux', 'FreeBSD', 'Windows', 'Android'] 6 | 'require': 7 | 'frameworks/extra-cmake-modules': '@latest-kf6' 8 | 'frameworks/kconfig': '@latest-kf6' 9 | 'frameworks/kcoreaddons': '@latest-kf6' 10 | 'frameworks/kcrash': '@latest-kf6' 11 | 'frameworks/kdbusaddons': '@latest-kf6' 12 | 'frameworks/kdoctools': '@latest-kf6' 13 | 'frameworks/ki18n': '@latest-kf6' 14 | 'frameworks/knewstuff': '@latest-kf6' 15 | 'frameworks/kxmlgui': '@latest-kf6' 16 | 'games/libkdegames': '@same' 17 | 'games/libkmahjongg': '@same' 18 | 19 | Options: 20 | require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows'] 21 | -------------------------------------------------------------------------------- /src/kmahjongglayout.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2007 Mauricio Piacentini 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #ifndef KMAHJONGGLAYOUT_H 8 | #define KMAHJONGGLAYOUT_H 9 | 10 | // Qt 11 | #include 12 | // Std 13 | #include 14 | 15 | class BoardLayout; 16 | 17 | class KMahjonggLayout 18 | { 19 | public: 20 | KMahjonggLayout(); 21 | ~KMahjonggLayout(); 22 | 23 | bool load(const QString & file); 24 | bool loadDefault(); 25 | QString path() const; 26 | 27 | QString name() const; 28 | QString description() const; 29 | QString authorName() const; 30 | QString authorEmailAddress() const; 31 | 32 | BoardLayout * board() const; 33 | 34 | private: 35 | QString m_fileName; 36 | 37 | QString m_name; 38 | QString m_description; 39 | QString m_authorName; 40 | QString m_authorEmailAddress; 41 | 42 | std::unique_ptr const m_board; 43 | 44 | Q_DISABLE_COPY(KMahjonggLayout) 45 | }; 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /src/kmahjongglayoutselector.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2007 Mauricio Piacentini 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #ifndef KMAHJONGGLAYOUTSELECTOR_H 8 | #define KMAHJONGGLAYOUTSELECTOR_H 9 | 10 | // KF 11 | #include 12 | // Qt 13 | #include 14 | // KMahjongg 15 | #include "ui_gametype.h" 16 | 17 | class GameView; 18 | class GameData; 19 | class GameScene; 20 | class KMahjonggLayout; 21 | 22 | class KMahjonggLayoutSelector : public QWidget, public Ui::KMahjonggLayoutSelector 23 | { 24 | Q_OBJECT 25 | public: 26 | explicit KMahjonggLayoutSelector(QWidget * parent, KConfigSkeleton * config); 27 | ~KMahjonggLayoutSelector() override; 28 | 29 | public Q_SLOTS: 30 | void layoutChanged(); 31 | void useRandomLayoutToggled(bool); 32 | 33 | private: 34 | void setupData(KConfigSkeleton * config); 35 | 36 | QHash layoutMap; 37 | GameScene * m_gameScene; 38 | GameData * m_gameData; 39 | GameView * m_gameView; 40 | }; 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /src/gamebackground.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2019 Christian Krippendorf 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | // own 8 | #include "gamebackground.h" 9 | 10 | // Qt 11 | #include 12 | #include 13 | 14 | 15 | GameBackground::GameBackground(QGraphicsObject * item) 16 | : QGraphicsObject(item) 17 | , m_width(100) 18 | , m_height(100) 19 | { 20 | } 21 | 22 | GameBackground::~GameBackground() 23 | { 24 | } 25 | 26 | void GameBackground::setSize(qreal width, qreal height) 27 | { 28 | m_width = width; 29 | m_height = height; 30 | } 31 | 32 | void GameBackground::prepareForGeometryChange() 33 | { 34 | prepareGeometryChange(); 35 | } 36 | 37 | void GameBackground::paint(QPainter *painter, const QStyleOptionGraphicsItem *, 38 | QWidget *) 39 | { 40 | painter->fillRect(QRectF(0, 0, m_width, m_height), m_background); 41 | } 42 | 43 | void GameBackground::setBackground(const QBrush & background) 44 | { 45 | m_background = background; 46 | } 47 | 48 | QRectF GameBackground::boundingRect() const 49 | { 50 | return QRectF(QPointF(0.0, 0.0), QSizeF(m_width, m_height)); 51 | } 52 | 53 | QRectF GameBackground::rect() const 54 | { 55 | return boundingRect(); 56 | } 57 | 58 | #include "moc_gamebackground.cpp" 59 | -------------------------------------------------------------------------------- /src/settings.ui: -------------------------------------------------------------------------------- 1 | 2 | Settings 3 | 4 | 5 | 6 | 0 7 | 0 8 | 350 9 | 251 10 | 11 | 12 | 13 | 14 | 15 | 16 | Blink matching tiles when first one is selected 17 | 18 | 19 | 20 | 21 | 22 | 23 | Generate solvable games 24 | 25 | 26 | 27 | 28 | 29 | 30 | Show removed tiles 31 | 32 | 33 | 34 | 35 | 36 | 37 | Qt::Vertical 38 | 39 | 40 | 41 | 161 42 | 51 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/frameimage.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 1997 Mathias Mueller 3 | SPDX-FileCopyrightText: 2006 Mauricio Piacentini 4 | 5 | SPDX-License-Identifier: GPL-2.0-or-later 6 | */ 7 | 8 | #ifndef FRAMEIMAGE_H 9 | #define FRAMEIMAGE_H 10 | 11 | // Qt 12 | #include 13 | 14 | // LibKMahjongg 15 | #include 16 | #include 17 | 18 | // KMahjongg 19 | #include "boardlayout.h" 20 | 21 | class QPixmap; 22 | class QPixmap; 23 | 24 | /** 25 | * @author Mauricio Piacentini */ 26 | class FrameImage : public QWidget 27 | { 28 | Q_OBJECT 29 | 30 | public: 31 | explicit FrameImage(QWidget * parent, const QSize & initialImageSize); 32 | ~FrameImage() override; 33 | 34 | QPixmap * getPreviewPixmap() 35 | { 36 | return m_thePixmap; 37 | } 38 | void setRect(int x, int y, int w, int h, int ss, int type); 39 | 40 | Q_SIGNALS: 41 | void mousePressed(QMouseEvent * e); 42 | void mouseMoved(QMouseEvent * e); 43 | 44 | protected: 45 | void mousePressEvent(QMouseEvent * e) override; 46 | void mouseMoveEvent(QMouseEvent * e) override; 47 | void resizeEvent(QResizeEvent * e) override; 48 | void paintEvent(QPaintEvent * pa) override; 49 | 50 | private: 51 | int m_rx; 52 | int m_ry; 53 | int m_rw; 54 | int m_rh; 55 | int m_rs; 56 | int m_rt; 57 | 58 | QPixmap * m_thePixmap; 59 | }; 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /.flatpak-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "org.kde.kmahjongg", 3 | "runtime": "org.kde.Platform", 4 | "runtime-version": "6.10", 5 | "sdk": "org.kde.Sdk", 6 | "command": "kmahjongg", 7 | "rename-icon": "kmahjongg", 8 | "finish-args": [ 9 | "--device=dri", 10 | "--share=ipc", 11 | "--socket=fallback-x11", 12 | "--socket=wayland" 13 | ], 14 | "cleanup": [ 15 | "/include", 16 | "/lib/cmake", 17 | "/share/app-info" 18 | ], 19 | "modules": [ 20 | { 21 | "name": "libkdegames", 22 | "buildsystem": "cmake-ninja", 23 | "sources": [ 24 | { 25 | "type": "git", 26 | "url": "https://invent.kde.org/games/libkdegames", 27 | "branch": "master" 28 | } 29 | ] 30 | }, 31 | { 32 | "name": "libkmahjongg", 33 | "buildsystem": "cmake-ninja", 34 | "sources": [ 35 | { 36 | "type": "git", 37 | "url": "https://invent.kde.org/games/libkmahjongg", 38 | "branch": "master" 39 | } 40 | ] 41 | }, 42 | { 43 | "name": "kmahjongg", 44 | "buildsystem": "cmake-ninja", 45 | "sources": [ 46 | { 47 | "type": "dir", 48 | "path": "." 49 | } 50 | ] 51 | } 52 | ] 53 | } 54 | -------------------------------------------------------------------------------- /LICENSES/BSD-3-Clause.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) . All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without modification, 4 | are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, 7 | this list of conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, 10 | this list of conditions and the following disclaimer in the documentation 11 | and/or other materials provided with the distribution. 12 | 13 | 3. Neither the name of the copyright holder nor the names of its contributors 14 | may be used to endorse or promote products derived from this software without 15 | specific prior written permission. 16 | 17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 23 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 24 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 25 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 26 | USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | -------------------------------------------------------------------------------- /src/kmahjongg.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 0 19 | 20 | 21 | 22 | false 23 | 24 | 25 | 26 | false 27 | 28 | 29 | 30 | true 31 | 32 | 33 | 34 | false 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ecm_setup_version(${KMAHJONGG_VERSION} 2 | VARIABLE_PREFIX KMAHJONGG 3 | VERSION_HEADER kmahjongg_version.h 4 | ) 5 | 6 | add_executable(kmahjongg) 7 | 8 | target_sources(kmahjongg PRIVATE 9 | main.cpp 10 | kmahjongg_debug.cpp 11 | kmahjongg.cpp 12 | boardlayout.cpp 13 | gamedata.cpp 14 | kmahjongglayoutselector.cpp 15 | kmahjongglayout.cpp 16 | editor.cpp 17 | frameimage.cpp 18 | gameitem.cpp 19 | gamebackground.cpp 20 | gameremovedtiles.cpp 21 | gameview.cpp 22 | gamescene.cpp 23 | selectionanimation.cpp 24 | demoanimation.cpp 25 | movelistanimation.cpp 26 | 27 | kmahjongg.qrc 28 | ) 29 | 30 | ki18n_wrap_ui(kmahjongg 31 | settings.ui 32 | gametype.ui 33 | ) 34 | 35 | ecm_qt_declare_logging_category(kmahjongg 36 | HEADER kmahjongg_debug.h 37 | IDENTIFIER KMAHJONGG_LOG 38 | CATEGORY_NAME kmahjongg 39 | OLD_CATEGORY_NAMES log_kmahjongg 40 | DESCRIPTION "KMahjongg game" 41 | EXPORT KMAHJONGG 42 | ) 43 | 44 | kconfig_add_kcfg_files(kmahjongg prefs.kcfgc) 45 | 46 | file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../icons/*-apps-kmahjongg.png") 47 | ecm_add_app_icon(kmahjongg ICONS ${ICONS_SRCS}) 48 | 49 | target_link_libraries(kmahjongg 50 | KMahjongglib6 51 | KDEGames6 52 | KF6::CoreAddons 53 | KF6::XmlGui 54 | KF6::DBusAddons 55 | KF6::Crash 56 | KF6::I18n 57 | Qt6::Gui 58 | ) 59 | 60 | install(TARGETS kmahjongg ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 61 | 62 | install(FILES kmahjongg.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) 63 | 64 | ecm_qt_install_logging_categories( 65 | EXPORT KMAHJONGG 66 | FILE kmahjongg.categories 67 | DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 68 | ) 69 | -------------------------------------------------------------------------------- /src/kmtypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 1997 Mathias Mueller 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #ifndef KMTYPES_H 8 | #define KMTYPES_H 9 | 10 | //---------------------------------------------------------- 11 | // TYPEDEFS 12 | //---------------------------------------------------------- 13 | typedef unsigned char UCHAR; 14 | typedef unsigned char BYTE; 15 | typedef unsigned short USHORT; 16 | 17 | /** 18 | * @short struct pos POSITION 19 | */ 20 | typedef struct pos 21 | { 22 | pos() 23 | : z(0) 24 | , y(0) 25 | , x(0) 26 | , f(0) 27 | { 28 | } 29 | USHORT z; 30 | USHORT y; 31 | USHORT x; 32 | USHORT f; /**< face id of the tile */ 33 | } POSITION; 34 | 35 | /** 36 | * @short struct dep DEPENDENCY 37 | */ 38 | typedef struct dep 39 | { 40 | int turn_dep[4]; /**< Turn dependencies */ 41 | int place_dep[4]; /**< Placing dependencies */ 42 | int lhs_dep[2]; /**< Left side dependencies, same level */ 43 | int rhs_dep[2]; /**< Right side dependencies, same level */ 44 | bool filled; /**< True if this tile has been placed. */ 45 | bool free; /**< True if this tile can be removed? */ 46 | } DEPENDENCY; 47 | 48 | /** 49 | * @short Tile angles for face composition 50 | */ 51 | enum TileViewAngle { 52 | NW, /**< North West */ 53 | NE, /**< North East */ 54 | SE, /**< South East */ 55 | SW /**< South West */ 56 | }; 57 | 58 | constexpr int TILE_OFFSET = 2; 59 | constexpr int TILE_CHARACTER = 0 + TILE_OFFSET; 60 | constexpr int TILE_BAMBOO = 9 + TILE_OFFSET; 61 | constexpr int TILE_ROD = 18 + TILE_OFFSET; 62 | constexpr int TILE_SEASON = 27 + TILE_OFFSET; 63 | constexpr int TILE_WIND = 31 + TILE_OFFSET; 64 | constexpr int TILE_DRAGON = 35 + TILE_OFFSET; 65 | constexpr int TILE_FLOWER = 38 + TILE_OFFSET; 66 | 67 | #endif 68 | -------------------------------------------------------------------------------- /src/gamebackground.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2019 Christian Krippendorf 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #ifndef GAMEBACKGROUND_H 8 | #define GAMEBACKGROUND_H 9 | 10 | // Qt 11 | #include 12 | #include 13 | 14 | // KMahjongg 15 | #include "kmtypes.h" 16 | 17 | 18 | /** 19 | * The background item of the kmahjongg board. 20 | * @author Christian Krippendorf 21 | */ 22 | class GameBackground : public QGraphicsObject 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | /** 28 | * Constructor 29 | * @param item The parent item 30 | */ 31 | explicit GameBackground(QGraphicsObject *item = nullptr); 32 | ~GameBackground() override; 33 | 34 | /** 35 | * Set the background 36 | * @param background The pixmap of the background 37 | */ 38 | void setBackground(const QBrush & background); 39 | 40 | /** 41 | * Overrides the paint method of QGraphicsItem 42 | */ 43 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, 44 | QWidget *widget) override; 45 | 46 | /** 47 | * Set size of element 48 | * @param width Width of element in pixels 49 | * @param height Height of element in pixels 50 | */ 51 | void setSize(qreal width, qreal height); 52 | 53 | /** 54 | * Overrides the boundingRect method of QGraphicsItem 55 | */ 56 | QRectF boundingRect() const override; 57 | 58 | /** 59 | * Returns the rect of the item 60 | * @return The rect of the item 61 | */ 62 | QRectF rect() const; 63 | 64 | /** 65 | * Called in GameView::resizeTileset() before reloading the tiles 66 | */ 67 | void prepareForGeometryChange(); 68 | 69 | private: 70 | QBrush m_background; 71 | 72 | qreal m_width; 73 | qreal m_height; 74 | }; 75 | 76 | #endif // GAMEBACKGROUND_H 77 | -------------------------------------------------------------------------------- /src/movelistanimation.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Christian Krippendorf 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #ifndef MOVELISTANIMATION_H 8 | #define MOVELISTANIMATION_H 9 | 10 | // Qt 11 | #include 12 | 13 | // KMahjongg 14 | #include "kmtypes.h" 15 | 16 | // Forward declarations... 17 | class GameData; 18 | 19 | enum class AnimationDirection { Forward, 20 | Backward }; 21 | 22 | /** 23 | * A class for a demo animation with the help of selection. 24 | * 25 | * @author Christian Krippendorf */ 26 | class MoveListAnimation : public QTimer 27 | { 28 | Q_OBJECT 29 | 30 | public: 31 | explicit MoveListAnimation(QObject * parent = nullptr); 32 | ~MoveListAnimation() override; 33 | 34 | /** 35 | * Set the animation speed in milliseconds. 36 | * 37 | * @param animationSpeed The animation speed in milliseconds. */ 38 | void setAnimationSpeed(int animationSpeed); 39 | 40 | /** 41 | * Get the animation speed in milliseconds. 42 | * 43 | * @return Get the animation speed in milliseconds. */ 44 | int getAnimationSpeed() const; 45 | 46 | /** 47 | * Override of QTimer. 48 | * 49 | * @param gameData The data object to handle with for this animation process. */ 50 | void start(GameData * gameData); 51 | 52 | /** 53 | * Override of QTimer. */ 54 | void stop(); 55 | 56 | public Q_SLOTS: 57 | 58 | Q_SIGNALS: 59 | /** 60 | * Emit to remove the given item. */ 61 | void removeItem(POSITION & stItem); 62 | 63 | /** 64 | * Emit to add the given item. */ 65 | void addItem(POSITION & stItem); 66 | 67 | private Q_SLOTS: 68 | /** 69 | * The timeout occurred. */ 70 | void timeoutOccurred(); 71 | 72 | private: 73 | int m_step; 74 | int m_animationSpeed; 75 | 76 | AnimationDirection m_direction; 77 | 78 | GameData * m_gameData; 79 | }; 80 | 81 | #endif // MOVELISTANIMATION_H 82 | -------------------------------------------------------------------------------- /src/demoanimation.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Christian Krippendorf 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #ifndef DEMOANIMATION_H 8 | #define DEMOANIMATION_H 9 | 10 | // Qt 11 | #include 12 | 13 | // KMahjongg 14 | #include "kmtypes.h" 15 | 16 | // Forward declarations... 17 | class GameData; 18 | 19 | /** 20 | * A class for a demo animation with the help of selection. 21 | * 22 | * @author Christian Krippendorf */ 23 | class DemoAnimation : public QTimer 24 | { 25 | Q_OBJECT 26 | 27 | public: 28 | explicit DemoAnimation(QObject * parent = nullptr); 29 | ~DemoAnimation() override; 30 | 31 | /** 32 | * Set the animation speed in milliseconds. 33 | * 34 | * @param animationSpeed The animation speed in milliseconds. */ 35 | void setAnimationSpeed(int animationSpeed); 36 | 37 | /** 38 | * Get the animation speed in milliseconds. 39 | * 40 | * @return Get the animation speed in milliseconds. */ 41 | int getAnimationSpeed() const; 42 | 43 | /** 44 | * Override of QTimer. 45 | * 46 | * @param gameData The data object to handle with for this animation process. */ 47 | void start(GameData * gameData); 48 | 49 | /** 50 | * Override of QTimer. */ 51 | void stop(); 52 | 53 | public Q_SLOTS: 54 | 55 | Q_SIGNALS: 56 | /** 57 | * Emits when the game is over. 58 | * 59 | * @param won True if computer won the game, else false. */ 60 | void gameOver(bool won); 61 | 62 | /** 63 | * Emit to remove the given item. */ 64 | void removeItem(POSITION & stItem); 65 | 66 | /** 67 | * Emit to set the selected state of the given item. 68 | * 69 | * @param stItem The position of the item to change the selected state. 70 | * @param selected THe item should be selected on true, else deselected. */ 71 | void changeItemSelectedState(POSITION & stItem, bool selected); 72 | 73 | private Q_SLOTS: 74 | void timeoutOccurred(); 75 | 76 | private: 77 | int m_step; 78 | int m_animationSpeed; 79 | 80 | POSITION m_stFirst; 81 | POSITION m_stSecond; 82 | 83 | GameData * m_gameData; 84 | }; 85 | 86 | #endif // DEMOANIMATION_H 87 | -------------------------------------------------------------------------------- /src/boardlayout.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 1997 Mathias Mueller 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #ifndef BOARDLAYOUT_H 8 | #define BOARDLAYOUT_H 9 | 10 | // Qt 11 | #include 12 | 13 | // KMahjongg 14 | #include "kmtypes.h" 15 | 16 | /** 17 | * @short This class implements methods for loading and manipulating board 18 | * 19 | * @author Mauricio Piacentini 20 | */ 21 | class BoardLayout 22 | { 23 | public: 24 | BoardLayout(); 25 | explicit BoardLayout(const BoardLayout & boardLayout); 26 | ~BoardLayout(); 27 | 28 | void copyBoardLayout(UCHAR * to, unsigned short & numTiles) const; 29 | bool loadBoardLayout(const QString & from); 30 | bool saveBoardLayout(const QString & where) const; 31 | UCHAR getBoardData(short z, short y, short x) const; 32 | bool tileAbove(POSITION & p) const 33 | { 34 | return (tileAbove(p.z, p.y, p.x)); 35 | } 36 | void deleteTile(POSITION & p); 37 | bool anyFilled(POSITION & p) const; 38 | bool allFilled(POSITION & p) const; 39 | void insertTile(POSITION & p); 40 | bool isTileAt(POSITION & p) const 41 | { 42 | return getBoardData(p.z, p.y, p.x) == '1'; 43 | } 44 | 45 | void clearBoardLayout(); 46 | void shiftLeft(); 47 | void shiftRight(); 48 | void shiftUp(); 49 | void shiftDown(); 50 | 51 | int getWidth() const 52 | { 53 | return m_width; 54 | } 55 | int getHeight() const 56 | { 57 | return m_height; 58 | } 59 | int getDepth() const 60 | { 61 | return m_depth; 62 | } 63 | 64 | private: 65 | bool loadBoardLayout_10(const QString & from); 66 | void setBoardData(short z, short y, short x, UCHAR value); 67 | 68 | /** 69 | * is there a tile anywhere above here (top left to bot right quarter) 70 | */ 71 | bool tileAbove(short z, short y, short x) const; 72 | 73 | void initialiseBoard(); 74 | 75 | int m_width; 76 | int m_height; 77 | int m_depth; 78 | int m_maxTiles; 79 | 80 | QString m_filename; 81 | QByteArray m_loadedBoard; 82 | QByteArray m_board; 83 | unsigned short m_maxTileNum; 84 | }; 85 | 86 | #endif 87 | -------------------------------------------------------------------------------- /src/movelistanimation.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Christian Krippendorf 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | // own 8 | #include "movelistanimation.h" 9 | 10 | // KMahjongg 11 | #include "gamedata.h" 12 | 13 | MoveListAnimation::MoveListAnimation(QObject * parent) 14 | : QTimer(parent) 15 | , m_step(0) 16 | , m_animationSpeed(0) 17 | , m_gameData(nullptr) 18 | { 19 | connect(this, &MoveListAnimation::timeout, this, &MoveListAnimation::timeoutOccurred); 20 | } 21 | 22 | MoveListAnimation::~MoveListAnimation() 23 | { 24 | } 25 | 26 | void MoveListAnimation::setAnimationSpeed(int animationSpeed) 27 | { 28 | m_animationSpeed = animationSpeed; 29 | } 30 | 31 | int MoveListAnimation::getAnimationSpeed() const 32 | { 33 | return m_animationSpeed; 34 | } 35 | 36 | void MoveListAnimation::start(GameData * gameData) 37 | { 38 | m_gameData = gameData; 39 | 40 | // Test whether the tileNum is max or 0. 41 | if (m_gameData->m_tileNum == m_gameData->m_maxTileNum) { 42 | m_direction = AnimationDirection::Forward; 43 | } else { 44 | m_direction = AnimationDirection::Backward; 45 | } 46 | 47 | QTimer::start(m_animationSpeed); 48 | } 49 | 50 | void MoveListAnimation::stop() 51 | { 52 | QTimer::stop(); 53 | 54 | m_step = 0; 55 | } 56 | 57 | void MoveListAnimation::timeoutOccurred() 58 | { 59 | if (m_gameData == nullptr) { 60 | return; 61 | } 62 | 63 | if (m_direction == AnimationDirection::Forward) { 64 | // Remove items... 65 | Q_EMIT removeItem(m_gameData->MoveListData(m_gameData->m_tileNum)); 66 | Q_EMIT removeItem(m_gameData->MoveListData(m_gameData->m_tileNum)); 67 | 68 | if (m_gameData->m_tileNum == 0) { 69 | m_direction = AnimationDirection::Backward; 70 | } 71 | } else { 72 | ++m_gameData->m_tileNum; 73 | Q_EMIT addItem(m_gameData->MoveListData(m_gameData->m_tileNum)); 74 | ++m_gameData->m_tileNum; 75 | Q_EMIT addItem(m_gameData->MoveListData(m_gameData->m_tileNum)); 76 | 77 | if (m_gameData->m_tileNum == m_gameData->m_maxTileNum) { 78 | m_direction = AnimationDirection::Forward; 79 | } 80 | } 81 | } 82 | 83 | #include "moc_movelistanimation.cpp" 84 | -------------------------------------------------------------------------------- /src/selectionanimation.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Christian Krippendorf 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #ifndef SELECTIONANIMATION_H 8 | #define SELECTIONANIMATION_H 9 | 10 | // Qt 11 | #include 12 | 13 | // Forward declarations... 14 | template 15 | class QList; 16 | class GameItem; 17 | 18 | /** 19 | * A class for animating GameItems with the help of selection. 20 | * 21 | * @author Christian Krippendorf */ 22 | class SelectionAnimation : public QTimer 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | explicit SelectionAnimation(QObject * parent = nullptr); 28 | ~SelectionAnimation() override; 29 | 30 | /** 31 | * Set the count of repetitions. 32 | * 33 | * @param repetitions The number of repetitions. */ 34 | void setRepetitions(int repetitions); 35 | 36 | /** 37 | * Set the animation speed in milliseconds. 38 | * 39 | * @param animationSpeed The animation speed in milliseconds. */ 40 | void setAnimationSpeed(int animationSpeed); 41 | 42 | /** 43 | * Get the animation speed in milliseconds. 44 | * 45 | * @return Get the animation speed in milliseconds. */ 46 | int getAnimationSpeed() const; 47 | 48 | /** 49 | * Get the number of repetitions set. 50 | * 51 | * @return The number of repetitions. */ 52 | int getRepetitions() const; 53 | 54 | /** 55 | * Add the GameItems that should be selected. 56 | * 57 | * @param gameItem The game item that should be selected. */ 58 | void addGameItem(GameItem * gameItem); 59 | 60 | /** 61 | * Get all the game items. 62 | * 63 | * @return A list of game items. */ 64 | QList getGameItems() const; 65 | 66 | /** 67 | * Override of QTimer. */ 68 | void start(); 69 | 70 | /** 71 | * Override of QTimer. */ 72 | void stop(); 73 | 74 | public Q_SLOTS: 75 | 76 | Q_SIGNALS: 77 | 78 | private Q_SLOTS: 79 | /** 80 | * The timeout occurred. */ 81 | void timeoutOccurred(); 82 | 83 | private: 84 | /** 85 | * Set the selection state of all game items. 86 | * 87 | * @param selected True if all items should be selected and false for deselecting all items. */ 88 | void setSelectedGameItems(bool selected); 89 | 90 | int m_animationSpeed; 91 | int m_repetitions; 92 | int m_finishedRepetitions; 93 | bool m_itemsSelected; 94 | 95 | QList * m_gameItems; 96 | }; 97 | 98 | #endif // SELECTIONANIMATION_H 99 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16 FATAL_ERROR) 2 | 3 | # Release Service version, managed by release script 4 | set (RELEASE_SERVICE_VERSION_MAJOR "26") 5 | set (RELEASE_SERVICE_VERSION_MINOR "03") 6 | set (RELEASE_SERVICE_VERSION_MICRO "70") 7 | set (RELEASE_SERVICE_COMPACT_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}${RELEASE_SERVICE_VERSION_MINOR}${RELEASE_SERVICE_VERSION_MICRO}") 8 | 9 | # Bump KMAHJONGG_BASE_VERSION once new features are added 10 | set(KMAHJONGG_BASE_VERSION "0.9") 11 | set(KMAHJONGG_VERSION "${KMAHJONGG_BASE_VERSION}.${RELEASE_SERVICE_COMPACT_VERSION}") 12 | 13 | project(kmahjongg VERSION ${KMAHJONGG_VERSION}) 14 | 15 | set(QT_MIN_VERSION "6.5.0") 16 | set(KF_MIN_VERSION "6.0.0") 17 | 18 | find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) 19 | 20 | if(ENABLE_CLAZY) 21 | set(CMAKE_CXX_COMPILER clazy) 22 | endif() 23 | 24 | set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH}) 25 | 26 | include(KDEInstallDirs) 27 | include(KDECMakeSettings) 28 | include(KDECompilerSettings NO_POLICY_SCOPE) 29 | 30 | include(ECMAddAppIcon) 31 | include(ECMInstallIcons) 32 | include(ECMQtDeclareLoggingCategory) 33 | include(ECMSetupVersion) 34 | include(ECMDeprecationSettings) 35 | include(FeatureSummary) 36 | 37 | option(BUILD_DOC "Whether to build the documentation" ON) 38 | 39 | find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS 40 | Core 41 | Gui 42 | Svg 43 | ) 44 | 45 | find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS 46 | Config 47 | CoreAddons 48 | Crash 49 | DBusAddons 50 | I18n 51 | NewStuff 52 | XmlGui 53 | ) 54 | 55 | find_package(KMahjongglib6 6.0.0 REQUIRED) 56 | find_package(KDEGames6 6.0.0 REQUIRED) 57 | 58 | if(BUILD_DOC) 59 | find_package(KF6DocTools ${KF_MIN_VERSION}) 60 | set_package_properties(KF6DocTools PROPERTIES 61 | DESCRIPTION "Tools to generate documentation" 62 | TYPE REQUIRED 63 | ) 64 | endif() 65 | 66 | ecm_set_disabled_deprecation_versions( 67 | QT 6.5 68 | KF 6.0 69 | KDEGAMES 6.0 70 | ) 71 | 72 | add_subdirectory(src) 73 | add_subdirectory(icons) 74 | add_subdirectory(layouts) 75 | 76 | ########### install files ############### 77 | 78 | install(PROGRAMS org.kde.kmahjongg.desktop DESTINATION ${KDE_INSTALL_APPDIR}) 79 | install(FILES org.kde.kmahjongg.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) 80 | 81 | if(BUILD_DOC) 82 | add_subdirectory(doc) 83 | kdoctools_install(po) 84 | endif() 85 | 86 | ki18n_install(po) 87 | 88 | ########### Display Summary ############### 89 | feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 90 | -------------------------------------------------------------------------------- /layouts/crab.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.1 2 | # Board size in quarter tiles 3 | w32 4 | h16 5 | # Board depth 6 | d4 7 | # Level 0 ------------------------- 8 | ...12121212..........12121212... 9 | ...43434343..........43434343... 10 | ...12121212...1212...12121212... 11 | ...43434343...4343...43434343... 12 | .......121212121212121212....... 13 | .......434343434343434343....... 14 | ..1212.....1212121212.....1212.. 15 | ..4343.....4343434343.....4343.. 16 | ..12......121212121212......12.. 17 | ..43......434343434343......43.. 18 | ......12121212121212121212...... 19 | ......43434343434343434343...... 20 | ..12121212..12121212..12121212.. 21 | ..43434343..43434343..43434343.. 22 | ..12121212...121212...12121212.. 23 | ..43434343...434343...43434343.. 24 | # Level 1 ------------------------- 25 | .....121212..........121212..... 26 | .....434343..........434343..... 27 | .....121212...1212...121212..... 28 | .....434343...4343...434343..... 29 | .........12..........12......... 30 | .........43..........43......... 31 | ..1212.......121212.......1212.. 32 | ..4343.......434343.......4343.. 33 | ..12........12121212........12.. 34 | ..43........43434343........43.. 35 | ..........121212121212.......... 36 | ..........434343434343.......... 37 | ....121212............121212.... 38 | ....434343............434343.... 39 | ....121212...121212...121212.... 40 | ....434343...434343...434343.... 41 | # Level 2 ------------------------- 42 | ................................ 43 | ......1212............1212...... 44 | ......4343.....12.....4343...... 45 | ...............32............... 46 | ................................ 47 | ................................ 48 | ...............12............... 49 | ...............43............... 50 | ..............1212.............. 51 | ..............4343.............. 52 | ..............1212.............. 53 | ..............4343.............. 54 | ................................ 55 | .....1212..............1212..... 56 | .....4343......12......4343..... 57 | ...............43............... 58 | # Level 3 ------------------------- 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ...............12............... 68 | ...............43............... 69 | ...............12............... 70 | ...............43............... 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | -------------------------------------------------------------------------------- /layouts/castle.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.1 2 | # Board size in quarter tiles 3 | w32 4 | h16 5 | # Board depth 6 | d4 7 | # Level 0 ------------------------- 8 | ...12121212..........12121212... 9 | ...43434343..........43434343... 10 | ...12121212...1212...12121212... 11 | ...43434343...4343...43434343... 12 | .......121212121212121212....... 13 | .......434343434343434343....... 14 | ..1212.....1212121212.....1212.. 15 | ..4343.....4343434343.....4343.. 16 | ..12......121212121212......12.. 17 | ..43......434343434343......43.. 18 | ......12121212121212121212...... 19 | ......43434343434343434343...... 20 | ..12121212..12121212..12121212.. 21 | ..43434343..43434343..43434343.. 22 | ..12121212...121212...12121212.. 23 | ..43434343...434343...43434343.. 24 | # Level 1 ------------------------- 25 | .....121212..........121212..... 26 | .....434343..........434343..... 27 | .....121212...1212...121212..... 28 | .....434343...4343...434343..... 29 | .........12..........12......... 30 | .........43..........43......... 31 | ..1212.......121212.......1212.. 32 | ..4343.......434343.......4343.. 33 | ..12........12121212........12.. 34 | ..43........43434343........43.. 35 | ..........121212121212.......... 36 | ..........434343434343.......... 37 | ....121212............121212.... 38 | ....434343............434343.... 39 | ....121212...121212...121212.... 40 | ....434343...434343...434343.... 41 | # Level 2 ------------------------- 42 | ................................ 43 | ......1212............1212...... 44 | ......4343.....12.....4343...... 45 | ...............32............... 46 | ................................ 47 | ................................ 48 | ...............12............... 49 | ...............43............... 50 | ..............1212.............. 51 | ..............4343.............. 52 | ..............1212.............. 53 | ..............4343.............. 54 | ................................ 55 | .....1212..............1212..... 56 | .....4343......12......4343..... 57 | ...............43............... 58 | # Level 3 ------------------------- 59 | ................................ 60 | ......1212............1212...... 61 | ......4343.....12.....4343...... 62 | ...............32............... 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ..............1212.............. 68 | ..............4343.............. 69 | ..............1212.............. 70 | ..............4343.............. 71 | ................................ 72 | .....1212..............1212..... 73 | .....4343......12......4343..... 74 | ...............43............... 75 | -------------------------------------------------------------------------------- /layouts/dragon.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.1 2 | # Board size in quarter tiles 3 | w32 4 | h16 5 | # Board depth 6 | d4 7 | # Level 0 ------------------------- 8 | ...121212..............121212... 9 | .1243434312..........1243434312. 10 | .43......43121212121243......43. 11 | .12..12....4343434343...12...12. 12 | .43..43....12......12...43...43. 13 | .12........43......43........12. 14 | .431212121212..12..121212121243. 15 | ...4343434343..43..4343434343... 16 | .......12..12......12..12....... 17 | .......43..43......43..43....... 18 | .....1212121212121212121212..... 19 | .....4343434343434343434343..... 20 | .....12..................12..... 21 | .....43..12..12..12..12..43..... 22 | .....1212431243124312431212..... 23 | .....4343..43..43..43..4343..... 24 | # Level 1 ------------------------- 25 | ...121212..............121212... 26 | .1243434312..........1243434312. 27 | .43......43..121212..43......43. 28 | .12..12......434343.....12...12. 29 | .43..43....12......12...43...43. 30 | .12........43......43........12. 31 | .43121212..12..12..12..12121243. 32 | ...434343..43..43..43..434343... 33 | .......12..12......12..12....... 34 | .......43..43......43..43....... 35 | .....12....1212121212....12..... 36 | .....43....4343434343....43..... 37 | .....12..................12..... 38 | .....43..12..12..12..12..43..... 39 | .....12..43..43..43..43..12..... 40 | .....43..................43..... 41 | # Level 2 ------------------------- 42 | .....12..................12..... 43 | .....43..12..........12..43..... 44 | .........43....12....43......... 45 | .12............43............12. 46 | .43..........................43. 47 | ................................ 48 | .....12..................12..... 49 | .....43..................43..... 50 | ................................ 51 | ................................ 52 | .....12..................12..... 53 | .....43..................43..... 54 | .....12..................12..... 55 | .....43..12..12..12..12..43..... 56 | .....12..43..43..43..43..12..... 57 | .....43..................43..... 58 | # Level 3 ------------------------- 59 | .....12..................12..... 60 | .....43..................43..... 61 | ................................ 62 | .12..........................12. 63 | .43..........................43. 64 | ................................ 65 | .....12..................12..... 66 | .....43..................43..... 67 | ................................ 68 | ................................ 69 | .....12..................12..... 70 | .....43..................43..... 71 | .....12..................12..... 72 | .....43..12..12..12..12..43..... 73 | .........43..43..43..43......... 74 | ................................ 75 | -------------------------------------------------------------------------------- /layouts/spider.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.1 2 | # Board size in quarter tiles 3 | w32 4 | h16 5 | # Board depth 6 | d4 7 | # Level 0 ------------------------- 8 | ......1212...12..12...1212...... 9 | ......4343...43..43...4343...... 10 | ........12....1212....12........ 11 | ..12....4312..4343..1243....12.. 12 | ..4312....431212121243....1243.. 13 | ....431212..43434343..121243.... 14 | ......43431212121212124343...... 15 | ..........434343434343.......... 16 | .........12121212121212......... 17 | .121212124343434343434312121212. 18 | .43434343.121212121212.43434343. 19 | ..........434343434343.......... 20 | ........12..12121212..12........ 21 | ......1243..43434343..4312...... 22 | ..121243......1212......431212.. 23 | ..4343........4343........4343.. 24 | # Level 1 ------------------------- 25 | ......1212...12..12...1212...... 26 | ......4343...43..43...4343...... 27 | ........12............12........ 28 | ..12....4312........1243....12.. 29 | ..4312....43..1212..43....1243.. 30 | ....431212....4343....121243.... 31 | ......4343..12121212..4343...... 32 | ............43434343............ 33 | ...........1212121212........... 34 | .12121212..4343434343..12121212. 35 | .43434343...12121212...43434343. 36 | ............43434343............ 37 | ........12....1212....12........ 38 | ......1243....4343....4312...... 39 | ..121243......1212......431212.. 40 | ..4343........4343........4343.. 41 | # Level 2 ------------------------- 42 | ........12............12........ 43 | ........43............43........ 44 | ................................ 45 | ..12......12........12......12.. 46 | ..43......43........43......43.. 47 | ......12................12...... 48 | ......43......1212......43...... 49 | ..............4343.............. 50 | .............121212............. 51 | .12..12......434343......12..12. 52 | .43..43.......1212.......43..43. 53 | ..............4343.............. 54 | ..............1212.............. 55 | ......12......4343......12...... 56 | ..12..43................43..12.. 57 | ..43........................43.. 58 | # Level 3 ------------------------- 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ...............12............... 69 | ...............43............... 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | -------------------------------------------------------------------------------- /src/selectionanimation.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2012 Christian Krippendorf 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | // own 8 | #include "selectionanimation.h" 9 | 10 | // Qt 11 | #include 12 | 13 | // KMahjongg 14 | #include "gameitem.h" 15 | 16 | SelectionAnimation::SelectionAnimation(QObject * parent) 17 | : QTimer(parent) 18 | , m_animationSpeed(0) 19 | , m_repetitions(0) 20 | , m_finishedRepetitions(0) 21 | , m_itemsSelected(false) 22 | , m_gameItems(new QList()) 23 | { 24 | connect(this, &SelectionAnimation::timeout, this, &SelectionAnimation::timeoutOccurred); 25 | } 26 | 27 | SelectionAnimation::~SelectionAnimation() 28 | { 29 | delete m_gameItems; 30 | } 31 | 32 | void SelectionAnimation::setRepetitions(int repetitions) 33 | { 34 | m_repetitions = repetitions; 35 | } 36 | 37 | void SelectionAnimation::setAnimationSpeed(int animationSpeed) 38 | { 39 | m_animationSpeed = animationSpeed; 40 | } 41 | 42 | int SelectionAnimation::getAnimationSpeed() const 43 | { 44 | return m_animationSpeed; 45 | } 46 | 47 | int SelectionAnimation::getRepetitions() const 48 | { 49 | return m_repetitions; 50 | } 51 | 52 | void SelectionAnimation::addGameItem(GameItem * gameItem) 53 | { 54 | m_gameItems->append(gameItem); 55 | } 56 | 57 | QList SelectionAnimation::getGameItems() const 58 | { 59 | return *m_gameItems; 60 | } 61 | 62 | void SelectionAnimation::start() 63 | { 64 | QTimer::start(m_animationSpeed); 65 | } 66 | 67 | void SelectionAnimation::stop() 68 | { 69 | m_gameItems->clear(); 70 | m_finishedRepetitions = 8; 71 | QTimer::stop(); 72 | m_finishedRepetitions = 0; 73 | setSelectedGameItems(false); 74 | m_itemsSelected = false; 75 | } 76 | 77 | void SelectionAnimation::timeoutOccurred() 78 | { 79 | if (m_itemsSelected) { 80 | // Items are selected, so deselect them. 81 | setSelectedGameItems(false); 82 | m_itemsSelected = false; 83 | } else { 84 | // Any animation repetitions left? 85 | if (m_repetitions > m_finishedRepetitions) { 86 | setSelectedGameItems(true); 87 | m_itemsSelected = true; 88 | ++m_finishedRepetitions; 89 | start(); 90 | } else { 91 | stop(); 92 | } 93 | } 94 | } 95 | 96 | void SelectionAnimation::setSelectedGameItems(bool selected) 97 | { 98 | for (int i = 0; i < m_gameItems->size(); ++i) { 99 | m_gameItems->at(i)->setSelected(selected); 100 | } 101 | } 102 | 103 | #include "moc_selectionanimation.cpp" 104 | -------------------------------------------------------------------------------- /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | Language: Cpp 3 | # BasedOnStyle: WebKit 4 | AccessModifierOffset: -4 5 | AlignAfterOpenBracket: Align 6 | AlignConsecutiveAssignments: false 7 | AlignConsecutiveDeclarations: false 8 | AlignEscapedNewlinesLeft: false 9 | AlignOperands: false 10 | AlignTrailingComments: false 11 | AllowAllParametersOfDeclarationOnNextLine: true 12 | AllowShortBlocksOnASingleLine: false 13 | AllowShortCaseLabelsOnASingleLine: false 14 | AllowShortFunctionsOnASingleLine: None 15 | AllowShortIfStatementsOnASingleLine: false 16 | AllowShortLoopsOnASingleLine: false 17 | AlwaysBreakAfterDefinitionReturnType: None 18 | AlwaysBreakBeforeMultilineStrings: false 19 | AlwaysBreakTemplateDeclarations: false 20 | BinPackArguments: true 21 | BinPackParameters: true 22 | BraceWrapping: 23 | AfterClass: true 24 | AfterControlStatement: false 25 | AfterEnum: false 26 | AfterFunction: true 27 | AfterNamespace: true 28 | AfterStruct: true 29 | AfterUnion: true 30 | BeforeCatch: false 31 | BeforeElse: false 32 | IndentBraces: false 33 | BreakBeforeBinaryOperators: All 34 | BreakBeforeBraces: Custom 35 | BreakBeforeTernaryOperators: true 36 | BreakConstructorInitializersBeforeComma: true 37 | ColumnLimit: 0 38 | CommentPragmas: '' 39 | ConstructorInitializerAllOnOneLineOrOnePerLine: false 40 | ConstructorInitializerIndentWidth: 4 41 | ContinuationIndentWidth: 4 42 | Cpp11BracedListStyle: true 43 | DerivePointerAlignment: false 44 | DisableFormat: false 45 | ExperimentalAutoDetectBinPacking: false 46 | ForEachMacros: [ foreach, Q_FOREACH ] 47 | IncludeCategories: 48 | - Regex: '^ 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | // own 8 | #include "demoanimation.h" 9 | 10 | // KMahjongg 11 | #include "gamedata.h" 12 | #include "kmahjongg_debug.h" 13 | 14 | DemoAnimation::DemoAnimation(QObject * parent) 15 | : QTimer(parent) 16 | , m_step(0) 17 | , m_animationSpeed(0) 18 | , m_gameData(nullptr) 19 | { 20 | connect(this, &DemoAnimation::timeout, this, &DemoAnimation::timeoutOccurred); 21 | } 22 | 23 | DemoAnimation::~DemoAnimation() 24 | { 25 | } 26 | 27 | void DemoAnimation::setAnimationSpeed(int animationSpeed) 28 | { 29 | m_animationSpeed = animationSpeed; 30 | } 31 | 32 | int DemoAnimation::getAnimationSpeed() const 33 | { 34 | return m_animationSpeed; 35 | } 36 | 37 | void DemoAnimation::start(GameData * gameData) 38 | { 39 | m_gameData = gameData; 40 | 41 | QTimer::start(m_animationSpeed); 42 | } 43 | 44 | void DemoAnimation::stop() 45 | { 46 | QTimer::stop(); 47 | 48 | m_step = 0; 49 | } 50 | 51 | void DemoAnimation::timeoutOccurred() 52 | { 53 | switch (m_step++ % 5) { 54 | case 0: 55 | // Test if we got a game data object. 56 | if (m_gameData == nullptr) { 57 | qCDebug(KMAHJONGG_LOG) << "m_pGameData is null"; 58 | 59 | stop(); 60 | return; 61 | } 62 | 63 | if (!m_gameData->findMove(m_stFirst, m_stSecond)) { 64 | // First stop the animation. 65 | stop(); 66 | 67 | if (m_gameData->m_tileNum == 0) { 68 | // The computer has won the game. 69 | Q_EMIT gameOver(true); 70 | } else { 71 | // The computer lost the game. 72 | // setStatusText(i18n("Your computer has lost the game.")); 73 | Q_EMIT gameOver(false); 74 | } 75 | } 76 | 77 | break; 78 | case 1: 79 | case 3: 80 | Q_EMIT changeItemSelectedState(m_stFirst, true); 81 | Q_EMIT changeItemSelectedState(m_stSecond, true); 82 | 83 | break; 84 | case 2: 85 | Q_EMIT changeItemSelectedState(m_stFirst, false); 86 | Q_EMIT changeItemSelectedState(m_stSecond, false); 87 | 88 | break; 89 | case 4: 90 | m_stFirst.f -= TILE_OFFSET; 91 | Q_EMIT removeItem(m_stFirst); 92 | m_stSecond.f -= TILE_OFFSET; 93 | Q_EMIT removeItem(m_stSecond); 94 | 95 | break; 96 | } 97 | } 98 | 99 | #include "moc_demoanimation.cpp" 100 | -------------------------------------------------------------------------------- /src/editor.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 1997 Mathias Mueller 3 | SPDX-FileCopyrightText: 2006 Mauricio Piacentini 4 | 5 | SPDX-License-Identifier: GPL-2.0-or-later 6 | */ 7 | 8 | #ifndef EDITOR_H 9 | #define EDITOR_H 10 | 11 | // Qt 12 | #include 13 | 14 | // KF 15 | #include 16 | 17 | // LibKMahjongg 18 | #include 19 | 20 | // KMahjongg 21 | #include "boardlayout.h" 22 | #include "frameimage.h" 23 | #include "kmtypes.h" 24 | 25 | class FrameImage; 26 | class QLabel; 27 | class KActionCollection; 28 | 29 | /** 30 | * @author Mauricio Piacentini 31 | */ 32 | class Editor : public QDialog 33 | { 34 | Q_OBJECT 35 | 36 | public: 37 | explicit Editor(QWidget * parent = nullptr); 38 | ~Editor() override; 39 | 40 | public Q_SLOTS: 41 | /** 42 | * Load the settings from prefs. */ 43 | void setTilesetFromSettings(); 44 | 45 | protected Q_SLOTS: 46 | void drawFrameMousePressEvent(QMouseEvent *); 47 | void drawFrameMouseMovedEvent(QMouseEvent *); 48 | void loadBoard(); 49 | bool saveBoard(); 50 | void newBoard(); 51 | void slotShiftLeft(); 52 | void slotShiftRight(); 53 | void slotShiftUp(); 54 | void slotShiftDown(); 55 | void slotModeChanged(QAction *); 56 | 57 | protected: 58 | void resizeEvent(QResizeEvent * event) override; 59 | void paintEvent(QPaintEvent * pa) override; 60 | void setupToolbar(); 61 | void drawBackground(QPixmap * to) const; 62 | 63 | /** 64 | * @param to destination QPixmap to draw to */ 65 | void drawTiles(QPixmap * to); 66 | 67 | bool testSave(); 68 | void transformPointToPosition(const QPoint &, POSITION &, bool align) const; 69 | void drawCursor(POSITION & p, bool visible); 70 | bool canInsert(POSITION & p) const; 71 | void statusChanged() const; 72 | QString statusText() const; 73 | 74 | /** 75 | * Override the closeEvent(...) method of qdialog. */ 76 | void closeEvent(QCloseEvent * e) override; 77 | 78 | /** 79 | * Update the tile size. */ 80 | void updateTileSize(const QSize size); 81 | 82 | private: 83 | enum class EditMode { 84 | remove = 98, 85 | insert = 99, 86 | move = 100 87 | }; 88 | EditMode m_mode; 89 | 90 | QString m_tileset; 91 | 92 | int m_borderLeft; 93 | int m_borderTop; 94 | int m_numTiles; 95 | bool m_clean; 96 | 97 | FrameImage * m_drawFrame; 98 | KMahjonggTileset m_tiles; 99 | BoardLayout m_theBoard; 100 | POSITION m_curPos; 101 | 102 | QLabel * m_theLabel; 103 | 104 | KToolBar * m_topToolbar; 105 | KActionCollection * m_actionCollection; 106 | }; 107 | 108 | #endif 109 | -------------------------------------------------------------------------------- /layouts/cat.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.1 2 | # Board size in quarter tiles 3 | w36 4 | h16 5 | # Board depth 6 | d4 7 | # Level 0 ------------------------- 8 | ............................12...... 9 | ............................4312.... 10 | ..............................4312.. 11 | ................................43.. 12 | ................12121212121212....12 13 | ..............1243434343434343....43 14 | ..12121212....431212121212121212..12 15 | ..43434343..12124343434343434343..43 16 | 1212121212..4343121212121212121212.. 17 | 4343434343..1212434343434343434343.. 18 | 1212121212..4343121212121212121212.. 19 | 4343434343..1212434343434343434343.. 20 | 1212121212..4343121212121212121212.. 21 | 434343434312..12434343434343434343.. 22 | ..1212121243..431212121212121212.... 23 | ..43434343......4343434343434343.... 24 | # Level 1 ------------------------- 25 | ............................12...... 26 | ............................4312.... 27 | ..............................4312.. 28 | ................................43.. 29 | .................................... 30 | .................................... 31 | ..................121212121212...... 32 | ..................434343434343...... 33 | ....1212........1212121212121212.... 34 | ....4343......124343434343434343.... 35 | ..12121212....431212121212121212.... 36 | ..43434343......4343434343434343.... 37 | ....1212..........121212121212...... 38 | ....4343..........434343434343...... 39 | .................................... 40 | .................................... 41 | # Level 2 ------------------------- 42 | .................................... 43 | .................................... 44 | .................................... 45 | .................................... 46 | .................................... 47 | .................................... 48 | .................................... 49 | .................................... 50 | ..................1212121212........ 51 | ....1212..........4343434343........ 52 | ....4343..........1212121212........ 53 | ....1212..........4343434343........ 54 | ....4343............................ 55 | .................................... 56 | .................................... 57 | .................................... 58 | # Level 3 ------------------------- 59 | .................................... 60 | .................................... 61 | .................................... 62 | .................................... 63 | .................................... 64 | .................................... 65 | .................................... 66 | .................................... 67 | .................................... 68 | ....................121212.......... 69 | ....................434343.......... 70 | .................................... 71 | .................................... 72 | .................................... 73 | .................................... 74 | .................................... 75 | -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 1997 Mathias Mueller 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | // Qt 8 | #include 9 | #include 10 | 11 | // KF 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | // KMahjongg 18 | #include "kmahjongg.h" 19 | #include "kmahjongg_version.h" 20 | 21 | int main(int argc, char ** argv) 22 | { 23 | QApplication app(argc, argv); 24 | 25 | KLocalizedString::setApplicationDomain(QByteArrayLiteral("kmahjongg")); 26 | 27 | KAboutData aboutData(QStringLiteral("kmahjongg"), i18n("KMahjongg"), 28 | QStringLiteral(KMAHJONGG_VERSION_STRING), 29 | i18n("Mahjongg Solitaire by KDE"), 30 | KAboutLicense::GPL, 31 | i18n("(c) 1997, Mathias Mueller\n(c) 2006, Mauricio Piacentini\n(c) 2011, Christian Krippendorf"), 32 | QString(), 33 | QStringLiteral("https://apps.kde.org/kmahjongg")); 34 | aboutData.addAuthor(i18n("Mathias Mueller"), i18n("Original Author"), QStringLiteral("in5y158@public.uni-hamburg.de")); 35 | aboutData.addAuthor(i18n("Christian Krippendorf"), i18n("Current maintainer"), QStringLiteral("Coding@Christian-Krippendorf.de")); 36 | aboutData.addAuthor(i18n("Albert Astals Cid"), i18n("Bug fixes"), QStringLiteral("aacid@kde.org")); 37 | aboutData.addAuthor(i18n("David Black"), i18n("KDE 3 rewrite and Extension"), QStringLiteral("david.black@lutris.com")); 38 | aboutData.addAuthor(i18n("Michael Haertjens"), i18n("Solvable game generation\nbased on algorithm by Michael Meeks in GNOME mahjongg"), QStringLiteral("mhaertjens@modusoperandi.com")); 39 | aboutData.addCredit(i18n("Raquel Ravanini"), i18n("SVG Tileset for KDE4"), QStringLiteral("raquel@tabuleiro.com")); 40 | aboutData.addCredit(i18n("Richard Lohman"), i18n("Tile set contributor and current web page maintainer"), QStringLiteral("richardjlohman@yahoo.com")); 41 | aboutData.addCredit(i18n("Osvaldo Stark"), i18n("Tile set contributor and original web page maintainer"), QStringLiteral("starko@dnet.it")); 42 | aboutData.addCredit(i18n("Benjamin Meyer"), i18n("Code cleanup"), QStringLiteral("ben+kmahjongg@meyerhome.net")); 43 | 44 | KAboutData::setApplicationData(aboutData); 45 | QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("kmahjongg"))); 46 | 47 | KCrash::initialize(); 48 | 49 | QCommandLineParser parser; 50 | aboutData.setupCommandLine(&parser); 51 | parser.process(app); 52 | aboutData.processCommandLine(&parser); 53 | 54 | KDBusService service; 55 | 56 | if (app.isSessionRestored()) { 57 | kRestoreMainWindows(); 58 | } else { 59 | KMahjongg * window = new KMahjongg(); 60 | window->show(); 61 | } 62 | 63 | return app.exec(); 64 | } 65 | -------------------------------------------------------------------------------- /layouts/Vi.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | 12............................12 3 | 43............................43 4 | 1212........................1212 5 | 4343........................4343 6 | 121212....................121212 7 | 434343....................434343 8 | 12121212................12121212 9 | 43434343................43434343 10 | 1212121212............1212121212 11 | 4343434343............4343434343 12 | 121212121212........121212121212 13 | 434343434343........434343434343 14 | 12121212121212....12121212121212 15 | 43434343434343....43434343434343 16 | 12121212121212121212121212121212 17 | 43434343434343434343434343434343 18 | ................................ 19 | ................................ 20 | ................................ 21 | ................................ 22 | 12............................12 23 | 43............................43 24 | 1212........................1212 25 | 4343........................4343 26 | 121212....................121212 27 | 434343....................434343 28 | 12121212................12121212 29 | 43434343................43434343 30 | 1212121212............1212121212 31 | 4343434343............4343434343 32 | 121212121212........121212121212 33 | 434343434343........434343434343 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ................................ 39 | ................................ 40 | 12............................12 41 | 43............................43 42 | 12............................12 43 | 43............................43 44 | 1212........................1212 45 | 4343........................4343 46 | 121212....................121212 47 | 434343....................434343 48 | 12121212................12121212 49 | 43434343................43434343 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | 12............................12 63 | 43............................43 64 | 1212........................1212 65 | 4343........................4343 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | 12............................12 81 | 43............................43 82 | -------------------------------------------------------------------------------- /layouts/alien.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ..........121212121212.......... 3 | ..........434343434343.......... 4 | ..1212121212121212121212121212.. 5 | ..4343434343434343434343434343.. 6 | ..12.....12121212121212.....12.. 7 | ..43.....43434343434343.....43.. 8 | ..12.......1212121212.......12.. 9 | ..43.......4343434343.......43.. 10 | ...........1212121212........... 11 | ...........4343434343........... 12 | .............121212............. 13 | .............434343............. 14 | .............12..12............. 15 | .............43..43............. 16 | .12121212121212..12121212121212. 17 | .43434343434343..43434343434343. 18 | ...........1212121212........... 19 | ...........4343434343........... 20 | ..121212...1212121212...121212.. 21 | ..434343...4343434343...434343.. 22 | ..12..........1212..........12.. 23 | ..43..........4343..........43.. 24 | ..12..........1212..........12.. 25 | ..43..........4343..........43.. 26 | ..............1212.............. 27 | ..............4343.............. 28 | ...............12............... 29 | ...............43............... 30 | ................................ 31 | ................................ 32 | .121212121212......121212121212. 33 | .434343434343......434343434343. 34 | ............12121212............ 35 | ............43434343............ 36 | ..1212......12121212......1212.. 37 | ..4343......43434343......4343.. 38 | ..12...........12...........12.. 39 | ..43...........43...........43.. 40 | ...............12............... 41 | ...............43............... 42 | ...............12............... 43 | ...............43............... 44 | ................................ 45 | ................................ 46 | ................................ 47 | ................................ 48 | .1212121212..........1212121212. 49 | .4343434343..........4343434343. 50 | .............121212............. 51 | .............434343............. 52 | ..12........12....12........12.. 53 | ..43........43....43........43.. 54 | ...............12............... 55 | ...............43............... 56 | ...............12............... 57 | ...............43............... 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | .12121212..............12121212. 65 | .43434343..............43434343. 66 | ..............1212.............. 67 | ..............4343.............. 68 | ............12....12............ 69 | ............43....43............ 70 | ...............12............... 71 | ...............43............... 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ...1212..................1212... 81 | ...4343..................4343... 82 | -------------------------------------------------------------------------------- /layouts/altar.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | 1212....1212121212121212....1212 3 | 4343....4343434343434343....4343 4 | 1212....1212121212121212....1212 5 | 4343....4343434343434343....4343 6 | ........1212121212121212........ 7 | ........4343434343434343........ 8 | ........1212121212121212........ 9 | ........4343434343434343........ 10 | ........1212121212121212........ 11 | ........4343434343434343........ 12 | ..............1212.............. 13 | ..............4343.............. 14 | 1212..........1212..........1212 15 | 4343..........4343..........4343 16 | 1212..........1212..........1212 17 | 4343..........4343..........4343 18 | ................................ 19 | 1212........................1212 20 | 4343......121212121212......4343 21 | ..........434343434343.......... 22 | ..........121212121212.......... 23 | ..........434343434343.......... 24 | ..........121212121212.......... 25 | ..........434343434343.......... 26 | ...............12............... 27 | ...............43............... 28 | ...............12............... 29 | ...............43............... 30 | ...............12............... 31 | 1212...........43...........1212 32 | 4343...........12...........4343 33 | ...............43............... 34 | ................................ 35 | .12..........................12. 36 | .43.......121212121212.......43. 37 | ..........434343434343.......... 38 | ..........121212121212.......... 39 | ..........434343434343.......... 40 | ..........121212121212.......... 41 | ..........434343434343.......... 42 | ...............12............... 43 | ...............43............... 44 | ...............12............... 45 | ...............43............... 46 | ...............12............... 47 | .12............43............12. 48 | .43..........................43. 49 | ................................ 50 | ................................ 51 | ................................ 52 | ...........1212121212........... 53 | ...........4343434343........... 54 | ...........1212121212........... 55 | ...........4343434343........... 56 | ...........1212121212........... 57 | ...........4343434343........... 58 | ...............12............... 59 | ...............43............... 60 | ...............12............... 61 | ...............43............... 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ..............1212.............. 69 | ..............4343.............. 70 | ............12121212............ 71 | ............43434343............ 72 | .............121212............. 73 | .............434343............. 74 | ...............12............... 75 | ...............43............... 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/arena.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | ..1212121212121212121212121212.. 4 | ..4343434343434343434343434343.. 5 | ..12121212............12121212.. 6 | ..43434343............43434343.. 7 | ..121212................121212.. 8 | ..434343................434343.. 9 | ..121212................121212.. 10 | ..434343................434343.. 11 | ..121212................121212.. 12 | ..434343................434343.. 13 | ..12121212............12121212.. 14 | ..43434343............43434343.. 15 | ..1212121212........1212121212.. 16 | ..4343434343........4343434343.. 17 | ................................ 18 | ................................ 19 | ..12121212............12121212.. 20 | ..43434343............43434343.. 21 | ..121212................121212.. 22 | ..434343................434343.. 23 | ..1212....................1212.. 24 | ..4343....................4343.. 25 | ..1212....................1212.. 26 | ..4343....................4343.. 27 | ..1212....................1212.. 28 | ..4343....................4343.. 29 | ..121212................121212.. 30 | ..434343................434343.. 31 | ..12121212............12121212.. 32 | ..43434343............43434343.. 33 | ................................ 34 | ................................ 35 | ..1212....................1212.. 36 | ..4343....................4343.. 37 | ..1212....................1212.. 38 | ..4343....................4343.. 39 | ..1212....................1212.. 40 | ..4343....................4343.. 41 | ..1212....................1212.. 42 | ..4343....................4343.. 43 | ..1212....................1212.. 44 | ..4343....................4343.. 45 | ..1212....................1212.. 46 | ..4343....................4343.. 47 | ..1212....................1212.. 48 | ..4343....................4343.. 49 | ................................ 50 | ................................ 51 | ..1212....................1212.. 52 | ..4343....................4343.. 53 | ..12........................12.. 54 | ..43........................43.. 55 | ..12........................12.. 56 | ..43........................43.. 57 | ..12........................12.. 58 | ..43........................43.. 59 | ..12........................12.. 60 | ..43........................43.. 61 | ..12........................12.. 62 | ..43........................43.. 63 | ..1212....................1212.. 64 | ..4343....................4343.. 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/arrow.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | .12............................. 4 | .43..............12............. 5 | .1212............4312........... 6 | .4343............124312......... 7 | .121212121212121243124312....... 8 | .43434343434343431243124312..... 9 | .121212121212121243124312431212. 10 | .434343434343434312431243124343. 11 | .12121212121212124312431243..... 12 | .434343434343434312431243....... 13 | .1212............431243......... 14 | .4343............1243........... 15 | .12..............43............. 16 | .43............................. 17 | ................................ 18 | ................................ 19 | ................................ 20 | ................................ 21 | ..12............................ 22 | ..43..............12............ 23 | ..12121212121212124312.......... 24 | ..4343434343434343124312........ 25 | ..121212121212121243124312...... 26 | ..434343434343434312431243...... 27 | ..1212121212121212431243........ 28 | ..43434343434343431243.......... 29 | ..12..............43............ 30 | ..43............................ 31 | ................................ 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ................................ 39 | ...1212121212121212............. 40 | ...434343434343434312........... 41 | ...12121212121212124312......... 42 | ...43434343434343431243......... 43 | ...121212121212121243........... 44 | ...4343434343434343............. 45 | ................................ 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ......121212121212.............. 56 | ......434343434343.............. 57 | ......12121212121212............ 58 | ......43434343434343............ 59 | ......121212121212.............. 60 | ......434343434343.............. 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ...........121212............... 72 | ...........434343............... 73 | ...........12121212............. 74 | ...........43434343............. 75 | ...........121212............... 76 | ...........434343............... 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/aztec.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | ..12........................12.. 4 | ..43.....12121212121212.....43.. 5 | .1212....43434343434343....1212. 6 | .4343....12121212121212....4343. 7 | .121212124343434343434312121212. 8 | .434343431212121212121243434343. 9 | .121212124343434343434312121212. 10 | .434343431212121212121243434343. 11 | .121212124343434343434312121212. 12 | .434343431212121212121243434343. 13 | .1212....43434343434343....1212. 14 | .4343....12121212121212....4343. 15 | ..12.....43434343434343.....12.. 16 | ..43........................43.. 17 | ................................ 18 | ................................ 19 | ..12........................12.. 20 | ..43.....12..........12.....43.. 21 | .........43..........43......... 22 | ...........1212121212........... 23 | ...........4343434343........... 24 | ...121212..1212121212..121212... 25 | ...434343..4343434343..434343... 26 | ...121212..1212121212..121212... 27 | ...434343..4343434343..434343... 28 | ...........1212121212........... 29 | ...........4343434343........... 30 | .........12..........12......... 31 | ..12.....43..........43.....12.. 32 | ..43........................43.. 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ...........12......12........... 39 | ...........43......43........... 40 | ............12121212............ 41 | ...1212.....43434343.....1212... 42 | ...4343.....12121212.....4343... 43 | ............43434343............ 44 | ...........12......12........... 45 | ...........43......43........... 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ....12......12121212......12.... 58 | ....43......43434343......43.... 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | .............12..12............. 74 | .............43..43............. 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/bat.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ...12......................12... 3 | .1243.......12121212.......4312. 4 | .431212.....43434343.....121243. 5 | .124343.......1212.......434312. 6 | .4312121212...4343...1212121243. 7 | .1243434343...1212...4343434312. 8 | .431212121212.4343.121212121243. 9 | .124343434343121212434343434312. 10 | .431212121212434343121212121243. 11 | .124343434343121212434343434312. 12 | .431212121212434343121212121243. 13 | .124343434343..12..434343434312. 14 | .431212..1212..43..1212..121243. 15 | .124343..4343......4343..434312. 16 | .4312......12......12......1243. 17 | ...43......43......43......43... 18 | ...12......................12... 19 | ...43..........12..........43... 20 | ...12..........43..........12... 21 | ...43..........12..........43... 22 | ...12..12......43......12..12... 23 | ...43..43......12......43..43... 24 | .121212..12....43....12..121212. 25 | .434343..43....12....43..434343. 26 | .121212..12....43....12..121212. 27 | .434343..43....12....43..434343. 28 | ...12..12......43......12..12... 29 | ...43..43..............43..43... 30 | ...12......................12... 31 | ...43......................43... 32 | ...12......12......12......12... 33 | ...43......43......43......43... 34 | ...12......................12... 35 | ...43......................43... 36 | ...12......................12... 37 | ...43......................43... 38 | ...12......................12... 39 | ...43......................43... 40 | ................................ 41 | ................................ 42 | ................................ 43 | ................................ 44 | ...12......................12... 45 | ...43......................43... 46 | ...12......................12... 47 | ...43......................43... 48 | ...12......................12... 49 | ...43......................43... 50 | ...12......................12... 51 | ...43......................43... 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ...12......................12... 65 | ...43......................43... 66 | ...12......................12... 67 | ...43......................43... 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ...12......................12... 81 | ...43......................43... 82 | -------------------------------------------------------------------------------- /layouts/bug.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ..........12....12....12........ 3 | ..........4312..4312..4312...... 4 | ............43....43....43...... 5 | ...12......1212121212121212..... 6 | ...4312....434343434343434312... 7 | .....43..1212121212121212124312. 8 | .......124343434343434343431243. 9 | .....12431212121212121212124312. 10 | .....43124343434343434343431243. 11 | .......431212121212121212124312. 12 | .....12..4343434343434343431243. 13 | ...1243....121212121212121243... 14 | ...43......4343434343434343..... 15 | ............12....12....12...... 16 | ..........1243..1243..1243...... 17 | ..........43....43....43........ 18 | ..........12....12....12........ 19 | ..........43....43....43........ 20 | ................................ 21 | ...12........................... 22 | ...43........................... 23 | ...........1212121212121212..... 24 | .......12..4343434343434343..... 25 | .....124312121212121212121212... 26 | .....431243434343434343434343... 27 | .......43..1212121212121212..... 28 | ...........4343434343434343..... 29 | ...12........................... 30 | ...43........................... 31 | ................................ 32 | ..........12....12....12........ 33 | ..........43....43....43........ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ...12........................... 38 | ...43........................... 39 | ............12121212121212...... 40 | .......12...43434343434343...... 41 | .......43..12121212121212....... 42 | .......12..43434343434343....... 43 | .......43...12121212121212...... 44 | ............43434343434343...... 45 | ...12........................... 46 | ...43........................... 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | .......12....................... 57 | .......43...121212121212........ 58 | .......12...434343434343........ 59 | .......43....................... 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | .............1212121212......... 74 | .............4343434343......... 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/chip.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | ......12..12..12..12.12......... 4 | ......43..43..43..43.43......... 5 | ......12121212121212121212...... 6 | ..1212434343434343434343431212.. 7 | ..4343121212121212121212124343.. 8 | ......43434343434343434343...... 9 | ..1212121212121212121212121212.. 10 | ..4343434343434343434343434343.. 11 | ......12121212121212121212...... 12 | ..1212434343434343434343431212.. 13 | ..4343121212121212121212124343.. 14 | ......43434343434343434343...... 15 | ......12..12..12..12..12........ 16 | ......43..43..43..43..43........ 17 | ................................ 18 | ................................ 19 | ................................ 20 | ................................ 21 | ......12121212121212121212...... 22 | ....124343434343434343434312.... 23 | ....431212121212121212121243.... 24 | ......43434343434343434343...... 25 | ....12121212........12121212.... 26 | ....43434343........43434343.... 27 | ......12121212121212121212...... 28 | ....124343434343434343434312.... 29 | ....431212121212121212121243.... 30 | ......43434343434343434343...... 31 | ................................ 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ................................ 39 | ........1212121212121212........ 40 | ........4343434343434343........ 41 | ........12............12........ 42 | ........43............43........ 43 | ........1212121212121212........ 44 | ........4343434343434343........ 45 | ................................ 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ........12............12........ 58 | ........43............43........ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/clubs.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ...12......12......12......12... 3 | .124312..124312..124312..124312. 4 | .43..43..43..43..43..43..43..43. 5 | 12....1212....1212....1212....12 6 | 43....4343....4343....4343....43 7 | .12..12..12..12..12..12..12..12. 8 | .431243..431243..431243..431243. 9 | ...43......43......43......43... 10 | ...12......12......12......12... 11 | .124312..124312..124312..124312. 12 | .43..43..43..43..43..43..43..43. 13 | 12....1212....1212....1212....12 14 | 43....4343....4343....4343....43 15 | .12..12..12..12..12..12..12..12. 16 | .431243..431243..431243..431243. 17 | ...43......43......43......43... 18 | ................................ 19 | ................................ 20 | ................................ 21 | .......12......12......12....... 22 | .......43......43......43....... 23 | ................................ 24 | ................................ 25 | ...12......12......12......12... 26 | ...43......43......43......43... 27 | ................................ 28 | ................................ 29 | .......12......12......12....... 30 | .......43......43......43....... 31 | ................................ 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ................................ 39 | ................................ 40 | ................................ 41 | ................................ 42 | ................................ 43 | ................................ 44 | ................................ 45 | ................................ 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/cross.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | 12....12121212121212121212....12 3 | 4312..43434343434343434343..1243 4 | 124312........1212........124312 5 | 43124312......4343......12431243 6 | ..43124312....1212....12431243.. 7 | ....43124312..4343..12431243.... 8 | ......43124312121212431243...... 9 | ........4312434343431243........ 10 | ........1243121212124312........ 11 | ......12431243434343124312...... 12 | ....12431243..1212..43124312.... 13 | ..12431243....4343....43124312.. 14 | 12431243......1212......43124312 15 | 431243........4343........431243 16 | 1243..12121212121212121212..4312 17 | 43....43434343434343434343....43 18 | 12......1212121212121212......12 19 | 4312....4343434343434343....1243 20 | 124312........1212........124312 21 | 43124312......4343......12431243 22 | ..43124312....1212....12431243.. 23 | ....431243....4343....431243.... 24 | ......4312....1212....1243...... 25 | ........43....4343....43........ 26 | ........12....1212....12........ 27 | ......1243....4343....4312...... 28 | ....124312....1212....124312.... 29 | ..12431243....4343....43124312.. 30 | 12431243......1212......43124312 31 | 431243........4343........431243 32 | 1243....1212121212121212....4312 33 | 43......4343434343434343......43 34 | 12........121212121212........12 35 | 4312......434343434343......1243 36 | 124312........1212........124312 37 | 43124312......4343......12431243 38 | ..43124312....1212....12431243.. 39 | ....431243....4343....431243.... 40 | ......4312....1212....1243...... 41 | ........43....4343....43........ 42 | ........12....1212....12........ 43 | ......1243....4343....4312...... 44 | ....124312....1212....124312.... 45 | ..12431243....4343....43124312.. 46 | 12431243......1212......43124312 47 | 431243........4343........431243 48 | 1243......121212121212......4312 49 | 43........434343434343........43 50 | ...............12............... 51 | ...............43............... 52 | ...............12............... 53 | ...............43............... 54 | ...............12............... 55 | ...............43............... 56 | ...............12............... 57 | ...............43............... 58 | ...............12............... 59 | ...............43............... 60 | ...............12............... 61 | ...............43............... 62 | ...............12............... 63 | ...............43............... 64 | ...............12............... 65 | ...............43............... 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/eagle.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ..............121212............ 3 | ..............43434312.......... 4 | ..............1212..43.......... 5 | ......1212....4343....1212...... 6 | ....124343121212121212434312.... 7 | ....431212434343434343121243.... 8 | ....124343121212121212434312.... 9 | ....431212434343434343121243.... 10 | ..12124343....1212....43431212.. 11 | ..434312......4343......124343.. 12 | ..121243......1212......431212.. 13 | ..4343........4343........4343.. 14 | ..12........12.12.12........12.. 15 | ..43........43.43.43........43.. 16 | ..........12.12..12.12.......... 17 | ..........43.43..43.43.......... 18 | ..............121212............ 19 | ..............434343............ 20 | ..............1212.............. 21 | ..............4343.............. 22 | ....12121212..1212..12121212.... 23 | ....43434343..4343..43434343.... 24 | ....12121212..1212..12121212.... 25 | ....43434343..4343..43434343.... 26 | ...12.........1212.........12... 27 | ...43.12......4343......12.43... 28 | ...12.43......1212......43.12... 29 | ...43.........4343.........43... 30 | ............12....12............ 31 | ............43....43............ 32 | ..........12.12..12.12.......... 33 | ..........43.43..43.43.......... 34 | ..............121212............ 35 | ..............434343............ 36 | ................................ 37 | ..............1212.............. 38 | .....121212...4343...121212..... 39 | .....434343...1212...434343..... 40 | .....121212...4343...121212..... 41 | .....434343...1212...434343..... 42 | ..............4343.............. 43 | ...12.........1212.........12... 44 | ...43.........4343.........43... 45 | ................................ 46 | ................................ 47 | ................................ 48 | ..........12.12..12.12.......... 49 | ..........43.43..43.43.......... 50 | ................12.............. 51 | ................43.............. 52 | ................................ 53 | ...............12............... 54 | ......1212.....43.....1212...... 55 | ......4343.....12.....4343...... 56 | ......1212.....43.....1212...... 57 | ......4343.....12.....4343...... 58 | ...............43............... 59 | ...............12............... 60 | ...............43............... 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | .......12..............12....... 71 | .......43..............43....... 72 | .......12..............12....... 73 | .......43..............43....... 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/girl.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | .......121212121212121212....... 3 | .....1243434343434343434312..... 4 | .....4312121212121212121243..... 5 | .121212434343434343434343121212. 6 | .434343121212121212121212434343. 7 | .121212434343434343434343121212. 8 | .434343..................434343. 9 | .1212......12......12......1212. 10 | .4343......43..12..43......4343. 11 | .12.12.........43.........12.12. 12 | .43.43.....12......12.....43.43. 13 | .12...12...4312121243...12...12. 14 | .43...43.....434343.....43...43. 15 | .12.....12............12.....12. 16 | .43.....4312121212121243.....43. 17 | ..........434343434343.......... 18 | .......121212121212121212....... 19 | .....1243434343434343434312..... 20 | .....4312121212121212121243..... 21 | ...12124343434343434343431212... 22 | .124343....121212121212..434312. 23 | .4312......434343434343..121243. 24 | .1243....................434312. 25 | .4312......................1243. 26 | .1243......................4312. 27 | .43.12....................12.43. 28 | .12.43....................43.12. 29 | .43...12................12...43. 30 | ......43................43...... 31 | ........12............12........ 32 | ........4312121212121243........ 33 | ..........434343434343.......... 34 | .......121212121212121212....... 35 | .....1243434343434343434312..... 36 | .....43...12121212121212.43..... 37 | ...12.....43434343434343...12... 38 | ...43.........1212.........43... 39 | .1212.........4343.........1212. 40 | .4343......................4343. 41 | .1212......................12... 42 | .4343......................43... 43 | ....12....................12.... 44 | ....43....................43.... 45 | ......12................12...... 46 | ......43................43...... 47 | ................................ 48 | ................................ 49 | ................................ 50 | ........1212121212121212........ 51 | ........4343434343434343.12..... 52 | .............121212......43..... 53 | .............434343........12... 54 | ...........................43... 55 | ...........................12... 56 | ...........................43... 57 | ...........................12... 58 | ...........................43... 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ............12121212............ 67 | ............43434343............ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/glade.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | 1212........................1212 3 | 4343........................4343 4 | 1212........................1212 5 | 4343...121212121212121212...4343 6 | .......434343434343434343....... 7 | .......121212121212121212....... 8 | .......434343434343434343....... 9 | .......12121212..12121212....... 10 | .......43434343..43434343....... 11 | .......121212121212121212....... 12 | .......434343434343434343....... 13 | .......121212121212121212....... 14 | 1212...434343434343434343...1212 15 | 4343........................4343 16 | 1212........................1212 17 | 4343........................4343 18 | .12..........................12. 19 | .43..........................43. 20 | .12..........................12. 21 | .43......12121212121212......43. 22 | .........43434343434343......... 23 | .......121212121212121212....... 24 | .......434343434343434343....... 25 | .......121212......121212....... 26 | .......434343......434343....... 27 | .......121212121212121212....... 28 | .......434343434343434343....... 29 | .........12121212121212......... 30 | .12......43434343434343......12. 31 | .43..........................43. 32 | .12..........................12. 33 | .43..........................43. 34 | ................................ 35 | .12..........................12. 36 | .43..........................43. 37 | .........121212..121212......... 38 | .........434343..434343......... 39 | .......1212..........1212....... 40 | .......4343..........4343....... 41 | .......12..............12....... 42 | .......43..............43....... 43 | .......1212..........1212....... 44 | .......4343..........4343....... 45 | .........121212..121212......... 46 | .........434343..434343......... 47 | .12..........................12. 48 | .43..........................43. 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | .........12..........12......... 54 | .........43..........43......... 55 | .......12..............12....... 56 | .......43..............43....... 57 | ................................ 58 | ................................ 59 | .......12..............12....... 60 | .......43..............43....... 61 | .........12..........12......... 62 | .........43..........43......... 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | .........12..........12......... 70 | .........43..........43......... 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | .........12..........12......... 78 | .........43..........43......... 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/grid.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | 12121212121212121212121212121212 3 | 43434343434343434343434343434343 4 | 12..1212......1212......1212..12 5 | 43..4343......4343......4343..43 6 | 12121212121212121212121212121212 7 | 43434343434343434343434343434343 8 | 12..1212......1212......1212..12 9 | 43..4343......4343......4343..43 10 | 12..1212......1212......1212..12 11 | 43..4343......4343......4343..43 12 | 12121212121212121212121212121212 13 | 43434343434343434343434343434343 14 | 12..1212......1212......1212..12 15 | 43..4343......4343......4343..43 16 | 12121212121212121212121212121212 17 | 43434343434343434343434343434343 18 | ................................ 19 | ................................ 20 | .....12........12........12..... 21 | .....43........43........43..... 22 | ....1212......1212......1212.... 23 | ....4343......4343......4343.... 24 | .....12........12........12..... 25 | .....43........43........43..... 26 | .....12........12........12..... 27 | .....43........43........43..... 28 | ...121212....121212.....1212.... 29 | ...434343....434343.....4343.... 30 | .....12........12........12..... 31 | .....43........43........43..... 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | .....12........12........12..... 39 | .....43........43........43..... 40 | ................................ 41 | ................................ 42 | ................................ 43 | ................................ 44 | .....12........12........12..... 45 | .....43........43........43..... 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | .....12........12........12..... 55 | .....43........43........43..... 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | .....12........12........12..... 61 | .....43........43........43..... 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/hole.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ....121212121212121212121212.... 3 | ....434343434343434343434343.... 4 | ....121212121212121212121212.... 5 | ....434343434343434343434343.... 6 | ....121212121212121212121212.... 7 | ....434343434343434343434343.... 8 | ....1212121212....1212121212.... 9 | ....4343434343....4343434343.... 10 | ....1212121212....1212121212.... 11 | ....4343434343....4343434343.... 12 | ....121212121212121212121212.... 13 | ....434343434343434343434343.... 14 | ....121212121212121212121212.... 15 | ....434343434343434343434343.... 16 | ....121212121212121212121212.... 17 | ....434343434343434343434343.... 18 | ................................ 19 | ................................ 20 | ......12121212121212121212...... 21 | ......43434343434343434343...... 22 | ......12121212121212121212...... 23 | ......43434343434343434343...... 24 | ......12121212....12121212...... 25 | ......43434343....43434343...... 26 | ......12121212....12121212...... 27 | ......43434343....43434343...... 28 | ......12121212121212121212...... 29 | ......43434343434343434343...... 30 | ......12121212121212121212...... 31 | ......43434343434343434343...... 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ........1212121212121212........ 39 | ........4343434343434343........ 40 | ........121212....121212........ 41 | ........434343....434343........ 42 | ........121212....121212........ 43 | ........434343....434343........ 44 | ........1212121212121212........ 45 | ........4343434343434343........ 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ..........121212121212.......... 55 | ..........434343434343.......... 56 | ..........1212....1212.......... 57 | ..........4343....4343.......... 58 | ..........1212....1212.......... 59 | ..........4343....4343.......... 60 | ..........121212121212.......... 61 | ..........434343434343.......... 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ............12121212............ 71 | ............43434343............ 72 | ............12....12............ 73 | ............43....43............ 74 | ............12....12............ 75 | ............43....43............ 76 | ............12121212............ 77 | ............43434343............ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/key.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | ................................ 4 | ................................ 5 | ....12.......................... 6 | ..124312........................ 7 | ..43..43..........12121212121212 8 | 1212..12121212121243434343434343 9 | 4343..43434343434312121212121212 10 | ..12..12..........43434343434343 11 | ..431243..........12121212121212 12 | ....43............43434343434343 13 | ..................121212..12..12 14 | ..................434343..43..43 15 | ................................ 16 | ................................ 17 | ................................ 18 | ................................ 19 | ................................ 20 | ................................ 21 | ....12.......................... 22 | ..124312........................ 23 | ..43..43..........12121212121212 24 | 1212..12121212121243434343434343 25 | 4343..43434343434312121212121212 26 | ..12..12..........43434343434343 27 | ..431243..........12121212121212 28 | ....43............43434343434343 29 | ..................12..12..12..12 30 | ..................43..43..43..43 31 | ................................ 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ....12.......................... 38 | ....43.......................... 39 | ..................12121212121212 40 | ..12..12121212121243434343434343 41 | ..43..43434343434312121212121212 42 | ..................43434343434343 43 | ....12............12......12.... 44 | ....43............43......43.... 45 | ..................12..12..12..12 46 | ..................43..43..43..43 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ....12.......................... 54 | ....43.......................... 55 | ..................12121212121212 56 | ..12..12..........43434343434343 57 | ..43..43..........12............ 58 | ..................43............ 59 | ....12.......................... 60 | ....43.......................... 61 | ..................12..12..12..12 62 | ..................43..43..43..43 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ..................12..........12 72 | ..................43..........43 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ..................12..12..12..12 78 | ..................43..43..43..43 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/km.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | ................................ 4 | ..1212....1212..1212......1212.. 5 | ..4343....4343..4343......4343.. 6 | ..1212..1212....121212..121212.. 7 | ..4343..4343....43434312434343.. 8 | ..12121212......12121243121212.. 9 | ..43434343......43434312434343.. 10 | ..12121212......1212..43..1212.. 11 | ..43434343......4343..12..4343.. 12 | ..1212..1212....1212..43..1212.. 13 | ..4343..4343....4343......4343.. 14 | ..1212....1212..1212......1212.. 15 | ..4343....4343..4343......4343.. 16 | ................................ 17 | ................................ 18 | ................................ 19 | ................................ 20 | ..1212....12....1212......1212.. 21 | ..4343....43....4343......4343.. 22 | ..12....12......12..12..12..12.. 23 | ..43....43......43..431243..43.. 24 | ..12..12........12....43....12.. 25 | ..43124312......43....12....43.. 26 | ..12431243......12....43....12.. 27 | ..43..43........43....12....43.. 28 | ..12....12......12....43....12.. 29 | ..43....43......43..........43.. 30 | ..1212....12....1212......1212.. 31 | ..4343....43....4343......4343.. 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ..................12......12.... 37 | ..12............1243......4312.. 38 | ..43............43..12..12..43.. 39 | ..12............12..431243..12.. 40 | ..43............43....43....43.. 41 | ..121212........12....12....12.. 42 | ..434343........43....43....43.. 43 | ..12............12....12....12.. 44 | ..43............43....43....43.. 45 | ..12............12..........12.. 46 | ..43............43..........43.. 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ..12............12..12..12..12.. 55 | ..43............43..431243..43.. 56 | ..12............12....43....12.. 57 | ..4312..........43....12....43.. 58 | ..1243..........12....43....12.. 59 | ..43............43....12....43.. 60 | ..12............12....43....12.. 61 | ..43............43..........43.. 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ..12............12..........12.. 72 | ..43............43..........43.. 73 | ..12............12....12....12.. 74 | ..43............43....43....43.. 75 | ..12............12..........12.. 76 | ..43............43..........43.. 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/mask.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ..1212121212121212121212121212.. 3 | ..4343434343434343434343434343.. 4 | 12121212121212121212121212121212 5 | 43434343434343434343434343434343 6 | 12121212121212121212121212121212 7 | 43434343434343434343434343434343 8 | ..1212121212121212121212121212.. 9 | ..4343434343434343434343434343.. 10 | ..1212121212121212121212121212.. 11 | ..4343434343434343434343434343.. 12 | ....12121212..12..12..121212.... 13 | ....43434343..43..43..434343.... 14 | ......1212..12..12..121212...... 15 | ......4343..43..43..434343...... 16 | ........1212121212121212........ 17 | ........4343434343434343........ 18 | ..121212121212....121212121212.. 19 | ..434343434343....434343434343.. 20 | 12..........12....12..........12 21 | 43....12....43....43....12....43 22 | 1212..43....12....12....43..1212 23 | 4343........43....43........4343 24 | ..1212121212121212121212121212.. 25 | ..4343434343434343434343434343.. 26 | ......12121212121212121212...... 27 | ......43434343434343434343...... 28 | ........12............12........ 29 | ........43............43........ 30 | ........12............12........ 31 | ........43............43........ 32 | ..........121212121212.......... 33 | ..........434343434343.......... 34 | ..12121212............12121212.. 35 | ..43434343............43434343.. 36 | ................................ 37 | ................................ 38 | ................................ 39 | ................................ 40 | ..............1212.............. 41 | ..............4343.............. 42 | ...............12............... 43 | ...............43............... 44 | ................................ 45 | ................................ 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ...............12............... 57 | ...............43............... 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/maya.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ...1212121212......1212121212... 3 | ...4343434343......4343434343... 4 | ...1212121212......1212121212... 5 | ...4343434343......4343434343... 6 | ...12121212121212121212121212... 7 | ...43434343434343434343434343... 8 | ...........1212121212........... 9 | ...........4343434343........... 10 | ...........1212121212........... 11 | ...........4343434343........... 12 | ...12121212121212121212121212... 13 | ...43434343434343434343434343... 14 | ...1212121212......1212121212... 15 | ...4343434343......4343434343... 16 | ...1212121212......1212121212... 17 | ...4343434343......4343434343... 18 | ................................ 19 | .....121212..........121212..... 20 | .....434343..........434343..... 21 | .....121212..........121212..... 22 | .....434343..........434343..... 23 | .............121212............. 24 | .............434343............. 25 | .............121212............. 26 | .............434343............. 27 | .............121212............. 28 | .............434343............. 29 | .....121212..........121212..... 30 | .....434343..........434343..... 31 | .....121212..........121212..... 32 | .....434343..........434343..... 33 | ................................ 34 | ................................ 35 | ................................ 36 | .....121212..........121212..... 37 | .....434343..........434343..... 38 | ................................ 39 | ..............1212.............. 40 | ..............4343.............. 41 | ..............1212.............. 42 | ..............4343.............. 43 | ..............1212.............. 44 | ..............4343.............. 45 | ................................ 46 | .....121212..........121212..... 47 | .....434343..........434343..... 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ......1212............1212...... 53 | ......4343............4343...... 54 | ................................ 55 | ...............12............... 56 | ...............43............... 57 | ...............12............... 58 | ...............43............... 59 | ...............12............... 60 | ...............43............... 61 | ................................ 62 | ......1212............1212...... 63 | ......4343............4343...... 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | .......12..............12....... 69 | .......43..............43....... 70 | ................................ 71 | ................................ 72 | ...............12............... 73 | ...............43............... 74 | ...............12............... 75 | ...............43............... 76 | ................................ 77 | ................................ 78 | .......12..............12....... 79 | .......43..............43....... 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/maze.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | 12121212121212121212121212121212 3 | 43434343434343434343434343434343 4 | 12121212121212121212121212121212 5 | 43434343434343434343434343434343 6 | 12121212121212121212121212121212 7 | 43434343434343434343434343434343 8 | 12121212121212121212121212121212 9 | 43434343434343434343434343434343 10 | 12121212121212121212121212121212 11 | 43434343434343434343434343434343 12 | 12121212121212121212121212121212 13 | 43434343434343434343434343434343 14 | 12121212121212121212121212121212 15 | 43434343434343434343434343434343 16 | 12121212121212121212121212121212 17 | 43434343434343434343434343434343 18 | 12..12121212121212121212..12..12 19 | 43..43434343434343434343..43..43 20 | 12........12..........12..12..12 21 | 43........43..........43..43..43 22 | 12..12121212..121212......12..12 23 | 43..43434343..434343......43..43 24 | ....12............121212..12.... 25 | ....43............434343..43.... 26 | 12..12..12121212121212....12..12 27 | 43..43..43434343434343....43..43 28 | 12........12........12..1212..12 29 | 43........43........43..4343..43 30 | 12..12121212..12....12.......... 31 | 43..43434343..43....43.......... 32 | 12..12........12....121212121212 33 | 43..43........43....434343434343 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ................................ 39 | ................................ 40 | ................................ 41 | ................................ 42 | ................................ 43 | ................................ 44 | ................................ 45 | ................................ 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/mesh.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | .121212..121212..121212..121212. 4 | .434343..434343..434343..434343. 5 | .12..12..12..12..12..12..12..12. 6 | .43..43..43..43..43..43..43..43. 7 | .121212121212121212121212121212. 8 | .434343434343434343434343434343. 9 | .....12..12..12..12..12..12..... 10 | .....43..43..43..43..43..43..... 11 | .121212121212121212121212121212. 12 | .434343434343434343434343434343. 13 | .12..12..12..12..12..12..12..12. 14 | .43..43..43..43..43..43..43..43. 15 | .121212..121212..121212..121212. 16 | .434343..434343..434343..434343. 17 | ................................ 18 | ................................ 19 | .121212..121212..121212..121212. 20 | .434343..434343..434343..434343. 21 | .12..12..12..12..12..12..12..12. 22 | .43..43..43..43..43..43..43..43. 23 | .121212..121212..121212..121212. 24 | .434343..434343..434343..434343. 25 | .........12..12..12..12......... 26 | .........43..43..43..43......... 27 | .121212..121212..121212..121212. 28 | .434343..434343..434343..434343. 29 | .12..12..12..12..12..12..12..12. 30 | .43..43..43..43..43..43..43..43. 31 | .121212..121212..121212..121212. 32 | .434343..434343..434343..434343. 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ................................ 39 | ................................ 40 | ................................ 41 | ................................ 42 | ................................ 43 | ................................ 44 | ................................ 45 | ................................ 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/moth.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | 12121212.....121212.....12121212 4 | 4343434312...434343...1243434343 5 | ..12..124312...12...124312..12.. 6 | ..43..43124312.43.12431243..43.. 7 | ...12...4312431212431243...12... 8 | ...43.....431243431243.....43... 9 | ..1212.1212.43121243.1212.1212.. 10 | ..4343.4343.12434312.4343.4343.. 11 | ...12.....124312124312.....12... 12 | ...43...1243124343124312...43... 13 | ..12..12431243.12.43124312..12.. 14 | ..43..431243...43...431243..43.. 15 | ..12121243.....12.....43121212.. 16 | 12434343.......43.......43434312 17 | 43............................43 18 | ................................ 19 | 12121212......1212......12121212 20 | 43434343......4343......43434343 21 | ..12....12.....12.....12....12.. 22 | ..43....43.....43.....43....43.. 23 | ............12121212............ 24 | ............43434343............ 25 | ...12...12....1212....12...12... 26 | ...43...43....4343....43...43... 27 | ............12121212............ 28 | ............43434343............ 29 | ..12....12.....12.....12....12.. 30 | ..43....43.....43.....43....43.. 31 | ..121212.......12.......121212.. 32 | 12434343.......43.......43434312 33 | 43............................43 34 | ................................ 35 | ..1212.........12.........1212.. 36 | ..4343.........43.........4343.. 37 | ...............12............... 38 | ...............43............... 39 | .............121212............. 40 | .............434343............. 41 | ...............12............... 42 | ...............43............... 43 | .............121212............. 44 | .............434343............. 45 | ...............12............... 46 | ...............43............... 47 | ..1212....................1212.. 48 | ..4343....................4343.. 49 | ................................ 50 | ................................ 51 | ...12......................12... 52 | ...43......................43... 53 | ................................ 54 | ................................ 55 | ..............1212.............. 56 | ..............4343.............. 57 | ...............12............... 58 | ...............43............... 59 | ..............1212.............. 60 | ..............4343.............. 61 | ................................ 62 | ................................ 63 | ...12......................12... 64 | ...43......................43... 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ...............12............... 72 | ...............43............... 73 | ................................ 74 | ................................ 75 | ...............12............... 76 | ...............43............... 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/order.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ........1212121212121212........ 3 | ...12...4343434343434343...12... 4 | ...43......1212121212......43... 5 | ...121212..4343434343..121212... 6 | ...434343....121212....434343... 7 | ...121212....434343....121212... 8 | ...43434312121212121212434343... 9 | ...12121243434343434343121212... 10 | ...43434312121212121212434343... 11 | ...12121243434343434343121212... 12 | ...434343....121212....434343... 13 | ...121212....434343....121212... 14 | ...434343..1212121212..434343... 15 | ...12......4343434343......12... 16 | ...43...1212121212121212...43... 17 | ........4343434343434343........ 18 | .........12121212121212......... 19 | .........43434343434343......... 20 | ..............1212.............. 21 | ...12.........4343.........12... 22 | ...43..........12..........43... 23 | ...1212........43........1212... 24 | ...4343........12........4343... 25 | ...12121212121243121212121212... 26 | ...43434343434312434343434343... 27 | ...1212........43........1212... 28 | ...4343........12........4343... 29 | ...12..........43..........12... 30 | ...43.........1212.........43... 31 | ..............4343.............. 32 | .........12121212121212......... 33 | .........43434343434343......... 34 | .............121212............. 35 | .............434343............. 36 | ...............12............... 37 | ...............43............... 38 | ................................ 39 | ...12......................12... 40 | ...43......................43... 41 | ...1212........12........1212... 42 | ...4343........43........4343... 43 | ...12......................12... 44 | ...43......................43... 45 | ................................ 46 | ...............12............... 47 | ...............43............... 48 | .............121212............. 49 | .............434343............. 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ...............12............... 58 | ...............43............... 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/penta.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | ...12121212..........12121212... 4 | ...43434343..........43434343... 5 | ...12121212121212121212121212... 6 | ...43434343434343434343434343... 7 | ...12121212.12121212.12121212... 8 | ...43434343.43434343.43434343... 9 | ......12....12121212....12...... 10 | ......43....43434343....43...... 11 | ...12121212.12121212.12121212... 12 | ...43434343.43434343.43434343... 13 | ...12121212121212121212121212... 14 | ...43434343434343434343434343... 15 | ...12121212..........12121212... 16 | ...43434343..........43434343... 17 | ................................ 18 | ................................ 19 | ...12....12..........12....12... 20 | ...43121243..........43121243... 21 | .....4343..............4343..... 22 | .....1212..............1212..... 23 | ...12434312.12....12.12434312... 24 | ...43....43.43121243.43....43... 25 | ............12434312............ 26 | ............43121243............ 27 | ...12....12.12434312.12....12... 28 | ...43121243.43....43.43121243... 29 | .....4343..............4343..... 30 | .....1212..............1212..... 31 | ...12434312..........12434312... 32 | ...43....43..........43....43... 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | .....1212..............1212..... 38 | .....4343..............4343..... 39 | ................................ 40 | ................................ 41 | ..............1212.............. 42 | ..............4343.............. 43 | ................................ 44 | ................................ 45 | .....1212..............1212..... 46 | .....4343..............4343..... 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ......12................12...... 54 | ......43................43...... 55 | ................................ 56 | ................................ 57 | ...............12............... 58 | ...............43............... 59 | ................................ 60 | ................................ 61 | ......12................12...... 62 | ......43................43...... 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ...............12............... 74 | ...............43............... 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/star.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ...............12............... 3 | .......12......43......12....... 4 | .......43.....1212.....43....... 5 | .........12...4343...12......... 6 | .........43..121212..43......... 7 | ...........1243434312........... 8 | .........12431212124312......... 9 | ...12121243124343431243121212... 10 | ...43434312431212124312434343... 11 | .........43124343431243......... 12 | ...........4312121243........... 13 | .........12..434343..12......... 14 | .........43...1212...43......... 15 | .......12.....4343.....12....... 16 | .......43......12......43....... 17 | ...............43............... 18 | ................................ 19 | .......................12....... 20 | ...............12......43....... 21 | .........12....43....12......... 22 | .........43..121212..43......... 23 | ...........1243434312........... 24 | ...........4312121243........... 25 | ...121212121243434312121212..... 26 | ...434343434312121243434343..... 27 | ...........1243434312........... 28 | ...........4312121243........... 29 | .........12..434343..12......... 30 | .........43....12....43......... 31 | .......12......43......12....... 32 | .......43..............43....... 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | .........12..........12......... 38 | .........43..121212..43......... 39 | ...........1243434312........... 40 | ...........4312121243........... 41 | .......121212434343121212....... 42 | .......434343121212434343....... 43 | ...........1243434312........... 44 | ...........4312121243........... 45 | .........12..434343..12......... 46 | .........43..........43......... 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | .............121212............. 56 | .............434343............. 57 | .........12121212121212......... 58 | .........43434343434343......... 59 | .............121212............. 60 | .............434343............. 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ...............12............... 72 | ...............43............... 73 | ...........1212121212........... 74 | ...........4343434343........... 75 | ...............12............... 76 | ...............43............... 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/stax.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | 12121212..121212121212..12121212 4 | 43434343..434343434343..43434343 5 | 12............1212............12 6 | 43............4343............43 7 | 12121212......1212......12121212 8 | 43434343......4343......43434343 9 | 12............1212............12 10 | 43............4343............43 11 | 12121212......1212......12121212 12 | 43434343......4343......43434343 13 | 12............1212............12 14 | 43............4343............43 15 | 12121212..121212121212..12121212 16 | 43434343..434343434343..43434343 17 | ................................ 18 | ................................ 19 | 121212.....1212121212.....121212 20 | 434343.....4343434343.....434343 21 | 12.............12.............12 22 | 43.............43.............43 23 | 121212.........12.........121212 24 | 434343.........43.........434343 25 | 12.............12.............12 26 | 43.............43.............43 27 | 121212.........12.........121212 28 | 434343.........43.........434343 29 | 12.............12.............12 30 | 43.............43.............43 31 | 121212.....1212121212.....121212 32 | 434343.....4343434343.....434343 33 | ................................ 34 | ................................ 35 | 1212.........121212.........1212 36 | 4343.........434343.........4343 37 | 12.............12.............12 38 | 43.............43.............43 39 | 1212...........12...........1212 40 | 4343...........43...........4343 41 | 12.............12.............12 42 | 43.............43.............43 43 | 1212...........12...........1212 44 | 4343...........43...........4343 45 | 12.............12.............12 46 | 43.............43.............43 47 | 1212.........121212.........1212 48 | 4343.........434343.........4343 49 | ................................ 50 | ................................ 51 | 12.............12.............12 52 | 43.............43.............43 53 | 12.............12.............12 54 | 43.............43.............43 55 | 12.............12.............12 56 | 43.............43.............43 57 | 12.............12.............12 58 | 43.............43.............43 59 | 12.............12.............12 60 | 43.............43.............43 61 | 12.............12.............12 62 | 43.............43.............43 63 | 12.............12.............12 64 | 43.............43.............43 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ...............12............... 70 | ...............43............... 71 | ...............12............... 72 | ...............43............... 73 | ...............12............... 74 | ...............43............... 75 | ...............12............... 76 | ...............43............... 77 | ...............12............... 78 | ...............43............... 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/swirl.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | 12..12121212121212121212121212.. 4 | 43..4343434343434343434343434312 5 | 12.12.........................43 6 | 43.43..12121212121212121212...12 7 | 12.12..4343434343434343434312.43 8 | 43.43.12...................43.12 9 | 12.12.43...................12.43 10 | 43.43.121212121212121212...43.12 11 | 12.12.434343434343434343...12.43 12 | 43.43......................43.12 13 | 12.12121212121212121212121212.43 14 | 43.43434343434343434343434343.12 15 | 12............................43 16 | 43121212121212121212121212121212 17 | ..434343434343434343434343434343 18 | ................................ 19 | 12.............................. 20 | 43.............................. 21 | 12.............................. 22 | 43.............................. 23 | 12.............................. 24 | 43.............................. 25 | 12.............................. 26 | 43......1212121212121212........ 27 | 12......4343434343434343........ 28 | 43.............................. 29 | 12.............................. 30 | 43.............................. 31 | 12.............................. 32 | 431212.......................... 33 | ..4343.......................... 34 | ................................ 35 | 12.............................. 36 | 43.............................. 37 | 12.............................. 38 | 43.............................. 39 | 12.............................. 40 | 43.............................. 41 | 12.............................. 42 | 43..........121212121212........ 43 | 12..........434343434343........ 44 | 43.............................. 45 | 12.............................. 46 | 43.............................. 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | 12.............................. 52 | 43.............................. 53 | 12.............................. 54 | 43.............................. 55 | 12.............................. 56 | 43.............................. 57 | 12.............................. 58 | 43..............12121212........ 59 | ................43434343........ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | 12.............................. 68 | 43.............................. 69 | 12.............................. 70 | 43.............................. 71 | ................................ 72 | ................................ 73 | ................................ 74 | ....................1212........ 75 | ....................4343........ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/tomb.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | ................................ 4 | ......12121212121212121212...... 5 | ......43434343434343434343...... 6 | ......12121212121212121212...... 7 | ......43434343434343434343...... 8 | ......12121212121212121212...... 9 | ......43434343434343434343...... 10 | ......12121212121212121212...... 11 | ......43434343434343434343...... 12 | ......12121212121212121212...... 13 | ......43434343434343434343...... 14 | ............12121212............ 15 | ............43434343............ 16 | ..............1212.............. 17 | ..............4343.............. 18 | ................................ 19 | ................................ 20 | ......12121212121212121212...... 21 | ......43434343434343434343...... 22 | ......12121212121212121212...... 23 | ......43434343434343434343...... 24 | ........1212...12...1212........ 25 | ........4343...43...4343........ 26 | ......12121212....12121212...... 27 | ......43434343....43434343...... 28 | ......12121212....12121212...... 29 | ......43434343....43434343...... 30 | ............12....12............ 31 | ............43....43............ 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ......12................12...... 37 | ......43................43...... 38 | ........1212121212121212........ 39 | ........4343434343434343........ 40 | ........12............12........ 41 | ........43............43........ 42 | ........121212....121212........ 43 | ........434343....434343........ 44 | ......12....12....12....12...... 45 | ......43....43....43....43...... 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ......12................12...... 53 | ......43................43...... 54 | ...........1212121212........... 55 | ...........4343434343........... 56 | ........12............12........ 57 | ........43............43........ 58 | ............12....12............ 59 | ............43....43............ 60 | ......12....12....12....12...... 61 | ......43....43....43....43...... 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ......12................12...... 69 | ......43................43...... 70 | ............12121212............ 71 | ............43434343............ 72 | ................................ 73 | ................................ 74 | ............12....12............ 75 | ............43....43............ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/totem.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | 12121212121212121212121212121212 3 | 43434343434343434343434343434343 4 | ..121212121212....121212121212.. 5 | ..434343434343....434343434343.. 6 | ....1212121212....1212121212.... 7 | ....4343434343....4343434343.... 8 | ............12121212............ 9 | ............43434343............ 10 | ............12121212............ 11 | ............43434343............ 12 | ............12121212............ 13 | ............43434343............ 14 | ............12121212............ 15 | ............43434343............ 16 | ............12121212............ 17 | ............43434343............ 18 | ........1212121212121212........ 19 | ........4343434343434343........ 20 | ....12......12....12......12.... 21 | ....4312121243....4312121243.... 22 | ......43434312....12434343...... 23 | ............43....43............ 24 | ............12....12............ 25 | ............43....43............ 26 | ............12....12............ 27 | ............43....43............ 28 | ............12....12............ 29 | ............43....43............ 30 | ............12....12............ 31 | ............43....43............ 32 | ............12....12............ 33 | ............43....43............ 34 | ..........121212121212.......... 35 | ..........434343434343.......... 36 | ............12....12............ 37 | ............43....43............ 38 | ............12....12............ 39 | ............43....43............ 40 | ............12....12............ 41 | ............43....43............ 42 | ................................ 43 | ................................ 44 | ................................ 45 | ................................ 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ............12121212............ 51 | ............43434343............ 52 | ............12....12............ 53 | ............43....43............ 54 | ............12....12............ 55 | ............43....43............ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ............12121212............ 67 | ............43434343............ 68 | ............12....12............ 69 | ............43....43............ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/well.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ............12121212............ 3 | ............43434343............ 4 | ..........121212121212.......... 5 | ..........434343434343.......... 6 | ......12121212121212121212...... 7 | ....124343434343434343434312.... 8 | ....431212121212121212121243.... 9 | ....124343434343434343434312.... 10 | ....431212121212121212121243.... 11 | ....124343434343434343434312.... 12 | ....431212121212121212121243.... 13 | ......43434343434343434343...... 14 | ............12121212............ 15 | ............43434343............ 16 | ............12121212............ 17 | ............43434343............ 18 | ................................ 19 | ................................ 20 | ................................ 21 | ................................ 22 | ........1212121212121212........ 23 | ......12434343434343434312...... 24 | ......431212........121243...... 25 | ......124343........434312...... 26 | ......431212........121243...... 27 | ......124343........434312...... 28 | ......43121212121212121243...... 29 | ........4343434343434343........ 30 | ............12....12............ 31 | ............43....43............ 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ..........121212121212.......... 39 | ..........434343434343.......... 40 | ..........12........12.......... 41 | ..........43........43.......... 42 | ..........12........12.......... 43 | ..........43........43.......... 44 | ..........121212121212.......... 45 | ..........434343434343.......... 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ..........121212121212.......... 55 | ..........434343434343.......... 56 | ..........12........12.......... 57 | ..........43........43.......... 58 | ..........12........12.......... 59 | ..........43........43.......... 60 | ..........121212121212.......... 61 | ..........434343434343.......... 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ..........121212121212.......... 71 | ..........434343434343.......... 72 | ..........12........12.......... 73 | ..........43........43.......... 74 | ..........12........12.......... 75 | ..........43........43.......... 76 | ..........121212121212.......... 77 | ..........434343434343.......... 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/4_winds.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ......12..1212....1212..12...... 3 | ......43..4343....4343..43...... 4 | ......12121212121212121212...... 5 | ......43434343434343434343...... 6 | ......12..121212121212..12...... 7 | ......43..434343434343..43...... 8 | ....121212121212121212121212.... 9 | ..1243434343434343434343434312.. 10 | ..4312121212121212121212121243.. 11 | ....434343434343434343434343.... 12 | ......12..121212121212..12...... 13 | ......43..434343434343..43...... 14 | ......12121212121212121212...... 15 | ......43434343434343434343...... 16 | ......12..1212....1212..12...... 17 | ......43..4343....4343..43...... 18 | ......12..12........12..12...... 19 | ......43..43........43..43...... 20 | ......121212........121212...... 21 | ......434343........434343...... 22 | ......12..121212121212..12...... 23 | ......43..434343434343..43...... 24 | ......121212........121212...... 25 | ....12434343..1212..43434312.... 26 | ....43121212..4343..12121243.... 27 | ......434343........434343...... 28 | ......12..121212121212..12...... 29 | ......43..434343434343..43...... 30 | ......121212........121212...... 31 | ......434343........434343...... 32 | ......12..12........12..12...... 33 | ......43..43........43..43...... 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ................................ 39 | ................................ 40 | ................................ 41 | ...............12............... 42 | ...............43............... 43 | ................................ 44 | ................................ 45 | ................................ 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ...............12............... 58 | ...............43............... 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/X_shaped.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ..121212121212....121212121212.. 3 | ..434343434343....434343434343.. 4 | ........121212....121212........ 5 | ........434343....434343........ 6 | ..........1212....1212.......... 7 | ..........4343....4343.......... 8 | ............12121212............ 9 | ............43434343............ 10 | ..............1212.............. 11 | ..............4343.............. 12 | ............12121212............ 13 | ............43434343............ 14 | ........121212....121212........ 15 | ........434343....434343........ 16 | ..121212121212....121212121212.. 17 | ..434343434343....434343434343.. 18 | ...1212121212......1212121212... 19 | ...4343434343......4343434343... 20 | .........1212......1212......... 21 | .........4343......4343......... 22 | ..........1212....12............ 23 | ..........4343....43............ 24 | .............121212............. 25 | .............434343............. 26 | ..............1212.............. 27 | ..............4343.............. 28 | ............12121212............ 29 | ............43434343............ 30 | ..........1212....1212.......... 31 | ..........4343....4343.......... 32 | ...1212121212......1212121212... 33 | ...4343434343......4343434343... 34 | .....12121212......12121212..... 35 | .....43434343......43434343..... 36 | .........12..........12......... 37 | .........43..........43......... 38 | ............12....12............ 39 | ............43....43............ 40 | ..............1212.............. 41 | ..............4343.............. 42 | ...............12............... 43 | ...............43............... 44 | .............12..12............. 45 | .............43..43............. 46 | ............12....12............ 47 | ............43....43............ 48 | .....12121212......12121212..... 49 | .....43434343......43434343..... 50 | .......1212..........1212....... 51 | .......4343..........4343....... 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ...............12............... 57 | ...............43............... 58 | ...............12............... 59 | ...............43............... 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | .......121212......121212....... 65 | .......434343......434343....... 66 | ........12............12........ 67 | ........43............43........ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ...............12............... 74 | ...............43............... 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ..........12........12.......... 81 | ..........43........43.......... 82 | -------------------------------------------------------------------------------- /layouts/atlantis.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | 12............................12 3 | 43............................43 4 | 1212........................1212 5 | 4343........................4343 6 | 1212........................1212 7 | 43431212121212121212121212124343 8 | 12124343434343434343434343431212 9 | 434312......12121212......124343 10 | 121243......43434343......431212 11 | 43431212121212121212121212124343 12 | 12124343434343434343434343431212 13 | 4343........................4343 14 | 1212........................1212 15 | 4343........................4343 16 | 12............................12 17 | 43............................43 18 | ................................ 19 | ................................ 20 | 1212........................1212 21 | 4343........................4343 22 | 12............................12 23 | 43....12121212121212121212....43 24 | 1212..43434343434343434343..1212 25 | 4343..........1212..........4343 26 | 1212..........4343..........1212 27 | 4343..12121212121212121212..4343 28 | 12....43434343434343434343....12 29 | 43............................43 30 | 1212........................1212 31 | 4343........................4343 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | 12............................12 38 | 43............................43 39 | 12......121212....121212......12 40 | 43......434343....434343......43 41 | ..12...........12...........12.. 42 | ..43...........43...........43.. 43 | 12......121212....121212......12 44 | 43......434343....434343......43 45 | 12............................12 46 | 43............................43 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | 12............................12 55 | 43........12........12........43 56 | ..........43........43.......... 57 | ...............12............... 58 | ...............43............... 59 | ..........12........12.......... 60 | 12........43........43........12 61 | 43............................43 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/balance.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ...............12............... 3 | .....1212121212431212121212..... 4 | .....4343434343124343434343..... 5 | .....12........43........12..... 6 | .....43........12........43..... 7 | ...121212......43......121212... 8 | ...434343......12......434343... 9 | ...12..12......43......12..12... 10 | ...43..43......12......43..43... 11 | .1212121212....43....1212121212. 12 | .4343434343....12....4343434343. 13 | ....1212.......43.......1212.... 14 | ....4343.......12.......4343.... 15 | ...............43............... 16 | .......121212121212121212....... 17 | .......434343434343434343....... 18 | ...............12............... 19 | .....1212121212431212121212..... 20 | .....4343434343124343434343..... 21 | .....12........43........12..... 22 | .....43........12........43..... 23 | ...12..12......43......12..12... 24 | ...43..43......12......43..43... 25 | ...............43............... 26 | ...............12............... 27 | ..12121212.....43.....12121212.. 28 | ..43434343.....12.....43434343.. 29 | .....12........43........12..... 30 | .....43........12........43..... 31 | ...............43............... 32 | ........1212121212121212........ 33 | ........4343434343434343........ 34 | ...............12............... 35 | .....12........43........12..... 36 | .....43........12........43..... 37 | .....12........43........12..... 38 | .....43........12........43..... 39 | ...12..12......43......12..12... 40 | ...43..43......12......43..43... 41 | ...............43............... 42 | ...............12............... 43 | ...121212......43......121212... 44 | ...434343......12......434343... 45 | .....12........43........12..... 46 | .....43........12........43..... 47 | ...............43............... 48 | ..........121212121212.......... 49 | ..........434343434343.......... 50 | ...............12............... 51 | .....12........43........12..... 52 | .....43........12........43..... 53 | ...............43............... 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ....1212................1212.... 60 | ....4343................4343.... 61 | .....12..................12..... 62 | .....43..................43..... 63 | ................................ 64 | ............12121212............ 65 | ............43434343............ 66 | ...............12............... 67 | .....12........43........12..... 68 | .....43........12........43..... 69 | ...............43............... 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | .....12..................12..... 76 | .....43..................43..... 77 | ................................ 78 | ................................ 79 | ................................ 80 | ..............1212.............. 81 | ..............4343.............. 82 | -------------------------------------------------------------------------------- /layouts/castle2.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ........................1212.... 3 | ........................4343.... 4 | ......................12121212.. 5 | ......................43434343.. 6 | ....12..12..12..12.12.1212..12.. 7 | ....43..43..43..43.43.4343..43.. 8 | ....12121212121212121212121212.. 9 | ....43434343434343434343434343.. 10 | ....12121212121212121212121212.. 11 | ....43434343434343434343434343.. 12 | ..121212..12121212121212121212.. 13 | ..434343..43434343434343434343.. 14 | 12121212121212..12121212121212.. 15 | 43434343434343..43434343434343.. 16 | 121212121212......121212....1212 17 | 434343434343......434343....4343 18 | .........................12..... 19 | .........................43..... 20 | ......................12121212.. 21 | ......................43434343.. 22 | ......................12....12.. 23 | ......................43....43.. 24 | ....12121212121212121212....12.. 25 | ....43434343434343434343....43.. 26 | ....12................12....12.. 27 | ....43................43....43.. 28 | ....12........12......12....12.. 29 | ....43........43......43....43.. 30 | ....12......12..12....12....12.. 31 | ....43......43..43....43....43.. 32 | ....12..1212......121212....12.. 33 | ....43..4343......434343....43.. 34 | .........................12..... 35 | .........................43..... 36 | ......................12.12.12.. 37 | ......................43.43.43.. 38 | ................................ 39 | ................................ 40 | ....12..12..12..12..12.......... 41 | ....43..43..43..43..43.......... 42 | ......................12....12.. 43 | ......................43....43.. 44 | ....12........12................ 45 | ....43........43................ 46 | ............12..12....12....12.. 47 | ............43..43....43....43.. 48 | ....12....12......12..12....12.. 49 | ....43....43......43..43....43.. 50 | .........................12..... 51 | .........................43..... 52 | .........................12..... 53 | .........................43..... 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ..............12................ 61 | ..............43................ 62 | ............12..12.............. 63 | ............43..43.............. 64 | ......................12....12.. 65 | ......................43....43.. 66 | ................................ 67 | .........................12..... 68 | .........................43..... 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ..............12................ 77 | ..............43................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/chains.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | 12121212121212121212121212121212 3 | 43434343434343434343434343434343 4 | ...12......12......12......12... 5 | .124312..124312..124312..124312. 6 | .43..43..43..43..43..43..43..43. 7 | .12..12..12..12..12..12..12..12. 8 | .431243..431243..431243..431243. 9 | ...43......43......43......43... 10 | ...12......12......12......12... 11 | .124312..124312..124312..124312. 12 | .43..43..43..43..43..43..43..43. 13 | .12..12..12..12..12..12..12..12. 14 | .431243..431243..431243..431243. 15 | ...43......43......43......43... 16 | 12121212121212121212121212121212 17 | 43434343434343434343434343434343 18 | ...12......12......12......12... 19 | ...43......43......43......43... 20 | ...12......12......12......12... 21 | ...43......43......43......43... 22 | ................................ 23 | ................................ 24 | ...12......12......12......12... 25 | ...43......43......43......43... 26 | ...12......12......12......12... 27 | ...43......43......43......43... 28 | ................................ 29 | ................................ 30 | ...12......12......12......12... 31 | ...43......43......43......43... 32 | ...12......12......12......12... 33 | ...43......43......43......43... 34 | ................................ 35 | ................................ 36 | ...12......12......12......12... 37 | ...43......43......43......43... 38 | ................................ 39 | ................................ 40 | ...12......12......12......12... 41 | ...43......43......43......43... 42 | ...12......12......12......12... 43 | ...43......43......43......43... 44 | ................................ 45 | ................................ 46 | ...12......12......12......12... 47 | ...43......43......43......43... 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/checkered.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | .12..........................12. 3 | .431212121212121212121212121243. 4 | ...43434343434343434343434343... 5 | ...12121212121212121212121212... 6 | ...43434343434343434343434343... 7 | ...12121212121212121212121212... 8 | ...43434343434343434343434343... 9 | ...12121212121212121212121212... 10 | ...43434343434343434343434343... 11 | ...12121212121212121212121212... 12 | ...43434343434343434343434343... 13 | ...12121212121212121212121212... 14 | ...43434343434343434343434343... 15 | ...12121212121212121212121212... 16 | .124343434343434343434343434312. 17 | .43..........................43. 18 | .12..........................12. 19 | .43..12..12..12..12..12..12..43. 20 | .....43..43..43..43..43..43..... 21 | ...12..12..12..12..12..12..12... 22 | ...43..43..43..43..43..43..43... 23 | .....12..12..12..12..12..12..... 24 | .....43..43..43..43..43..43..... 25 | ...12..12..12..12..12..12..12... 26 | ...43..43..43..43..43..43..43... 27 | .....12..12..12..12..12..12..... 28 | .....43..43..43..43..43..43..... 29 | ...12..12..12..12..12..12..12... 30 | ...43..43..43..43..43..43..43... 31 | .....12..12..12..12..12..12..... 32 | .12..43..43..43..43..43..43..12. 33 | .43..........................43. 34 | ................................ 35 | ................................ 36 | ................................ 37 | ................................ 38 | ................................ 39 | ................................ 40 | ................................ 41 | ................................ 42 | ................................ 43 | ................................ 44 | ................................ 45 | ................................ 46 | ................................ 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/columns.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | .......121212121212121212....... 3 | .....1243434343434343434312..... 4 | .....431212....12....121243..... 5 | .1212124343....43....4343121212. 6 | .43434312..1212121212..12434343. 7 | .12....43..4343434343..43....12. 8 | .43....12..12......12..12....43. 9 | .12....43..4312121243..43....12. 10 | .43....12..1243434312..12....43. 11 | .12....43..43......43..43....12. 12 | .43....12..1212121212..12....43. 13 | .12121243..4343434343..43121212. 14 | .4343431212....12....1212434343. 15 | .....124343....43....434312..... 16 | .....4312121212121212121243..... 17 | .......434343434343434343....... 18 | .......12..............12....... 19 | .......43..............43....... 20 | ................................ 21 | .1212......................1212. 22 | .4343......12......12......4343. 23 | .12....12..43......43..12....12. 24 | .43....43..............43....43. 25 | .......12......12......12....... 26 | .......43......43......43....... 27 | .12....12..............12....12. 28 | .43....43..12......12..43....43. 29 | .1212......43......43......1212. 30 | .4343......................4343. 31 | ................................ 32 | .......12..............12....... 33 | .......43..............43....... 34 | .......12..............12....... 35 | .......43..............43....... 36 | ................................ 37 | .12..........................12. 38 | .43........12......12........43. 39 | ...........43......43........... 40 | ................................ 41 | .......12......12......12....... 42 | .......43......43......43....... 43 | ................................ 44 | ...........12......12........... 45 | .12........43......43........12. 46 | .43..........................43. 47 | ................................ 48 | .......12..............12....... 49 | .......43..............43....... 50 | .......12..............12....... 51 | .......43..............43....... 52 | ................................ 53 | .12..........................12. 54 | .43........12......12........43. 55 | ...........43......43........... 56 | ................................ 57 | .......12......12......12....... 58 | .......43......43......43....... 59 | ................................ 60 | ...........12......12........... 61 | .12........43......43........12. 62 | .43..........................43. 63 | ................................ 64 | .......12..............12....... 65 | .......43..............43....... 66 | .......12..............12....... 67 | .......43..............43....... 68 | ................................ 69 | .12..........................12. 70 | .43........12......12........43. 71 | ...........43......43........... 72 | ................................ 73 | ...............12............... 74 | ...............43............... 75 | ................................ 76 | ...................12........... 77 | .12................43........12. 78 | .43..........................43. 79 | ................................ 80 | .......12..............12....... 81 | .......43..............43....... 82 | -------------------------------------------------------------------------------- /layouts/enterprise.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | ................................ 4 | ................................ 5 | ......12121212121212121212...... 6 | ......43434343434343434343...... 7 | 12121212121212121212121212121212 8 | 43434343434343434343434343434343 9 | ................12.............. 10 | ................43.............. 11 | ..............12................ 12 | ............1243................ 13 | ............43............12.... 14 | 121212121212121212......124312.. 15 | 434343434343434343......431243.. 16 | ..........................43.... 17 | ................................ 18 | ................................ 19 | ................................ 20 | ................................ 21 | .......121212121212121212....... 22 | .......434343434343434343....... 23 | ..1212121212121212121212121212.. 24 | ..4343434343434343434343434343.. 25 | ................12.............. 26 | ................43.............. 27 | ..............12................ 28 | ............1243................ 29 | ............43.................. 30 | ..1212121212121212........12.... 31 | ..4343434343434343........43.... 32 | ................................ 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | .........12121212121212......... 38 | .........43434343434343......... 39 | ...12121212121212121212121212... 40 | ...43434343434343434343434343... 41 | ................12.............. 42 | ................43.............. 43 | ..............12................ 44 | ............1243................ 45 | ............43.................. 46 | ....12121212121212........12.... 47 | ....43434343434343........43.... 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ..........1212121212............ 54 | ..........4343434343............ 55 | ....1212121212121212121212...... 56 | ....4343434343434343434343...... 57 | ................12.............. 58 | ................43.............. 59 | ..............12................ 60 | ............1243................ 61 | ............43.................. 62 | ......1212121212................ 63 | ......4343434343................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | .......1212121212121212......... 72 | .......4343434343434343......... 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ........12121212................ 79 | ........43434343................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/explosion.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ...12...12...121212...12...12... 3 | .124312.43...434343...43.124312. 4 | .431243.12..12121212..12.431243. 5 | .124312.43..43434343..43.124312. 6 | .431243....1212121212....431243. 7 | ...43....12434343434312....43... 8 | .......124312......124312....... 9 | 121212.431243..12..431243.121212 10 | 434343.124312..43..124312.434343 11 | .......431243......431243....... 12 | ...12....43121212121243....12... 13 | .124312....4343434343....124312. 14 | .431243.12..12121212..12.431243. 15 | .124312.43..43434343..43.124312. 16 | .431243.12...121212...12.431243. 17 | ...43...43...434343...43...43... 18 | ...............12............... 19 | ...12...12.....43.....12...12... 20 | .124312.43...121212...43.124312. 21 | .431243......434343......431243. 22 | ...43..........12..........43... 23 | ...............43............... 24 | .........12..........12......... 25 | .1212..124312..12..124312..1212. 26 | .4343..431243..43..431243..4343. 27 | .........43..........43......... 28 | ...............12............... 29 | ...12..........43..........12... 30 | .124312......121212......124312. 31 | .431243.12...434343...12.431243. 32 | ...43...43.....12.....43...43... 33 | ...............43............... 34 | ................................ 35 | ................................ 36 | ...12..........12..........12... 37 | ...43..........43..........43... 38 | ................................ 39 | ................................ 40 | ................................ 41 | ..12.....12..........12.....12.. 42 | ..43.....43..........43.....43.. 43 | ................................ 44 | ................................ 45 | ................................ 46 | ...12..........12..........12... 47 | ...43..........43..........43... 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ...12......................12... 53 | ...43......................43... 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ...12......................12... 63 | ...43......................43... 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/flowers.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ..12121212..12121212..12121212.. 3 | ..43434343..43434343..43434343.. 4 | ..12....12..12....12..12....12.. 5 | ..43....43..43....43..43....43.. 6 | ..12121212..12121212..12121212.. 7 | ..43434343..43434343..43434343.. 8 | .....12........12........12..... 9 | .....4312121212431212121243..... 10 | .....1243434343124343434312..... 11 | .....43........43........43..... 12 | ..12121212..12121212..12121212.. 13 | ..43434343..43434343..43434343.. 14 | ..12....12..12....12..12....12.. 15 | ..43....43..43....43..43....43.. 16 | ..12121212..12121212..12121212.. 17 | ..43434343..43434343..43434343.. 18 | ..12121212....1212......1212.... 19 | ..43434343....4343......4343.... 20 | ..12....12..12....12..12....12.. 21 | ..43....43..43....43..43....43.. 22 | ..12121212....1212......1212.... 23 | ..43434343....4343......4343.... 24 | ................................ 25 | ................................ 26 | ................................ 27 | ................................ 28 | ....1212......1212......1212.... 29 | ....4343......4343......4343.... 30 | ..12....12..12....12..12....12.. 31 | ..43....43..43....43..43....43.. 32 | ....1212......1212......1212.... 33 | ....4343......4343......4343.... 34 | ....1212.......12........12..... 35 | ....4343.......43........43..... 36 | ..12....12..12....12..12....12.. 37 | ..43....43..43....43..43....43.. 38 | ....1212.......12........12..... 39 | ....4343.......43........43..... 40 | ................................ 41 | ................................ 42 | ................................ 43 | ................................ 44 | .....12........12........12..... 45 | .....43........43........43..... 46 | ..12....12..12....12..12....12.. 47 | ..43....43..43....43..43....43.. 48 | .....12........12........12..... 49 | .....43........43........43..... 50 | .....12......................... 51 | .....43......................... 52 | ..12....12...................... 53 | ..43....43...................... 54 | .....12......................... 55 | .....43......................... 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/future.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | .......121212121212121212....... 4 | .......434343434343434343....... 5 | .......121212121212121212....... 6 | .......434343434343434343....... 7 | .....1212121212121212121212..... 8 | ...12434343434343434343434312... 9 | .124312121212121212121212124312. 10 | .431243434343434343434343431243. 11 | ...43121212121212121212121243... 12 | .....4343434343434343434343..... 13 | .......121212121212121212....... 14 | .......434343434343434343....... 15 | .......121212121212121212....... 16 | .......434343434343434343....... 17 | ................................ 18 | ................................ 19 | .......12......12......12....... 20 | .......43......43......43....... 21 | .........12....12....12......... 22 | .........43....43....43......... 23 | ...........1212121212........... 24 | ...........4343434343........... 25 | ...12121212121212121212121212... 26 | ...43434343434343434343434343... 27 | ...........1212121212........... 28 | ...........4343434343........... 29 | .........12....12....12......... 30 | .........43....43....43......... 31 | .......12......12......12....... 32 | .......43......43......43....... 33 | ................................ 34 | ................................ 35 | .......12..............12....... 36 | .......43..............43....... 37 | .........12..........12......... 38 | .........43..........43......... 39 | ..............1212.............. 40 | ..............4343.............. 41 | .....1212121212121212121212..... 42 | .....4343434343434343434343..... 43 | ..............1212.............. 44 | ..............4343.............. 45 | .........12..........12......... 46 | .........43..........43......... 47 | .......12..............12....... 48 | .......43..............43....... 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | .........12121212121212......... 58 | .........43434343434343......... 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ............12121212............ 74 | ............43434343............ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/galaxy.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ...............12............... 3 | ..1212.........43.........1212.. 4 | ..4343.......121212.......4343.. 5 | .121212......434343......121212. 6 | .434343....1212121212....434343. 7 | ..1212.....4343434343.....1212.. 8 | ..4343...12121212121212...4343.. 9 | .......124343434343434312....... 10 | .......431212121212121243....... 11 | ..1212...43434343434343...1212.. 12 | ..4343.....1212121212.....4343.. 13 | .121212....4343434343....121212. 14 | .434343......121212......434343. 15 | ..1212.......434343.......1212.. 16 | ..4343.........12.........4343.. 17 | ...............43............... 18 | ................................ 19 | ...12..........12..........12... 20 | ...43..........43..........43... 21 | ..1212.......121212.......1212.. 22 | ..4343.......434343.......4343.. 23 | ...12......1212121212......12... 24 | ...43......4343434343......43... 25 | .........12121212121212......... 26 | .........43434343434343......... 27 | ...12......1212121212......12... 28 | ...43......4343434343......43... 29 | ..1212.......121212.......1212.. 30 | ..4343.......434343.......4343.. 31 | ...12..........12..........12... 32 | ...43..........43..........43... 33 | ................................ 34 | ................................ 35 | ................................ 36 | ................................ 37 | ...12......................12... 38 | ...43........121212........43... 39 | .............434343............. 40 | ...........1212121212........... 41 | ...........4343434343........... 42 | ...........1212121212........... 43 | ...........4343434343........... 44 | .............121212............. 45 | ...12........434343........12... 46 | ...43..........12..........43... 47 | ...............43............... 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | .............121212............. 56 | .............434343............. 57 | ...........1212121212........... 58 | ...........4343434343........... 59 | .............121212............. 60 | .............434343............. 61 | ...............12............... 62 | ...............43............... 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ...............12............... 72 | ...............43............... 73 | .............12..12............. 74 | .............43..43............. 75 | ...............12............... 76 | ...............43............... 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/garden.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ...1212.......1212.......1212... 3 | 12.4343.12.12.4343.12.12.4343.12 4 | 4312121243.4312121243.4312121243 5 | 1243434312.1243434312.1243434312 6 | 4312121243.4312121243.4312121243 7 | 1243434312.1243434312.1243434312 8 | 43......43.43......43.43......43 9 | ..121212.....121212.....121212.. 10 | ..434343.....434343.....434343.. 11 | 12......12.12......12.12......12 12 | 4312121243.4312121243.4312121243 13 | 1243434312.1243434312.1243434312 14 | 4312121243.4312121243.4312121243 15 | 1243434312.1243434312.1243434312 16 | 43.1212.43.43.1212.43.43.1212.43 17 | ...4343.......4343.......4343... 18 | ....12.........12.........12.... 19 | ....43.........43.........43.... 20 | ................................ 21 | ..121212.....121212.....121212.. 22 | ..434343.....434343.....434343.. 23 | ................................ 24 | ................................ 25 | ...1212.......1212.......1212... 26 | ...4343.......4343.......4343... 27 | ................................ 28 | ................................ 29 | ..121212.....121212.....121212.. 30 | ..434343.....434343.....434343.. 31 | ................................ 32 | ....12.........12.........12.... 33 | ....43.........43.........43.... 34 | ................................ 35 | ................................ 36 | ................................ 37 | ...1212.......1212.......1212... 38 | ...4343.......4343.......4343... 39 | ................................ 40 | ................................ 41 | ....12.........12.........12.... 42 | ....43.........43.........43.... 43 | ................................ 44 | ................................ 45 | ...1212.......1212.......1212... 46 | ...4343.......4343.......4343... 47 | ................................ 48 | ................................ 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ....12.........12.........12.... 54 | ....43.........43.........43.... 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ....12.........12.........12.... 62 | ....43.........43.........43.... 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/helios.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ....1212................1212.... 3 | ....4343................4343.... 4 | ....1212................1212.... 5 | ....4343................4343.... 6 | ....121212..12121212..121212.... 7 | ....434343..43434343..434343.... 8 | ....1212121212....1212121212.... 9 | ....4343434343.12.4343434343.... 10 | ....1212121212.43.1212121212.... 11 | ....4343434343....4343434343.... 12 | ....121212..12121212..121212.... 13 | ....434343..43434343..434343.... 14 | ....1212................1212.... 15 | ....4343................4343.... 16 | ....1212................1212.... 17 | ....4343................4343.... 18 | ....1212................1212.... 19 | ....4343................4343.... 20 | ....1212................1212.... 21 | ....4343................4343.... 22 | ....12........1212........12.... 23 | ....43........4343........43.... 24 | ....12......12....12......12.... 25 | ....4312121243.12.4312121243.... 26 | ....1243434312.43.1243434312.... 27 | ....43......43....43......43.... 28 | ....12........1212........12.... 29 | ....43........4343........43.... 30 | ....1212................1212.... 31 | ....4343................4343.... 32 | ....1212................1212.... 33 | ....4343................4343.... 34 | ....1212................1212.... 35 | ....4343................4343.... 36 | ....12....................12.... 37 | ....43....................43.... 38 | ..............1212.............. 39 | ..............4343.............. 40 | ............12....12............ 41 | ............43....43............ 42 | ............12....12............ 43 | ............43....43............ 44 | ..............1212.............. 45 | ..............4343.............. 46 | ....12....................12.... 47 | ....43....................43.... 48 | ....1212................1212.... 49 | ....4343................4343.... 50 | ....1212................1212.... 51 | ....4343................4343.... 52 | ....12....................12.... 53 | ....43....................43.... 54 | ..............1212.............. 55 | ..............4343.............. 56 | ............12....12............ 57 | ............43....43............ 58 | ............12....12............ 59 | ............43....43............ 60 | ..............1212.............. 61 | ..............4343.............. 62 | ....12....................12.... 63 | ....43....................43.... 64 | ....1212................1212.... 65 | ....4343................4343.... 66 | ....12....................12.... 67 | ....43....................43.... 68 | ................................ 69 | ................................ 70 | ...............12............... 71 | ...............43............... 72 | ................................ 73 | ............12....12............ 74 | ............43....43............ 75 | ................................ 76 | ...............12............... 77 | ...............43............... 78 | ................................ 79 | ................................ 80 | ....12....................12.... 81 | ....43....................43.... 82 | -------------------------------------------------------------------------------- /layouts/labyrinth.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | .121212..................121212. 3 | .43434312....12..12....12434343. 4 | .......43....43..43....43....... 5 | .12...1212...12..12...1212...12. 6 | .43...4343...43..43...4343...43. 7 | .12..........12..12..........12. 8 | .43..12..12..43..43..12..12..43. 9 | .121243..431212..121243..431212. 10 | .434312..124343..434312..124343. 11 | .12..43..43..12..12..43..43..12. 12 | .43..........43..43..........43. 13 | .12...1212...12..12...1212...12. 14 | .43...4343...43..43...4343...43. 15 | .......12....121212....12....... 16 | .12121243....434343....43121212. 17 | .434343..................434343. 18 | .1212......................1212. 19 | .4343........12..12........4343. 20 | .............43..43............. 21 | .12..........................12. 22 | .43..........................43. 23 | ................................ 24 | .........12..........12......... 25 | .1212....43..12..12..43....1212. 26 | .4343....12..43..43..12....4343. 27 | .........43..........43......... 28 | ................................ 29 | .12..........................12. 30 | .43..........................43. 31 | ................................ 32 | .1212......................1212. 33 | .4343......................4343. 34 | .12..........................12. 35 | .43..........12..12..........43. 36 | .............43..43............. 37 | .12..........................12. 38 | .43..........................43. 39 | ................................ 40 | .........12..........12......... 41 | .12......43..........43......12. 42 | .43......12..........12......43. 43 | .........43..........43......... 44 | ................................ 45 | .12..........................12. 46 | .43..........................43. 47 | ................................ 48 | .12..........................12. 49 | .43..........................43. 50 | ................................ 51 | .............12..12............. 52 | .............43..43............. 53 | ................................ 54 | ................................ 55 | ................................ 56 | .....................12......... 57 | .12......12..........43......12. 58 | .43......43..........12......43. 59 | .....................43......... 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | .........12..........12......... 74 | .........43..........43......... 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | -------------------------------------------------------------------------------- /layouts/pattern.layout: -------------------------------------------------------------------------------- 1 | kmahjongg-layout-v1.0 2 | ................................ 3 | .1212.1212.1212.1212.1212.1212.. 4 | .4343.4343.4343.4343.4343.4343.. 5 | .1212.1212.1212.1212.1212.1212.. 6 | .4343.4343.4343.4343.4343.4343.. 7 | ................................ 8 | .1212.1212.1212.1212.1212.1212.. 9 | .4343.4343.4343.4343.4343.4343.. 10 | .1212.1212.1212.1212.1212.1212.. 11 | .4343.4343.4343.4343.4343.4343.. 12 | ................................ 13 | .1212.1212.1212.1212.1212.1212.. 14 | .4343.4343.4343.4343.4343.4343.. 15 | .1212.1212.1212.1212.1212.1212.. 16 | .4343.4343.4343.4343.4343.4343.. 17 | ................................ 18 | ................................ 19 | ..12........12.........12.12.... 20 | ..43..1212..43.........43.43.... 21 | ..12..4343.......12..1212.1212.. 22 | ..43.............43..4343.4343.. 23 | ................................ 24 | .12.....12.1212..12..12.....12.. 25 | .43.....43.4343..43..43.....43.. 26 | ...12.12....12..1212.12.....12.. 27 | ...43.43....43..4343.43.....43.. 28 | ................................ 29 | .............12.12...1212.1212.. 30 | .12.....12...43.43...4343.4343.. 31 | .43.....43.12.....12...12.12.... 32 | ...........43.....43...43.43.... 33 | ................................ 34 | ................................ 35 | ..12........12.................. 36 | ..43..1212..43.................. 37 | ..12..4343.......12....12.12.... 38 | ..43.............43....43.43.... 39 | ................................ 40 | .12.....12.1212..12..12.....12.. 41 | .43.....43.4343..43..43.....43.. 42 | ...12.12....12..1212.12.....12.. 43 | ...43.43....43..4343.43.....43.. 44 | ................................ 45 | .............12.12...1212.1212.. 46 | .12.....12...43.43...4343.4343.. 47 | .43.....43.12.....12...12.12.... 48 | ...........43.....43...43.43.... 49 | ................................ 50 | ................................ 51 | ................................ 52 | ................................ 53 | ................................ 54 | ................................ 55 | ................................ 56 | ................................ 57 | ................................ 58 | ................................ 59 | ................................ 60 | ................................ 61 | ................................ 62 | ................................ 63 | ................................ 64 | ................................ 65 | ................................ 66 | ................................ 67 | ................................ 68 | ................................ 69 | ................................ 70 | ................................ 71 | ................................ 72 | ................................ 73 | ................................ 74 | ................................ 75 | ................................ 76 | ................................ 77 | ................................ 78 | ................................ 79 | ................................ 80 | ................................ 81 | ................................ 82 | --------------------------------------------------------------------------------