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

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

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

2016-01-01から1年間の記事一覧

プチコンプログラミング覚え書き(7) 互換機能編

プチコンBIGも発売されたので、「3号プログラミング覚え書き」でなくて「プチコンプログラミング覚え書き」にしました。・バンナムDLCを使っているプログラムを一つのソースコードでBIGやDLCの入っていない3号で動かすには DLCが入っているか入っていないか…

認知心理学の実験 on プチコン3号

以前、プチコンmkIIで作った認知心理学の実験をプチコン3号用に焼き直しました。キー: EB2X5EKE 公開日: 2016/11/03mkII時代の動画を貼っておきます。 なお、今回作ったのは、動画のうち実験2の方だけです。 www.youtube.com

補足: ほしけんさんのプチコン漢字ライブラリの高速化を試みた

「ほしけんさんのプチコン漢字ライブラリの高速化を試みた」のエントリの補足(兼自分用メモ)。 eidaht.hatenablog.com「ほしけんさんのプチコン漢字ライブラリの高速化を試みた」でキャッシュなどを導入してプチコン漢字ライブラリの高速化を行いましたが、…

文字列を追加していく時はINCの方が速い

数値を加算する時は、INCを使うよりもA=A+Bのようにふつうの代入と加算の組み合わせの方が速い、という事実が以前から知られていましたが、文字列の時はどうなのか?と思い検証してみました。以下のようなプログラムを実行します。 最初のループが代入を使う…

ほしけんさんのプチコン漢字ライブラリの高速化を試みた

ほしけんさんのプチコン漢字ライブラリ(KNJLIB)の高速化を試みてみました。ほしけんさんのプチコン漢字ライブラリ(http://wiki.hosiken.jp/petc3gou/?Toukou%2F%A5%D7%A5%C1%A5%B3%A5%F3%B4%C1%BB%FA%A5%E9%A5%A4%A5%D6%A5%E9%A5%EA) はプログラムサイズと高…

別スロットの関数名/命令名

■ライブラリの直接呼びされることを想定しないDEFは、COMMON DEFにしないようにしようライブラリとして呼び出したプログラムに、自分のプログラムと同じ関数名/命令名があると、Duplicate functionエラーになる。SLOT 0 USE 1 ?"A=";A() ?"B=";B() DEF B() R…

3号プログラミング 覚え書き(7) クリップボード編

・プチコン3号のエディターでアンドゥできなくなるのは4103文字以上の文字列をペーストしようとした時 クリップボードに入っている文字列が4102文字までの時は、ペーストしてもアンドゥできる。

計算式評価ライブラリEVALLIB

計算式を評価するいわいるEVALを実現するライブラリを作成中です。ファイル名: EVALLIB公開キー: S2NXCNKE C3E8N4JP 434X4X2D公開日: 2016/07/05 2016/07/03 2016/07/02バージョン: 0.03 0.02 0.01v0.03 ()を含めたバグ修正、前置の+-を使えるようにした v0.…

BGMCHKの挙動

旧3DSLLかつプチコン3号 Ver3.3.1で以下を確認。134番のBGMが終わってから、135番のBGMを流すつもりで以下のように処理を書くと、 BGMPLAY 134 WHILE BGMCHK():WEND BGMPLAY 135なぜかループがすぐ終了し、135番は演奏されない。BGMPLAYを発行してからタイム…

パズル 7650 (パックマンDLC必要)

パックマンDLCを使ったパズル7650。 なんか見たことあるような?いや気のせいですwファイル名: ED7650公開キー: QDAJR3B3 C33NY3AP E23N33D4公開日: 2016/12/18 2016/06/27 2016/06/12バージョン: 1.11 1.10 1.00v1.11 WiiUでエラーになる問題を修正 v1.10 D…

SMILE BASIC 小技(9)

PRGINSで動的にコードを追加する方法。PRGINSで他のスロットにコードを追加した後にUSEを実行すると、追加したコードを実行することができる。 PRGINS毎にUSEを使えば、何度でもコードを追加できる。例: VAR DQ$=CHR$(34) PRGEDIT 3 PRGDEL -1 PRGINS "DEF …

SMILE BASIC 小技(8)

BGのキャラ定義の一部がキャラクターコードに対応していることと、BGGETを使うと非常に簡単に自作キーボードを作ることができる。具体的には、 TOUCH OUT STTM, TX, TY G=BGGET(レイヤー番号,TX,TY,1)とすると、GにBGのキャラ番号がとれる。 BGの32〜95番に…

バイナリファイル調査その(2)

型変換調査 (1) VAR A#[10] A#[0]=1.5 A#[1]=2.5 SAVE "DAT:BINDATA",A# VAR B%[0] LOAD "DAT:BINDATA",B% ?"LEN=";LEN(B%) ?B%[0] ?B%[1] ?B%[2] ?B%[3]とすると、 LEN=10 1 2 0 0と表示される。(2) VAR A%[10] A%[0]=1 A%[1]=2 SAVE "DAT:BINDATA",A% VAR …

バイナリファイル調査その(1)

バイナリファイルサイズ調査 (1) VAR A[1] a[0]=1 SAVE "DAT:BINTEST",Aとすると、36バイトのファイルが作成された。(2) VAR A#[2] A#[0]=1 A#[1]=2 SAVE "DAT:BINTEST",A#だと44バイト。(3) VAR A%[1] A%[0]=1 SAVE "DAT:BINTEST",A%だと32バイト。(4) VAR …

PRGINSしたコードを呼び出すことができるか

昨日、いろいろ試していた結果。 あるスロットから他のスロットにPRGINSでコードを追加して、追加したコードを呼び出すことができるか、という研究。 PRGEDIT 3 FUNCNM$="_ABC" IF !CHKCALL(FUNCNM$) THEN PRGINS "COMMON DEF "+FUNCNM$+"()" PRGINS " RETUR…

SMILE BASIC 小技(7)

テキストの表示デモの例。 昔からある技をSMILE BASICで焼き直したもの。 他にもたくさんあったと思うが、基本的なものを書いた。今回は長いので公開キーで。 【D3KKXJAX】1.ターミナル風 ■を付けて表示する基本型。 FOR I=0 TO LEN(T$)-1 LOCATE X+I,Y:PRIN…

3号プログラミング 覚え書き(6) スマイルボタン編

・スマイルボタンに設定したプログラムはSLOT 4で実行される。 SLOT 4には他のスロットにはない特有の制限、機能がある。・スマイルボタンに設定したプログラムからスロット指定なしでEXECされたプログラムもSLOT 4で実行される。 この時、読み込まれたファ…

SMILE BASIC 小技(6)

INC,SHIFT,UNSHIFT,PUSH,POPは文字列にも使うことができる。 VAR A$="ABC",C$ INC A$,"DEF" '文字列の最後に追加 PRINT A$ 'ABCDEF C$=SHIFT(A$) '文字列の先頭の一文字を取る PRINT C$,A$ 'A BCDEF UNSHIFT A$,"Z" '文字列の先頭に文字を付け加える PRINT A…

SHIFT(文字列)もサンプルで使われてた

SHIFT("文字列")で文字列の頭一文字をとることができますが、 これも実は公式のサンプル中で使われていました。 SYS/STAFFROLLの中です。 使ってよさそうなので、これも小技で紹介することにします。

SMILE BASIC 小技(5)

コンソールへのPRINT時に文字列をセンタリング(中央によせて表示すること)したいことは多い。 LOCATEのX位置を決めるには、画面幅(50文字)の半分(25文字)から、表示したい文字列の長さの半分を引けばよい。 毎回計算するのはめんどうなので、次のような記述…

ドルアーガの塔 アドベンチャーシート for プチコン3号 (β2版)

ゲームブック「ドルアーガの塔」アドベンチャーシート for プチコン3号 (β2版)β(ベータ)版ですが、よければどうぞ。 マッピングはそのうち入れたいです。プロジェクト名: EDDRU公開キー: 4D2PEE7D DKENNJ3Y K5N353KV XRKE73AV RS3XY3NJ RE3YN3Q4公開日: 2016…

ドルアーガの塔 アドベンチャーシート for プチコン3号 (β版)

ドルアーガの塔 アドベンチャーシート for プチコン3号 (β版)β(ベータ)版ですが、よければどうぞ。 マッピングはそのうち入れたいです。プロジェクト名: EDDRU公開キー: 5323VXKY → 最新版はhttp://d.hatena.ne.jp/eidaht/20201231/1338118772からどうぞ公開…

ドルアーガの塔 アドベンチャーシート for プチコン3号 (続続α版)

ドルアーガの塔 アドベンチャーシート for プチコン3号 (続続α版)ほとんどが工事中のα(アルファ)版ですが、よければどうぞ。 ある程度のところまでは速攻でアップする予定です。プロジェクト名: EDDRU公開キー: C3ENQXDF → 最新版はhttp://d.hatena.ne.jp/ei…

ドルアーガの塔 アドベンチャーシート for プチコン3号 (続α版)

ドルアーガの塔 アドベンチャーシート for プチコン3号 (α版)ほとんどが工事中のα(アルファ)版ですが、よければどうぞ。 ある程度のところまでは速攻でアップする予定です。プロジェクト名: EDDRU公開キー: 233XD3QE → 最新版はhttp://d.hatena.ne.jp/eidaht…

SMILE BASIC 小技(4)

1フレーム単位で動くプログラムを作っているとほぼ縁がないが、キー入力が必要なプログラムでは、キーボードバッファを空にさせたい場合がある。 この時は次のようにする。 WHILE INKEY$()!="":WEND 'キーバッファを空にする 少しだけ応用して、キーボードバ…

SMILE BASIC 小技(3)

今回は、小技というよりも、よく使うコード。様々な場面でボタンが押されるまで処理を止める、ということがある。 その時に使うのが次のコード。 '何かの処理... BWAIT 'ボタンが押されるまで待つ '次の処理 END DEF BWAIT 'ボタンが押されていない→押される…

サンプルプログラムでもMID$関数の代わりにA$[n]を使う記法は使われている

3号プログラミング覚え書き(3) 文字列編(http://d.hatena.ne.jp/eidaht/20150822/1440208747)で書いた、 「・特定の文字を取りたい時は、MID$だけでなく、A$[0]のような記法でも使える」 については、 「仕様上規定されていないので非推奨」と書いたけど、 …

ドルアーガの塔 アドベンチャーシート for プチコン3号 (α版)

ドルアーガの塔 アドベンチャーシート for プチコン3号 (α版)ほとんどが工事中のα(アルファ)版ですが、よければどうぞ。 ある程度のところまでは速攻でアップする予定です。プロジェクト名: EDDRU公開キー: 4D3J43K3 → 最新版はhttp://d.hatena.ne.jp/eidaht…

SMILE BASIC 小技(2)

今回は結構実用的な技。文字列を置き換えるSUBST$は、 SUBST$("文字列",開始位置,[文字数],"置換文字列") として使う。この時、置換文字列の長さ これを使うと簡単に文字列の一部を削除できる。 具体的には、 SUBST$("文字列",削除開始位置,削除文字数,"") …

SMILE BASIC 小技(1)

覚え書きの文字列編でも書いた、文字変数に[]でアクセスすると任意の一文字を取り出せる技は、"でくくった文字列でも使える。"文字列"[数字]みたいに。 これを応用して、 "AB"[論理式] のように書くと、 論理式が成立する時はBが、成立しない時はA を取り出…