Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
191 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111154
次のページ(過去)
返信[3]
親投稿
おちゃめ ochame_nako
QSPであっても完成させることが自信へとつながりさらなるスキルアップが可能になります。 まぁQSPばかり作るならば「QSPで出来る範囲の限界」に挑戦というのも良いかもしれないですね。 そうすればQSPではなく(制限を無くし)普通に作った方が簡単に思えるようになるでしょう。 もっとも「制限が無い」というのも逆に作りづらい側面があるのですが・・・。 したがって、「QSPだから簡単」、「制限がない方が簡単」と一概には言えないんですよね。
4そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
趣味でやっているのならば自分が楽しいと思えることだけをやっても何ら問題はないと思います。 プチコンだからプログラミングをやらないとダメというわけではなく素材作りが楽しければそればかりをやっていてもいいでしょう。 素材作りに飽きたらプログラミングをすればいいだけですね。 結局楽しんだ者勝ちでしょう。(まぁ勝ち負けなんて無いですが) 私も素材から自作したいという気持ちはあるのですが、飽きっぽいため素材から自作していたら完成する前にやめてしまう可能性が極めて高いということで専らQSPなどの非常に小規模なプログラムばかり作っています。 「制限のある中でベストを尽くす」というのが楽しいためこれはこれで良いと私は考えています。
5そうだね
プレイ済み
返信[82]
親投稿
おちゃめ ochame_nako
みけらんジェロさんへ 知っておられるかもしれませんが、KEY 5,"WIDTH 24-WIDTH()"+CHR(13) とすればダイレクトモードならば1ボタンでWIDTH 8とWIDTH 16を切り替えることが可能になります。
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
確かにみき★さんの方法で小数値は取得可能ですが、意味のある値とは言い難いかもしれません。 ちなみにSTICKも小数で取得可能であるものの整数値を120で割っただけの値ですね。
1そうだね
プレイ済み
返信[27]
親投稿
おちゃめ ochame_nako
【 重 要 】 ~~ 初心者の方へ ~~~ ここまで読んだ初心者の人がRVAL関数は危険だから使うのをやめておこうと変な誤解を招いてしまう恐れがあるため(再び)最後に正しいことを書いておきます。 RVAL関数は単にGOSUB経由で別スロットの計算式や自作関数を実行が可能になるだけの関数であり、この関数そのものには危険な部分は全くありません。 危険なプログラム(システム破壊みたいなものではなくいたずらプログラムみたいなもの)も実行可能ですが、それはRVAL関数を使わなくても普通に書くことが可能であり、RVAL関数に問題があるわけでは全くありません。(どのプログラムにも危険な部分がある可能性がある) RVAL関数の便利さは使ってもらわないと分からないと思います。 それくらい便利な関数です。(プチコン3号に標準で実装してもらいたいレベル)
0そうだね
プレイ済み
返信[19]
親投稿
おちゃめ ochame_nako
れいさん、Hanzoさんのレスに補足をしておくと9.8や1.62という値は単位がm/s^2なので「画面上の1ドットを1mとしたとき」の値です。 1ドットをどれくらいの大きさに設定するかは制作者が自由に決めて良いためこの数字は実際のゲーム等で使用する場合はそれに合わせた値に変更する必要があります。
1そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
3DSの内蔵時計は0.001%以下の誤差しか発生しないと思われるためそれはVSYNCが1/60秒からずれているためだと言えます。 ちなみに私が以前TIME$を元にVSYNC 1の速度を計測してみた結果は1/59.835秒でした。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
変数がその関数内のみ有効なローカル変数とプログラム全体で有効なグローバル変数があるようにラベルもその関数内のみ有効なローカルラベルとプログラム全体で有効なグローバルラベルがあります。 自作関数内においてGOTOでジャンプが可能なのはローカルラベルだけなので指定したローカルラベルが無いとエラーが発生します。 あとローカルラベルとグローバルラベルは別々の扱いになるためラベル名が重複してもエラーにはなりません。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
スライドパッドで8方向指定を可能にするにはいくつかの方法がありますが、個人的にはATANを使い角度を求めてそれを元に決めるのがベターだと思います。 こうすることで角度によってレバーが入りやすい方向、入りにくい方向がなく8方向の入りやすさがどれも同じになるためです。 ちなみに、ATANを使ってDSTICK関数を作りました。 https://miiverse.nintendo.net/posts/AYIHAAAEAADHVHhveJfmfA 戻り値がBUTTON関数と同じなので入力判定部分のプログラムリストを変更することなくBUTTON関数と併用も可能です。
1そうだね
プレイ済み
返信[18]
親投稿
おちゃめ ochame_nako
【 重 要 】 ~~ 初心者の方へ ~~~ ここまで読んだ初心者の人がRVAL関数は危険だから使うのをやめておこうと変な誤解を招いてしまう恐れがあるため最後に正しいことを書いておきます。 RVAL関数は単にGOSUB経由で別スロットの計算式や自作関数を実行が可能になるだけの関数であり、この関数そのものには危険な部分は全くありません。 危険なプログラム(システム破壊みたいなものではなくいたずらプログラムみたいなもの)も実行可能ですが、それはRVAL関数を使わなくても普通に書くことが可能であり、RVAL関数に問題があるわけでは全くありません。(どのプログラムにも危険な部分がある可能性がある) RVAL関数の便利さは使ってもらわないと分からないと思います。 それくらい便利な関数です。(プチコン3号に標準で実装してもらいたいレベル)
1そうだね
プレイ済み
返信[17]
親投稿
おちゃめ ochame_nako
何が「危険」と感じるのは人それぞれであり、「自分はこれが危険であると思った」と思うのは自由であり、自分が作るプログラムはそのようなことがないような配慮をするのは全く問題ないのですが、他人に自分のやり方、考え方を強要するような行為は個人的には「何だかなぁ」と思う次第であります。(「アドバイス」と感じられるような書き方ではありませんでしたので) 私は(例えばQSPを見て「短く書いても意味がないので可読性を重視すべき」など)「自分はこれが良い」と思って行っていることを「見当違いの意見」で否定されるのは嫌いなのでレスが長文になったことをお許しください。 「計算式が間違っている」とか「正常に動作していない」とかいう私が正しくない部分の指摘ならば逆に喜びますのでどんどんおっしゃってください。 (終わり)
0そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
過去に私が作った自作関数においては変数の型判別を行うSUFFIX関数においてはver.3.1.0から「文字列と数値との比較演算で3を返すようになった」という本来の仕様の範囲外のことを利用して行っているため「将来のバージョンアップで正常動作しなくなる可能性はある」という危険性はちゃんと書いておく必要性はあるかなと感じています。(RVAL関数ではVARで別スロットの変数を読み出しているのはマニュアルの範囲外のことなので、もしもRVALの危険性を書くとすればこの部分だけになると思う) また、QSPなどのリスト短縮に特化しているものも現行バージョンの仕様の隙を付いて可能な限りのリスト短縮を行っているので将来のバージョンアップで動作しなくなる可能性は否定できないのですがこれは自作関数とは違って周知徹底をするまでもないと考えています。(現行のバージョンで動作すればOKみたいな感じ) (続く)
0そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
PCの開発環境におけるEVAL関数とこのRVAL関数は似ているようで全く異なります。 それがれいさんへ宛てたレスの部分でこの前提があるからこそ「危険ではない」と個人的には思います。 このRVAL関数が危険ならば他人が作ったものプログラムは自分でリストをすべて読み内容を熟知しているものを除きどれも危険になってしまいます。(どんなコードが含まれているかが分からないため) もしも、「危険度」を示すならばそれくらいの危険度ですね。 (続く)
0そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
命令が問題ではなく実際に作ったプログラムでそのようなことが可能であることが問題であるならば、プチコン3号でお絵かきソフトを作っている人に対して「貴方が作っているお絵かきソフトは任意の絵が描けるため描ける絵に制限を加えるか著作権侵害が可能であるという危険なプログラムであることを周知徹底させてください」と言っているようなものです。 私はこれは非常に馬鹿げたことだと思います。 それは、お絵かきプログラムに問題があるわけではなく著作権侵害をする側に問題があるためです。 それなのに「(結果は関係なく)著作権侵害が可能なことが問題なんだ」という人を見たらどう思いますか? ただし、著作権に関しては議論すると面倒な部分が多いためあまりこの話題はここで深く掘り下げるつもりはありません。 (続く)
0そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
そこでまずはGOSUBの方から見ていけば「GOSUBで呼ばれたサブルーチン内で任意のコードが実行可能」というのは当たり前のことだと思います。(ここでの「任意のコード」はバグを突いてシステムを強制終了させるようなコードだけではなくダイアログ地獄などのいたずらプログラムも含む) もしも、これが危険であるならばGOSUB命令そのものを廃止するしかないでしょう。 それに危険な自作関数が作れてしまうDEFも廃止すべきとなります。 個人的にはGOSUB命令やDEF命令には全く問題がないと思うのですがishさんはどう考えておられるのでしょうか。 (続く)
0そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
ishさんへ 個人的にはRVAL関数は現状の仕様で全く問題ないと思います。 「任意のコードが実行可能」と書くと危険な感じがしますが、それはプチコン3号の仕様を考えると極めて当然であるためです。 もしも、RVAL関数そのものに危険な部分があるとすれば「ソースコード操作命令を使って別スロットへプログラムを書き込み」「GOSUBで別スロットのプログラムを実行」という2点になると思います。 それらはマニュアルにも記載されてないような特殊なことを行っているわけではなくバグを突いた悪質なものでもなくマニュアルに普通に掲載されているプチコン3号の仕様の範囲で作っています。 (続く)
0そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
みき★さんへ 私も昔ポケコンのBASICでC言語のインタープリタを作りましたが、自前で式評価を実装するのは結構大変ですよね。(ちなみにポケコンPC-E500では動作中のプログラムの自己書き換えも可能だった) それくらいの行数になるのは仕方がないと思います。 私がRVAL関数を作ったのはEVAL関数みたいな式の評価を行う関数を作りたかったけどまともに作るのが面倒だし、OSP(1画面プログラム)やQSP(WIDTH 16の1画面プログラム)でも活用できるくらいの小さいサイズにしたかったというのが発端です。 少し考えて「別スロットで実行させれば簡単に実現できるのでは?」と思い即興で作ってすぐに公開したのがRVAL関数のver.1.0です。 その代わり急いで公開したためリストにミスが多く機会を見て作り直そうと思っていて今回ようやくver.2.0を公開することができました。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
れいさんへ プチコン3号ではそのようなことを考える必要はありません。 不正なプログラムを実行させてシステムにダメージを与えたり情報を漏洩させたりすることはできないような仕様になっています。 もしも、プチコン3号がセーブ時にダイアログが出ない仕様になったら自作プログラムに暗号化(難読化)したコードを潜ませておいてプチコンのセーブデータを破壊しまくることも可能なのですが。
1そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
このRVAL関数をパワーアップして大幅にリスト短縮したRVAL関数のver.2.0ができました。 https://miiverse.nintendo.net/posts/AYIHAAAEAAArVRTrtY_eMQ
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
RVAL関数ver.1.0は即興で作ったものであまり出来が良いものではなかったのですが、簡易関数電卓QSPではそのver.1.0をそのまま実装しています。 しかし、簡易関数電卓QSPを作った後にRVAL関数を見直してみたところ大幅に短縮が可能であることが分かったのでこの度ver.2.0という形で公開しました。
1そうだね
プレイ済み