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)
