Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
次のページ(過去)
返信[2]
親投稿
おちゃめ ochame_nako
Sの値がシード値になります。 0に設定すれば毎回異なる値を返しますが0<S<1の範囲で指定することでその値に応じた固有の値を返します。固定の値を返すためネームバトルゲームで使用できるというわけです。 Qの値も0から1の範囲で指定してください。 Pは1以上ならば問題ないですが、100とかの大きな値にすると黄色の枠にすっぽり収まるような乱数になってしまいます。それに生成まで時間がかかるためあまり大きな数にするのは良くないです。(Pは2~10くらいの範囲を推奨)
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
Qの値が黄色の枠の範囲を示しこの範囲は概ね均等に値がでます。 Pの値は大きくすればするほど黄色の枠から遠い値が出にくくなります。つまり、高い能力値のキャラがレアになるわけです。
0そうだね
プレイ済み
投稿
おちゃめ ochame_nako
ネームバトルゲームや能力値自動生成のRPGなどで使えるADAM関数を作りました。 これは昔ポケコン用に作ったやつの移植ですが高い能力値や低い能力値のでやすさ(出にくさ)を自由にコントロールできるのがウリです。 このリストでは出現頻度表示を行うプログラムも含んでいます。
6そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
発想の転換としてフォントを書き換えて大文字←→小文字にしてしまえば良いでしょう。 もっとも、これだと大文字を表示したつもりで小文字になってしまうという問題があるのでリテラル文字列以外は大文字を小文字に変換するプログラムを作るのが一番手っ取り早いかもしれません。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
WHILEやIFなどにおいて条件式が成立しているときはtrue(=1)、不成立の時はfalse(=0)になるのですが、実は0以外の値ならばtrue、0ならばfalseとなります。 WHILE 1ならば「1は0以外の値」なので常にtrueであるため無限ループになります。WHILE Aとした場合にはAが0ならば不成立となりWHILE A~WENDは無視されますが0以外だと無限ループになります。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
ツララさんへ 周期性が問題になるかどうかは乱数のアルゴリズムにもよります。線形合同法だと周期性が表れやすいですが上位bitから使えばそれほど問題はありません。 私がmkIIで作ったものも2048x2048ドットをランダムに埋め尽くすことが可能です。 ヒマなひと/JNDさんへ 意図して作っているならばいいのですが、それだと0と10の出る確率が1~9と比べて半分になっていますね。 端の値(大きい値や小さい値)が出にくく中央付近の値が出やすい乱数は昔ポケコンでネームバトル用に作りました。 出る範囲や出やすさを自在に調整できるので能力値自動生成のRPGにも使えると思います。
2そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
まさか今度は命令擬人化の流れ・・・?(笑)
2そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
そもそもコンピュータが作り出す乱数は疑似乱数と呼ばれていてすべて計算によって作られたものです。それには様々なアルゴリズムがあり自分の用途によって使い分けるのがベターだと思います。(用途や目的によってどれが最適なのかが決まる) ちなみにプチコンの標準RND関数は私の解析では線形合同法を元にしたものだと推測しています。
2そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
☆TAKA☆さんの投稿を見て十字ボタンの置き換えならばもっと簡単にできそうと思ったので即興で作ったものなので大したものではないです。 簡単に原理を説明するとATANで押した角度が分かるので382.5を足して(360ではなくそれより22.5多いのは押した方向の±22.5度の範囲を押した向きにするため)MOD 360とすることで0~359の値になりそれを45で割ることで0~7(下記の置き換えで小数部は無視される)の値が取得できます。 SX*SX+SY*SY>0.2で約半分動かしたことが分かり、上記の0~7の値が入ったAをVAL("78043519"[A])+1に当てはめることで十字ボタンと同じ値に変換します。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
短いプログラムですが、これでBUTTON関数と同様に上ならば1、右ならば8、右上ならば9を返してくれます。 スティックには遊びを設けているので最大稼働域の半分以上動作させることでその向きを取得が可能になっています。 BUTTON()関数と併用して使う場合には B=DSTICK() OR BUTTON() とすれば良いです。 なお、シンプルにするため十字ボタンとスライドパッドの両方を同時に押した場合やBUTTON(2)に相当するスライドパッドを押した瞬間の取得には対応していないので頑張って対応させてください。 この関数は改造したり自作プログラムに自由に組み込んでOKです。
0そうだね
プレイ済み
投稿
おちゃめ ochame_nako
スライドパッドを十字ボタンの代わりに使えるDSTICK関数を作りました。BUTTON関数と同じ値を返します。
13そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
ANDはビット演算を示しています。詳しく書くと長くなりますがIF BUTTON() AND 16 THEN ~でAボタンが押されているかどうかが判定可能です。 また、IF 条件式 AND 条件式 THEN ~ の場合には条件式が両方成立した時のみTHEN以下を実行します。 本当は両方とも同じANDなのですが、慣れないうちはBUTTON関数の判定用のANDとIF文における複数の条件式を満たした場合の判定のために使われるANDがあると覚えておくのも1つの手です。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
男性の戦国武将風キャラが揃った後でそれを女体化するという近年の流行のような状況が起きる流れに期待します。 それってプチ子に戻るだけでは?・・・というツッコミは無しで(笑) そして、コミケでの薄い本展開も期待です。
1そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
とうどうしゅんすけさんへ GTRIを使ったポリゴングラフを作られるのでしょうか? ノジールジマーマンZさんへ ver.3.1で加わるGPUTCHR命令を使えば可能になります。 mkIIのGPUTCHRでは縦横1、2、4、8倍が可能でしたが、プチコン3号ではさらに細かい倍率設定が可能になるかもしれません。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
「プチコン3号初心者講座」という名称はスマイルブームの公式の方で使用しているため私のサイトでは「プチコン3号入門講座」という名称にして区別しています。 入門講座であるためプチコン3号で初めてプログラミングに挑戦する人でも理解できるように入り口のハードルを下げていますが、公式サイトの初心者講座と差別化するため扱っている情報は多いので「(自称)中級者」の人が見ても参考になる部分もあるのではないかと思います。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
元々1秒は厳密な60フレームではないのですが、現状のプチコン3号はまだ不安定な部分(負荷時にはMAINCNTさえも1フレーム単位では動かない)があるためそれでさらに誤差が大きくなっていると思います。 SPANIMを使って時計を作る場合は適当な時間(1分くらい)ごとに内蔵時計を使って補正を行う必要がありそうです。
0そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
ナット検索って何だろう・・・。ネット検索の間違いですね(笑)
0そうだね
プレイ済み
投稿
おちゃめ ochame_nako
IF~THEN~はIFとTHENの間の値が「0以外か」「0か」でTHEN以下を実行するか否かが決まります。これを知っておくとWHILE~WENDやREPEAT~UNTIL、FOR~NEXTを使用時にも役立ちます。 これを正しく理解しようと思ったら論理式や論理演算に対する理解も必要になるため初心者の人が脱初心者を目指す際に覚えておくと良いと思います。(私のサイトのプチコン3号入門では普通に解説していますが) 昔はこういったものは自力で見つけて覚えていったけど今はナットを検索すればそういう解説サイトがたくさん見つかるし、Miiverseで質問すればすぐに回答が得られるので良い時代になりましたね。(雑誌の質問コーナーだと必ずしも掲載されるとは限らないし仮に掲載されても回答を得るのに数ヶ月待つ必要があった)
6そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
IF~THEN~はIFとTHENの間の値が「0以外か」「0か」でTHEN以下を実行するか否かが決まります。 IF A==0 THEN PRINT "OK"というIF文があった場合にはAの値が0の時には条件式 A==0 は成立する(条件式が成立時には1の値を取り不成立時には0の値をとる)ため「0以外」なのでTHEN以下を実行します。 IF B AND 16 THEN PRINT "OK"というIF文で Bの値が16の時にはビット演算 B AND 16 の値は16になるため「0以外」なのでTHEN以下を実行します。 これは条件式が複数になった場合でも何ら変わりはありません。 詳しく知りたいならば「プチコン3号 IF」でネット検索すると良いかもしれません。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
確かにある程度内容(プチコンがどんなソフトなのか)を把握してから買うのがベターなのは間違いないですね。 私は「できる」「できない」は抜きにして「作りたいものがあるかどうか」が買う際に最も重要になってくると思います。 学習効果というのは目標がないと著しく下がります。
2そうだね
プレイ済み