PCGスペースマウス

こうやまさんがプチコンに移植したスペースマウス http://www1.odn.ne.jp/beni/petitcom/mouse/list.html を改造して、PCG版のビジュアルを再現しました。

左右と上キーで主人公を操作し、スペースマウスを避けながら250階まで昇りきってください。光るパワーエサをとると天井をぶち抜いて数階分一気に昇れますが、無敵ではないのでマウスに当たるとふつうに死にます。
マウスの動きはあみだくじなので、一匹一匹の動きを見切るのは簡単ですが、上層階ほど多くのマウスがうようよしています。マウスが降りる穴をふさぐと、次のマウスが降りるはずの道を直進することがあるのでご注意。

操作には、左の十字キーに加えて右のY、A、Xキーで左右上移動ができます。
この改造で、Xキー押しっぱなしの状態で十字キーで左右移動して、勢いよくビルを昇り続けることができます。元祖PC-8001版で、テンキーの8を押しっぱなしにして46キーだけでマウスをさばいた感覚がよみがえります。

あと、ちょっと改造の勢いが余って、パワーエサが光ったり、やせマウスとでぶマウスがいたり、連続昇段で得点がアップしたりします。
キャラクターはBGF0を使ってフォントを書き換えているので、PCGの名に偽りはありません(^^;

オリジナルのスペースマウスはNECの初期の8ビットパソコンPC-8001用で、月刊I/O 1981年4月号に掲載。
芸夢狂人氏の作品では珍しい縦スクロールアクションで、単純な動きとはいえ、大量にやってくるマウスをひたすら避けるのはいまでもアツいですね!

TFC更新しました

http://d.hatena.ne.jp/ma-asa/20120331/1333204753
TFC本体と、TFSCANのQRコードを差し替えました。

TFCの主な修正点

  • 下画面のステータスバー(背景緑色の部分)をタッチすると落ちる不具合を修正
  • ファイルの送受信が行えない不具合を修正
  • GRP:TFAUTH がない場合に、TFAUTHのバージョンが違いますとメッセージが出て起動ができない不具合を修正
  • Aボタンのマークで全く別のファイルがマークされる不具合を修正

TFSCANの修正点

  • ファイル名が同じだと、リソースタイプが違うのに登録されない不具合を修正

不具合を指摘してくださった、通りすがりさんと初心者さんに感謝します。

ナイトムーブ

ファミコンディスクシステムで遊んだゲームを、プリセットキャラで作りました。

主人公は、8x4のフィールドをチェスのナイトの動き(将棋の桂馬の動きを四方に拡張した八方桂)で飛び回るので、次に踏むパネルをタッチペンで指します。
パネルは踏むと白→水色→紺と色が変わり、紺のパネルを踏むと黒い穴になります。穴に落ちたらゲームオーバーですが、星のあるパネルを踏むと穴が白パネルに戻ります。
あと、紺のパネルを連続で踏むと得点がアップします。

上画面から下画面へのスプライトのコピーや、COLSETによるフェイドインあたりががんばったところでしょうか。

初めてBASICにさわる人のためのトコトコプログラム

プチコン買ったけど何をしたらいいのかわからない」というみなさん! プログラムの打ち込みをしてみませんか?
編集モードでキーボードから文字や数字を打ち込むと、上画面にプログラムとして記録されます。
慣れない方向けに短いプログラムを用意しました。

棒人間は、キーボードの♥マークを押してグラフィック文字に切り替え、Jの位置で入力できます。
mk2なら、入力補完ができるのでより楽に入力できるでしょう。

編集モードから、実行モードに戻って「RUN[ENTERキー]」とすると、今打ち込んだプログラムが動作します。
棒人間が画面を横切って行きましたか? SYNTAX ERRORエラーが出たら、たいていはエラーの出た行に打ちミスがあります。
ちゃんと動いたら、一度「SAVE "TKTK1"[ENTERキー]」を実行して、プログラムをセーブします。

セーブができたら、ちょっと遊んでみましょう。
3行目のPRINTのあとの棒人間を、UFOや自動車のキャラクターに変えてみてください。文字や記号に変えることもできます。
また、棒人間の前の空白をピリオドに変えると、足跡が残ります。
5行目の VSYNC 6 で、棒人間の歩く速さを決めています。6を大きくすると遅く、小さくすると速くなります。VSYNC 60にすると、1秒に1歩ずつ進みます。

無限に棒人間がわいてくる

では、「LOAD"TKTK1"[ENTER]」を実行して、セーブしたプログラムを呼び戻してください。
今度は、このプログラムを改造します。

このリストの、1〜3行めと10〜12行めを打ち込んでください。4〜9行めは前とおんなじ......じゃあ、ないですね。2行めのLOCATE X,12が5行めではLOCATE X,「Y」になっています。
打ち込みが済んだら、さっきと同じように SAVE"TKTK2"を実行します。セーブ大事。

うまく実行できましたか? 今度のプログラムは、棒人間が右端に消えると新しい棒人間が左から登場します。
12行のGOTO @MAINを実行すると、1行めのラベル@MAINにプログラムが飛ぶため、プログラムが終わらない……無限ループになります。
そして、Y座標と色を乱数で決めるので、新しい棒人間は別の位置から、別の色で登場します。
飽きたら下画面の中断ボタンをタップするか、SELECTボタンを押して中断してください。

前回同様PRINT文やVSYNC文をいじって遊べます。
Yの値を決め打ちにすることもできますが、22や23にするとちょっと困った感じになります。ある意味面白い?

さて、次回はこれをゲームっぽくしてみようと思います。

タッチファイラーTFC

(2012/05/16 TFC本体をバージョンアップしました)
(2012/05/10 TFSCANをバージョンアップしました)
(2012/04/19 TFC本体とTFSCANをバージョンアップしました)

ひさびさの更新はプチコンネタであります。
増え続けるプチコンファイル、FILESはソートも何も効かないし、ファイル交換時にうっかり上書きしないためにも作者名のプリフィクスは大事なんだけど、8文字のファイル名がさらに短くなってはファイル名から内容を思い出すのが困難。せっかくだからタッチペンも使いたいよね…
そこでこうやまさんのファイルコピー2 http://www1.odn.ne.jp/beni/petitcom/fc2/list.html を改造して、タッチファイルコピーすなわちTFCを作成しました。
元祖FC2はQRコードが2枚のコンパクトなプログラム。こちらTFCは、本体11枚にくわえリソースファイル三つが7枚。
おまけにFILESからTFC用のデータベースを半自動で作成するTFSCANが2枚で、合計20枚のQRコードからなる大規模なプログラムになりました。

TFSCANでファイル名を取り込む

TFCはこのままではファイル情報が空なので、まずは手持ちのファイル一覧を作成します。
TFSCANをロードし、CLSしてから実行すると作業手順の説明が出ます。
FILESコマンドを実行して、1ページごとにSELECTボタンで中断し、STARTボタンでTFSCANを実行していきます。
この手順が完了したら、EXEC"TFC"でTFCを実行すると、自動的にファイル情報をセーブします。
このファイル情報は、ジャンルは?、スターは3、作品タイトルと解説は空です。TFCを使ってユーザー自身が情報を入力する必要があります。

TFCの操作

TFCの操作方法ですが、下画面のファイル(ジャンル、ファイル名、作品タイトル)をタッチまたは上下キーで選択すると、上画面に6x12フォント(もりちゃんさんのP6風フォントをリソースに書き出して使用。リソースQR5枚分の読みやすさは保証します)の解説が表示されます。
また、ジャンルマークをタッチすると同じジャンルマークのついたファイル全部、マークとファイル名の間の空白をタッチするとそのファイルのみをマークできます。

主な操作はアイコンで行います。
左右の矢印アイコンでページを切り替えて、選択したファイルを走る人アイコンで実行(EXEC)するのが基本的な使い方になります。
お好みに合わせてファイルにスターをつけて、お気に入り順に並べ替えることもできます。(スターやファイル情報を編集したら、セーブが必要)

さらに、アイコンの左の上下ボタンアイコンで、プチコン本体の編集画面と同様のアイコン切り替えができ、以下の機能が使えます。

  • MAIN: RUN(ファイル実行) / STAR(スター追加) / ←(ページ戻る) / →(ページ進む)
  • RECORD: EDIT(ファイル情報の編集) / MARK(一括ジャンル変更) / RENAME(ファイル名変更) / NEW(ファイル情報の追加)
  • FILES: SAVE(ファイル情報のセーブ) / SEND(マークしたファイルの送信) / RECV(マークしたファイルの受信) / *DEL(マークしたファイルの削除)
  • AUTHOR: EDIT(作者情報の追加と編集) / LIST(作者一覧) / (アイコンなし) / EXIT(TFC終了)
  • SORT: STAR(スター数降順) / MARK(ジャンルマーク) / FILE(ファイル名) / TITLE(作品タイトル)

また、FC2のボタン操作もそのまま残してあります。

  • 左右キーでページ切り替え
  • 上下キーでファイル選択
  • Aボタンでマーク
  • Bボタンで同ジャンルのファイルをすべてマーク
  • STARTボタンで実行
  • L+Rボタンでプログラムを終了(これだけTFC独自)

セーブせずに終了した場合でも、CLEARを実行したり、プチコンメニューに戻らない限りファイル情報や作者情報は消えていないはずなので、もう一度RUNしてセーブアイコンを使うのがいいでしょう。
また、セーブアイコンでは作者情報は保存されないので、作者情報のEDITアイコンを使い、情報自体を変更しないでセーブだけさせます。

逆に誤って情報を更新した場合、セーブさえしていなければプログラムを終了して CLEAR:RUN とすることで情報を読み直すことができます。
別のプログラムとの間で変数名がかぶって誤動作するようなときも、CLEAR:RUN で回復できるはずです。

TFCがあなたのプチコンライフを手助けできれば幸いです。

QRコード

取り込むには、クリックしてオリジナルサイズで表示してください。

TFC本体

TFCリソース



TFSCAN

sed で酒を飲むには

プログラマープログラミング言語で酒が飲めるぞー!酒が飲める飲めるぞー!酒が飲めるぞー! http://togetter.com/li/212550
ここに収録された sed で酒が飲めるコードは不完全なのです。140文字に納まりませんでした(;_;)
ちゃんと酒が飲めるコードはこうです。(セミコロンは開きました)

s/[0-9]*/& 月はsedで酒が飲めるぞー 酒が飲める飲めるぞー 酒が飲めるぞー/
:l
h;/12 /q
p
g
s/9/_/
s/^\(_*\) /1\1 /
s/8 /9 /
s/7 /8 /
s/6 /7 /
s/5 /6 /
s/4 /5 /
s/3 /4 /
s/2 /3 /
s/1 /2 /
s/0 /1 /
y/_/0/
b l

(コードをsake1.sed にコピペして echo 1|sed -f sake1.sed とする)
見ての通り、sコマンドで加算を行う部分がどうにも巨大で140字に納まりません。
はじめ y コマンドで y/0123456789/123456789_/ と書いたのですが、これだとすべての桁の数字が置換されて、2桁になるとめちゃめちゃなんですね。

そこで、@inarimae さんがエレガントなコードを書いてくれました。

s/./&月はsedで@ぞー@飲めるぞー@ぞー/
s/@/ 酒が飲める/g
:l h
s/A/10/
s/B/11/
s/C/12/
/12/q
p
g
y/123456789AB/23456789ABC/
b l 

(これもコードをsake2.sed にコピペして echo 1|sed -f sake2.sed とする)

そうか、12進数だと考えれば良かった!

プログラミングは楽しいなあ!

こんなコードが書けたらいいね

前回の日本語Ruby、こんな風に書けたらなあという、妄想。

アルバムは、カレントフォルダのベース名。
アルバムを表示する。
コマンドラインをひとつずつ片付ける  |音楽ファイル|
  音楽ファイルを表示する。
  音楽ファイルをmp3情報として開いて片づける |曲|
    曲のタグ全部をひとつずつ片づける |タグ名, 内容|
      "#{タグ名} "を表示する。
      ここで内容のクラスが 文字列のとき、
        ここで内容がBOMつきなら、
          内容は内容からBOMを取る。
        でなければ、
          内容は内容のエンコーディングを"UTF-8"から "Windows-31J"に変換する。
        以上
        "#{内容}"を表示する。
      でなければ、
        "#{内容}"を表示する。
      以上
    以上
    ""を表示する。
  以上
以上

do〜endは「片づける〜以上」。if 〜 else 〜 endは「ここで〜でなければ〜以上」。
の、を、で、などは.として解釈される。
ファイルを開く、エンコーディングを変換する等のパラメータの語順も自然な日本語になるように。から、に、などの順番が入れ替わってもいい。
〜する式のメソッドは、メソッドチェーンでは〜してと書いても通る。

はじめend を「ここまで」としようと思ったけど、ふと「以上」としてみたらしっくり来た気がする。begin〜endなら「以下〜以上」か。

母国語でプログラムが書けたら、少しでもプログラミングの敷居が下がるような気がする。英語が苦手な人はプログラミングなんてますます手を出さないだろうし。
なでしこでいいじゃん、と言われたらまあその通りなんだけど、なぜか上手く書けないのです、なでしこ。
メソッドチェーンは〜して、〜して、って日本語の表記と相性良さそうだし。