yunkさんのMicroPython for X68000でパズルゲーム四川省を作りました。X-BASIC風の関数群パッケージxbasipを同梱し使用しています。
BGMはあうぇっどさんに作曲していただきました。opmdrv3.xもしくはzmusic2.xをシステムに組み込んだ状態で実行してください。
フォルダ直下にプリコンパイル済みのshisen.mpy
と、麻雀牌データtile.dat
があります。下記のように-m
オプションを付けてmicropythonを実行してください。
micropython.x -m shisen
もしくは、実行用バッチファイルrun_shisen.bat
をお使いください。
操作はキーボードもしくはマウス、ジョイスティックを使用できます。有名なゲームですので説明は不要と思いますが、下記のサイトなどでルールを確認できます。
同種の牌が3本以内の水平/垂直線で結べる場合、もしくは縦横に隣接する場合、取り除くことができます。
パズルは、3つのサイズについて固定の各1問を用意しました。17×8サイズのみ、ランダムに問題を生成してプレイすることもできます。ただし、単純に乱数で牌を並べているため、稀に解けない問題が生成されることをご容赦ください。このランダムモードでは、右上に4桁の乱数シードが表示されます。次回起動時に、micropython.x -m shisen 1234
やrun_shisen.bat 1234
と乱数シード(例では1234
)を与えることで、再度同じ問題をプレイできます。
shisen_src
フォルダにソースファイル*.py
が格納されています。
├── run_shisen.bat
├── shisen.mpy
├── tile.dat
├── shisen_src
│ └── shisen.py
├── xbasip
│ ├── __init__.mpy
│ ├── audio.mpy
│ ├── basic.mpy
│ ├── graph.mpy
│ ├── mouse.mpy
│ ├── music.mpy
│ ├── sprite.mpy
│ ├── stick.mpy
│ └── tgraph.mpy
├── Shisen20230506.XDF
└── README.md
X68000Zでプレイしやすいよう、XDFファイルを同梱しています。
X-BASIC風の関数群パッケージxbasip
を使用し、line()やpaint()、sp_set()、mouse()などの関数を使って実装しています。プリコンパイル済みバイナリファイルを同梱していますが、ご興味のある方は公開サイトを覗いてみてください。xbasipパッケージは下記のモジュールで構成されています。
console
-- コンソール関数群graph
-- グラフィック関数群sprite
-- スプライト関数群audio
-- ADPCM関数群music
-- FM音源関数群mouse
-- マウス関数群stick
-- ジョイスティック関数群tgraph
-- テキストグラフィック関数群
nozwas/のずわす(https://github.com/nozwas)