2018年01月13日

SmileBASIC で「マージャンソリティア」

 引き続き「パソコンミニ」の SmileBASIC で、「マージャンソリティア」を実装してみた。ソースコードはこちらにあります。

20180113-1.jpg

 SmileBASIC の特徴、つづき。

  • グラフィックは4面。スプライトの画像データ置き場も兼ねている。つまり、スプライトは「あるグラフィック画面の指定した長方形部分の画像」として定義される。画像ファイルをいくつも並べて定義するよりずっと扱いやすい。
  • スプライトには「Z 座標」を指定できる。これは重ね合わせの順序を指定するだけで、自動的に遠近処理をしてくれるわけではない。
  • なぜか画面上部の 32 ドット分が表示されない。config.txt をいじって、ディスプレイ設定を 1280x800 にしているせいかも。「ちょっと違う設定」にすると正常に動かなくなるのはつらいですね。
  • テキスト画面は、8x8 ドットのフォントで表示される。漢字と英数字が同じサイズで表示されるのは、正直言って美しくない。
  • ただ、SmileBASIC の仕様として、「文字列の内部表現は UTF-16」となっていて、漢字も英数字も UTF-16 の1ワードで表現されている。「1文字=画面上の1文字」と対応づけることで、テキスト画面の扱いを単純化しているのだろう。
  • ファイル操作は少し弱い印象。たとえば、300 行弱のプログラムを save コマンドで保存する時、はっきり分かる程度の待ち時間がある。ベアメタルラズパイだと、SD カードを高速に読み書きするのが難しいので、その影響があるかも。
  • 外部記憶装置はサポートされていない。パソコンで作成したプログラムをパソコンミニに転送するには、一度シャットダウンして、micro SD カードを取り外して、パソコンにマウントしてコピーするほかない。
  • 本体でプログラムを編集したあと、うっかり未セーブでシャットダウンすると、そのままプログラムは消えてしまう。こんなところまでレトロパソコンを模倣しなくてもいいんじゃないの?
posted by toshinagata at 13:40| 日記