プチコンで遊ぼう! (はてなブログ版)

任天堂3DSのプチコンで遊ぼう! [twitter:@eida_s]

はてなダイアリーから移行しました。 はてなダイアリーのURLを開いても自動的にこちらにリダイレクトされますのでご了承ください。

ドラクエ風ランチャー

P6勢のネタへの執念にあてられて自分もネタ画像をアップしてみました。

1年くらい前に、Oguさんに画像を見せたドラクエ風ランチャーの動画です。

「カセットテープのピーガー音でプログラムをセーブしようとしていたプチコンが、なん­と復活の呪文でのセーブに対応しました!」という設定です。

復活の呪文を入力して、別プログラム(クイズ1ミニットショックというクイズゲーム)­が起動して動画は終わりです。

エイプリルフールネタにする予定だったのに、間に合わずお蔵入りしていましたが、もう­すぐプチコン3号発売、との話も聞いたので急きょアップしました。
タイトルがなんとも手作り感あふれているのもご愛嬌ということで。
クレジットはスマブさんに迷惑がかかるといけないので、微妙に変えてあります。

画面だけでなく、一応、ほんとうにランチャーとして動くようになってます。

ムダなこだわりにより、復活の呪文は、推測が困難なように、元の文字列が一文字でもちがうとまったくちがう呪文が生成されるようになってます。
この暗号化の部分には結構時間がかかってますw

プチコンのランチャーまとめ

プチコンmkII用として公開されているランチャーのまとめ。
(おもにプチコン作品データベースから情報を拾いました。)


◆FILECOPY2 (こうやまさん作)

http://www1.odn.ne.jp/beni/petitcom/fc2/list.html


◆タッチファイラーTFC (ASAさん作)

http://d.hatena.ne.jp/ma-asa/20120331/1333204753


◆PETIT LAUNCHER (Oguさん作)

http://www43.tok2.com/home/ogut/puchinko/petitlauncher.html


◆COLOR LAUNCHER (MOTさん作)

http://motmark3.web.fc2.com/petitcom/motclc.html


◆LINE LAUNCHER (MOTさん作)

http://motmark3.web.fc2.com/petitcom/motllcqr.html

ムリヤリ再帰、再び (ハノイの塔編)

プチコン3号のティザーに「ハノイの塔もできるぞ!」ってあったので、意地になってプチコンmkIIでハノイの塔を作ってみたw

一般によくさらされてるハノイの塔のソースは、ビジュアルでなくてわかりづらいので、状態がわかるように円盤の状態を表示するようにしてみました。

やってることは、以前に書いた「プチコンでムリヤリ再帰処理」がもとになってます。
興味のある方はそちらもご覧ください。
http://d.hatena.ne.jp/eidaht/20130202/1359775256

クイズ 1ミニットショックの概要、QRなど

クイズ 1ミニットショック Ver0.9

【概要】

クイズゲームです。
が、標準の問題では問題数が200問しかありませんので、純粋なクイズゲームとして長期間楽しむのはむずかしいかもしれません。

★★★基本的には2人対戦のクイズゲームとして楽しんでください。★★★

差しあたって以下の動画を貼っておきます。


【基本的な操作方法】

ゲームプレイ中の操作は、以下の通り(CONFIGでカスタマイズ可能)。
1P側の操作は 上=1 右=2 左=3 下=4 L=解答
2P側の操作は X=1 A=2 Y=3 B=4 R=解答


【実行に必要なファイル】

このゲームには以下の7つのファイルが必要です。

(1) PRG:ED1MINQZ 本体プログラム(ED1MINQZ)
(2) GRP:ED1MINQZ クイズデータ(ED1MINQZ_GRP)

上記以外に、プチコンまとめwikiに掲載されている美咲フォントと以下の公式素材が必要です。

(3) GRP:MISAKI 美咲フォント 投稿プログラム : 美咲ゴシック漢字データ&表示プログラム (GRP版) - プチコンまとめWiki (初代/mkII)
(4) CHR:SBCH_X01 スマブ公式素材キャラデータ1 スマブ公式素材ダウンロード1
(5) CHR:SBCH_X02 スマブ公式素材キャラデータ2 スマブ公式素材ダウンロード1
(6) COL:SBCL_X01 スマブ公式素材色データ スマブ公式素材ダウンロード1
(7) CHR:SBFT_E04 スマブ公式素材フォントデータ スマブ公式素材ダウンロード2

なお、クイズデータは差し替え可能です。
詳しくは後述。


QR等】

実行に必要なファイルのうち(1)と(2)は以下からどうぞ。
(3)〜(7)は上述のリンクからダウンロードしてください。

(1)PRG:ED1MINQZ のQR

個別「20131007222402」の写真、画像、動画 - eidaht's fotolife

(2)GRP:ED1MINQZ のQR

http://f.hatena.ne.jp/eidaht/20131007222401



【クイズデータの差し替えについて】

クイズデータ及びクイズデータの作成スクリプト(Pythonでできています)は、GitHubで公開していますので、ご自身で任意のクイズデータを作成することができます。

https://github.com/eidas/petitcom_quiz_tool

「タイムショット問題.ods」が問題データ、データの作成方法、スクリプトの使い方等を記載しているOpenDocument形式ファイルです。
ODSファイルはOpen Officeなどで開くことができます(私はLibre Officeにて作成しました)。
基本はここに書いてある通りですが、使い方がわからなければ、このブログのコメント等で質問してください(twitterでもOK)。

また、クイズデータは、このゲームとは無関係のデータとしてクリエイティブコモンズに従って利用可能ですので、別ゲームのデータとして利用することができます。


Let's Enjoy!

クイズ1ミニットショックのQRをGitHubに上げておきました

クイズ1ミニットショック、難産でしたがおよそのところまでできたので、とりあえずですが、GitHubにPTCファイルとQRコードのZIPファイルをアップロードしておきました。
GitHub - eidas/petitcom_quiz_1minute_shock: プチコン用ソフト「クイズ1ミニットショック」

・PRG:ED1MINQZ 本体プログラム(ED1MINQZ)
GRP:ED1MINQZ クイズデータ(ED1MINQZ_DAT)


このブログにも後で直接QRコードを貼り付けますので、少々お待ちください。


なお、このプログラムは上記にアップロードされた2つのファイル以外に、プチコンまとめwikiに掲載されている美咲フォントと以下の公式素材が必須です。

[必須]
GRP:MISAKI 美咲フォント 投稿プログラム : 美咲ゴシック漢字データ&表示プログラム (GRP版) - プチコンまとめWiki (初代/mkII)
・CHR:SBCH_X01 スマブ公式素材キャラデータ1 スマブ公式素材ダウンロード1
・CHR:SBCH_X02 スマブ公式素材キャラデータ2 スマブ公式素材ダウンロード1
・COL:SBCL_X01 スマブ公式素材色データ スマブ公式素材ダウンロード1

[推奨]
・CHR:SBFT_E04 スマブ公式素材フォントデータ スマブ公式素材ダウンロード2

140文字プログラム集(8)

Twitterアカウント(@eida_s)上でつぶやいた、140文字以内でできているプログラムのまとめ(8)です。

なお、まとめ(1)から(7)のリンクは以下の通り。
140文字プログラム集(1)
140文字プログラム集(2)
140文字プログラム集(3)
140文字プログラム集(4)
140文字プログラム集(5)
140文字プログラム集(6)
140文字プログラム集(7)


■140文字プログラムNo.23 140曜日計算 (2013.04.10)

DTREAD(DATE$),Y,M,D:Y=Y-(M<3)M=M+(M<3)*12↓
H=(Y+(0OR Y/4)-(0OR Y/100)+(0OR Y/400)+FLOOR((13*M+8)/5)+D)%7?MID$("SUNMONTUEWEDTHUFRISAT",H*3,3)

(139文字)

【遊び方】
ツェラーの公式を使って今日の曜日を表示します。
1行目をY=yyyy:M=mm:D=ddとすれば任意の日付の曜日を表示できます。

【プログラムの解説】
何度も修正ツイートしたのですが、最後にツイートしたものもM=M+(M<3)のところが(N<3)とかなってて間違ってます。すみません。
最終版は上記のとおりです。
これはPTCファイルから直接コピペしたので間違ってないはずです。

プチコン内蔵の命令だけでは、曜日の入ったカレンダーを作ることができません。
そこでツェラーの公式を使った曜日計算を140文字で作ってみました。

FLOORはキーワード稼ぎのためにわざと入れてます(ORで代用可)w

このプログラムを作るにあたって、せっかく勉強したツェラーの公式についての解説は以下をご覧ください。

140曜日計算とツェラーの公式

【今回新しく使ったキーワード】
・DTREAD
・DATE$
・FLOOR


■140文字プログラムNo.24 140アナログ時計 (2013.04.14)

M=60FOR I=3TO 6B=1IF I>5THEN WAIT 1B=5I=3GCLS↓
TMREAD(TIME$),A(3),A(4),A(5)T=2*PI()*(15-A(I)*B)/M↓
GLINE M,M,M+COS(T)*9*I,M-SIN(T)*9*I,I:NEXT

(139文字)

【遊び方】
普通のアナログ時計です。
時、分、秒の針が長さ・色違いで表示されます。
これはそこそこの出来に見えるかな

【プログラムの解説】
140文字でアナログ時計ってのは結構画期的だと思うんですが!(自画自賛)

処理を使いまわすために、結構むりやりなことをやっています。
しばらく時間が経ってからまとめたので、自分でも何やってるのかよくわからないです。

【今回新しく使ったキーワード】
・TMREAD
・TIME$
・PI


■140文字プログラムNo.25 140コムソート (2013.04.17)

H=0OR N/1.3↓
FOR I=0TO 1FOR J=0TO N-H-1↓
IF A(J)>A(J+H)THEN SWAP A(J),A(J+H)I=0↓
NEXT:I=I*(H<2)H=0OR H/1.3+(H<2)NEXT

(113文字)

【遊び方】
A()にソートする配列を、Nに配列の要素数を入れて、このプログラムを呼び出すと、A()がソートされます。
詳しくは、以下のエントリをご覧ください。

140コムソート

【プログラムの解説】
SORT、RSORTがあるので別に必要ないのですがアルゴリズムの勉強のため作りました。
コムソート(comb sort)はバブルソートの改良版アルゴリズムです。
一応、平均計算量はO(n・Log(n))ですので、一様乱数のソートなどではクイックソート並みの速度が期待できます。
ただし、不安定ソート(※1)ですので、どんな用途でも使えるというわけではありません。

(※1)同じソート順位の要素がある時、ソート前の順位がそのままソート後にも保存されるのが安定ソート、保存されないのが不安定ソート。
例えば、EXCELの「並べ替え」は安定ソートになっています。
そうした性質が必要な場合には、安定ソートのアルゴリズムを使う必要があります。

【今回新しく使ったキーワード】
・SWAP

140文字プログラム集(7)

Twitterアカウント(@eida_s)上でつぶやいた、140文字以内でできているプログラムのまとめ(7)です。

なお、まとめ(1)から(6)のリンクは以下の通り。
140文字プログラム集(1)
140文字プログラム集(2)
140文字プログラム集(3)
140文字プログラム集(4)
140文字プログラム集(5)
140文字プログラム集(6)


■140文字プログラムNo.20 140エディタ (2013.01.31)

CLEAR:B=1↓
@0↓
IF A+B>0THEN CLS?A$"■↓
K$=INKEY$()A=LEN(K$)B=BTRIG()/64%3X=X+A-(B>1)*(X>0)A$=LEFT$(A$,X)+K$VSYNC 1IF B!=1GOTO@0↓
KEY 1,A$

(132文字)

【遊び方】
ファンクションキー編集用のテキストエディタ
YボタンでBS、Xボタンでファンクションキー1に登録します。
Let's Enjoy!

ちなみに、140文字におさめるために256文字制限をかけてないので、256文字以上入力するとエラーになります。

【プログラムの解説】
ファンクションキーにちょっと登録したい時、実行モードだと32文字までしか入力できないし、プチコン標準エディタは折り返しがないし、ということで作ってみました。

【今回新しく使ったキーワード】
・LEFT$
・KEY

■140文字プログラムNo.21 140フィボナッチ (2013.02.01)

CLEAR:DIM S(99)N=15GOSUB@2:END↓
@2↓
IF N<2THEN F=1RETURN↓
S(P)=N:P=P+1N=N-1GOSUB@2:N=S(P-1)-2S(P)=F:P=P+1GOSUB@2:F=F+S(P-1)P=P-2N=S(P)?F:RETURN

(140文字)

【遊び方】
単に実行してください。
無理矢理な再帰もどきでフィボナッチ数を求めます。
フィボナッチ数とは、
F(n)=F(n-1)+F(n-2) ただし、n>=2 、F(0)=F(1)=1
で定義される関数F(n)にnを代入して得られる数です。
フィボナッチ数F(N)のNは29まで(30以上はOVERFLOW)だけど時間がとてつもなくかかる…。

【プログラムの解説】
フィボナッチ数列を求めるのは、再帰を使わないのが普通のやり方です。
たまにサンプルとして再帰で求める例がありますが、再帰を使うよくない例、みたいなものです。
今回は、無理矢理再帰にしてみました、というサンプルとして作りました。

以下のエントリで、プチコンで無理矢理再帰処理する、ということを解説しています。
プチコンでムリヤリ再帰処理

本当はハノイの塔をやりたかったんですが、140文字ではちょっとおさまりませんでした。
ハノイの塔であれば再帰のサンプルとしては適切ですし、上記プログラムを少し直せばできますのでトライしてみてくださいネ。

【今回新しく使ったキーワード】
・GOSUB
・RETURN


■140文字プログラムNo.22 140ペルシア絨毯模様 (2013.02.03)

P=4/16ACLS:FOR X=-9TO 9STEP P:FOR Y=-9TO 9STEP P:M=X*9+90N=Y*9+90R=X*X+Y*Y↓
GFILL M,N,M+8,N+8,192-ABS(COS(R)*EXP(-SQR(R/4)))*170NEXT:NEXT

(136文字)

【遊び方】
実行するとペルシア絨毯のような模様が描かれます。
P=4/16の16を変えると細かさが変わりますので色々と変えてみて、綺麗な模様になるところを楽しみましょう。
GFILLの5つ目の引数は色に関係しますので、係数をいじって好みの色にしてみてください。

【プログラムの解説】
以下URLから移植
http://www.okada.jp.org/RWiki/?%A5%B0%A5%E9%A5%D5%A5%A3%A5%C3%A5%AF%A5%B9%BB%B2%B9%CD%BC%C2%CE%E3%BD%B8%A1%A7%A5%A4%A5%E1%A1%BC%A5%B8%BF%DE

色をABSで指定している通り、Z軸方向に±の値をとるので、本当は三次元にした方が面白い図なので、改造してみてください。

【今回新しく使ったキーワード】
・EXP

キャラデータのファンクションキーへの登録

CHREDなどで作成したキャラデータをPRGファイルに埋め込みたい時に使う。
変数CHにキャラ番号を入れて実行するとファンクションキーの1〜2番にキャラデータを登録する。

CH=4  '-- CHARACTER NUMBER
FOR I=0 TO 1
 K$=""
 FOR J=0 TO 1
  CHRREAD("SPU0",CH*4+I*2+J),C$
  K$=K$+"DATA "+CHR$(34)+C$+CHR$(13)
 NEXT
 KEY I+1,K$
NEXT

認知心理学の実験

4月21日に観た放送大学認知心理学の講義が面白すぎたので、再現できそうなものだけプチコ­ンで作ってみました。

実験1:カッコが並んでいるところに横棒を動かすと、閉じた領域が図形に見えます。

実験2:縦と横の棒はまったくちがう動きをしているように見えるのに、手前に図を表示­すると、その後ろで動いている四角のように見えます。

STARTボタンで実験が切り替わります。

動画はこちら。

QRはこちら。

ツェラーの公式 補足

ツェラーの公式について補足、というか、よいページをみつけたのでメモ。

自然の不思議・数理の不思議5 暦の数理 ― 曜日の計算公式 ―

ここではフェアフィールドの公式を経ずに、そのままツェラーの公式を導いているが、曜日を求めるための基本原理から説明しているので、わかりやすく、よいと思った。