Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
14 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24154
次のページ(過去)
返信[16]
親投稿
おちゃめ ochame_nako
ちなみにDEF内にGOSUBの対になるRETURNを記述さえしなければ問題ありません。DEF外のラベルにGOSUBでジャンプしてDEF外にあるRETRUNでしっかり戻って動作することは確認済みです。(GOSUBでDEF外にジャンプした際には確実にRETURNで戻ればStack overflowの心配はない) スロット指定をすると特定のスロットでしか動作しないプログラムになってしまいますが、私のSLOT関数を使い指定スロットを「固定スロット」ではなく「現在動作しているスロット」にすればどのスロットに置いても問題なく動作させることが可能になります。 https://miiverse.nintendo.net/posts/AYIHAAAEAACHVRTs1c4kFA
4そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
DEF内でGOSUB~RETURNが使えないのはかなり前から報告が上げられていて社長も知っているはずです。 プチコン3号はメモリとコンパイル速度を稼ぐため恐らく1パスコンパイラであるため対策としてはDEF内ではGOSUBを使えなくするのが最も簡単な解決策です。 すでに書かれているようにDEF内のRETURNはGOSUBの対になるRETURNであってもDEFの値を戻すRETURNとして動作しているわけですが、この場合はGOSUBのスタックが積まれまくってStack overflowになるかというとそうではなくエラーは出ません。
2そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
判定を短くすることに興味があるのでしたらA=(HAND-TEKI+3)MOD 3とすればA=0の時にあいこ、A=1の時に負け、A=2の時に勝ちとなるため判定は非常に短くなります。 さらに短くしたければTERA(LL)さんが書いているように最初から勝敗を決めておくというのも1つの手です。こうすれば「絶対コンピュータに勝てない」イカサマじゃんけんを作ることも可能です。 イカサマ無しでじゃんけんが強いコンピュータを作りたいならばプレイヤーが出した手を元にして思考するプログラムを作れば可能です。じゃんけんも思考ルーチンを作れば「ただの運ゲー」ではなく「思考ゲーム」に変わります。 こちらに、じゃんけんの思考プログラムについて書いているので参考にしてみてください。 https://miiverse.nintendo.net/posts/AYMHAAACAAADVHjNnFOb9w
1そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
速度重視ならば普通に記述するのが最も高速です。(falseになりやすい方を最初に書くと速度面で有利) 自作関数は簡潔に記述できますが遅いです。(引数が多いほど無駄な代入処理が必要になってしまうためさらに遅くなる) ちなみにだにえるさんが書いている方法は一定範囲かどうかを判定するのによく使われる方法ですが、「Aの値が0以上5未満」という判定だったら私はIF!FLOOR(A/5)THEN~とか書いたりしますね。(「0以上○未満」という記述に有効) 判定方法なんて無数にあるので「簡潔」に何を求めているのかで変わります。 使用する演算子等が少ないのか、文字数が少ないのか、それとも速度が速い方が良いのかで考えれば良いのではと思います。
8そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
bはかせさんへ 実はこの方法は私が作るQSPでは良く使われている短縮法となっています。 https://miiverse.nintendo.net/replies/AYMHAAADAAADV44VYZ6ukw ちなみに定数であればこの方法でどんな色も近似色に置き換えることができますが、GCLS RGB(30,30,70)とGCLS-15E6は近似色ではなく全く同じ色で表示されます。
1そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
あまさとしおんさんへ PRG、RPG、GRPと似たような言葉が多くて勘違いしやすいですよね。 ちなみにメモリが544ステップのポケコン(1ステップは概ね1バイト)のPB-100でもRPGは結構作られているのでQSPでも頑張れば不可能ではないと思います。 とはいえ、12文字x1行のPB-100と違ってWIDTH 16時でも25文字x15行のプチコン3号では見た目的にかなり厳しいかもしれませんね。
2そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
bはかせさんへ GCLS RGB(30,30,70)はGCLS-15E6と記述することで9文字短縮可能です。
3そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
使用していただきどうもありがとうございます。 このプログラムは私がプチコンmkIIで作ったプログラムのほぼベタ移植でプチコン3号に最適化できておらず速度面では改良できる面が多々あります。 この手のプログラム(回転可能なパース変形表示)はプチコン3号用としては私のプログラムが最初ですが似たようなプログラムはたくさん作られてこれよりも速いものはいくつもあります。(プチコン3号はオプション、プチコンBIGは標準搭載の)「高度サウンドユニット」を使い私のとは桁違いの高速動作を実現しているプログラムもあります。 しかし、カメラアングルを自由自在に調整できるのは私が知る限りは私のプログラムだけですね。(カメラアングル固定ならば単純計算が可能なので高速化しやすい)
0そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
プチコン3号では公開キーを取得しているプログラムに関しては二次利用を許諾しているはずなので自由に改造して公開が可能です。とはいえ、著作権を放棄しているわけではないので元の作品の著作者を表記しておくと良いかもしれません。 この二次利用に関して難しいのはどこまでOKなのかは明確なガイドラインは出ていないことですが、これは元々は古くからある雑誌に掲載されたプログラムの自由な移植のような文化を継続するために用意されているものです。 本来ならば公開した時点で著作権が発生しているため雑誌に掲載したプログラムを改造したものを公開するにはその著作者の許可が必要です。しかし、当時は作者に許可を貰うのは困難だったため自由移植がOKの「暗黙のルール」がありました。 しかし、「改造」や「移植」ではなく「自分の作品」(自分が考えて自分で作った作品)として発表するのはマナー違反とされてきました。(盗作扱いとされる)
2そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
例えるならば「すごく自由度が高いRPGツクール」です。というか、「何でもツクール」です。(どんなジャンルのゲームやツールでも作ることが可能) ただし、自由度が高くRPGを作ろうと思ったら基本システム(マップ画面での移動、敵との戦闘など)さえも自分で作る必要があります。 最初は覚えることがそれなりにありますが、慣れればそれほど難しいことではありません。 自分が思っているゲーム(頭の中にあるゲーム)が形になる(実際にプレイできるようになる)というのは非常に楽しいですよ。自分が考えて何かを作るのが好きならばぜひチャレンジしてみてください。 もちろん、他の人が作ったゲームを遊ぶだけでも何ら問題ないですよ。
2そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
プログラミングの醍醐味といえば「無い物は作る」「あっても作る」でしょうね。 前者は自分が欲しいもの他人が欲しているものであり、後者はすでにあるけど機能面等で自分の用途や好みに合わないものです。 後者の例でいえばスマイルツールのお絵かきツールは「お絵かき」には向いてないのでお絵かきに向いたツールを作ろうというものです。 とはいえ、プチコン3号ではお絵かきツールはたくさんの人が作っているため作るならば「自分ならばこうしたい」という要素を盛り込むと良いのではないかと思います。 私はQSPが好きなので「QSP」という制限で作っていますが、QSPで作ると見た目や機能面で凝らなくてもいいので気軽に作れます。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
グラフィックはDISPLAY 1を使わずに下画面に表示ができます。 XSCREEN 2 GPAGE 1,1 WHILE 1  TOUCH OUT TT,TX,TY  GPSET TX,TY  VSYNC WEND これでDISPLAY無しで下画面にお絵かきが可能です。上画面にも下画面と同じものが表示されていますが、これはGRP0を表示しているのではなくGRP1が表示されているだけなのです。 これは出力が上画面(デフォルト)、描画しているのがGRP1(デフォルトでは下画面)であるということを考えれば分かると思いますが、原因を知ることは初心者には難しいため表示する画面を指定する場合はDISPLAYを必須にするという感じの方が初心者には分かりやすいですね。
1そうだね
プレイ済み
返信[19]
親投稿
おちゃめ ochame_nako
(続き) 例えば「コードゴルフ」みたいに短くするのが目的というものもありますが、プチコン3号のOPS(1画面プログラム)やQSP(WIDTH 16使用時の1画面プログラム)では短くすることが目的ではなく制限内に収めることが目的です。 したがって、「短くする」というのはより「多くのゲームを面白くする要素を搭載する」ということに繋がるため短縮は間接的にゲームやツールの出来をアップすることに繋がると私は思っています。もちろん、これはQSPやOSPといった制限付きプログラムに限った話ですが。 というわけで、「リスト短縮」という言葉の意味や目的について初心者でも分かるように長々と書いてみました。(れいさんが「リスト短縮」という言葉が分からないのではなく「リスト短縮」という言葉が分からない初心者もいるという意味で書いたのだと思うし)
1そうだね
プレイ済み
返信[18]
親投稿
おちゃめ ochame_nako
(続き) そのコードの「短縮」ですが、基本的に記述される文字数が減ったら「短縮された」という判断で問題ありません。したがって、スペースやコロンといった文字も減らせればコードの短縮といえます。1文字=1バイトとは限らないためコードの短縮は必ずしもメモリ使用量を減らせるとは限らないものの昔のポケコンは1KB前後のメモリという機種も多く短縮できなければゲーム作りで不利になるほどのメモリしか搭載されてないため短縮すること自体に大きな意味がありました。 とはいえ短縮によるメリットよりも可読性が下がるデメリットが多く(例外的に短縮によって可読性が上がる場合もある)普通にプログラミングを行うのに十分なメモリが搭載されている昨今では短縮を行う意義もほとんどはなく短縮は個人の嗜好や趣味の世界と考えた方が良いかもしれません。(長くても短くても自分が思った通り動けばすべて正解だし)
1そうだね
プレイ済み
返信[17]
親投稿
おちゃめ ochame_nako
れいさんへ 「リスト短縮」というのは「プログラムリストの短縮」の略語です。 昔はよく使われていた言葉ですが、最近は「ソースコードの短縮」という言い方の方が多いでしょうね。 前者はインタープリタ系の言語、後者はコンパイル系の言語でよく用いられている言葉(80年代でもC言語は「ソースコード」と呼んでいた)ですが、これは厳密な定義があるわけではなく私は「プログラムリスト」という言葉に「ソースコード」という言葉を包含するという認識を持っているというのもあるし、長年使ってきたので言い慣れているというのもあります。とはいえ、「プログラムリスト」と「ソースリスト」を厳密に使い分けている人もいることでしょう。
1そうだね
プレイ済み
返信[22]
親投稿
おちゃめ ochame_nako
あえて言うまでも無いことですが、何が「面白い」のかも人それぞれであるため「面白くないゲーム=クソゲー」と定義してもその面白さの基準が人によって変わる以上はクソゲーの基準も変わります。 何が言いたいかというとどんなゲームを作っても全員が「面白い」ということは絶対にあり得ないことで「面白い」と思う人もいれば「面白くない」と思う人もいるわけです。 したがって、クソゲーもそれと同じように誰もがクソゲーに思うゲームというのは存在しません。 したがって、自分が作りたいものを作るのが重要です。(ただし、「面白い」と感じる人の割合を増やすことは可能)
3そうだね
プレイ済み
返信[21]
親投稿
おちゃめ ochame_nako
クソゲーといってもその定義は様々で愛すべき「クソゲー」もあります。(つまらないけゲームだけど面白い) 「デスクリムゾン」とかはその1つですね。 というわけで、「面白くないゲーム=クソゲー」と定義した上で書いていきます。まずクソゲーといったらゲームがバグだらけ」とか「ゲームの目的が分からない」(何をしたらスコアが上がり何をしたらクリアになるのか分からない)とかが考えられますが、やはり、「自分のミスの理由(ゲームオーバーになった理由)が分からないゲーム」だと思います。 これは普通に作っていても起こりうることなので十分注意したいと私は考えています。(理不尽なミスもこれと同じようにならないように注意している。) とはいえ、「クソゲー」と言われるのを恐れて自分が作りたいものを作らないよりも「これが自分のゲームだ」というのを前面に推し出したゲームの方が個人的には好感が持てます。
2そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
訂正 C=12AND B:X=X+(C-6)/2*!!B → C=12AND B:X=X+(C-6)/2*!!C
1そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
(続き) MODが%の1文字で済んでいたプチコンmkIIならばこの方法でX=X-((B AND 12)+1)%3+1と記述できるためリスト短縮が可能なのですが、mkIIならばここからさらにX=X-(B%16-B%4+1)%3+1という感じでリスト短縮が可能です。 リスト短縮という側面から見るとプチコン3号では%(1文字)がMOD(4文字)になったのは痛いですね。(%が整数型のサフィックス記号に使われているため仕方がないことですが)
1そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
あまさとしおんさんへ 十字ボタンにおいて12AND Bという値は0、4、8という3通りの値を返します。 X=X+((12AND B)-6)/2に置き換えが可能なのはBの値が4もしくは8の場合(12AND Bが0以外の場合)のみです。 したがって、置き換えを狙うならばC=12AND B:X=X+(C-6)/2*!!Bとなります。したがって、リスト短縮にはなりません。(というか、比較対象となっている元の形がすでにリスト短縮された状態だし) 12AND Bが0、4、8の値を返すのを0、-1、1に変換できれば置き換えが可能なので X=X-((B AND 12)+1)MOD 3+1とすることができますがこれでもリスト短縮にはなりません。
2そうだね
プレイ済み