Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
182 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102154
次のページ(過去)
返信[12]
親投稿
おちゃめ ochame_nako
プログラムの上達には定石はありません。 しかし、少しでも多く他人のプログラムを読みそれを理解することと自分で少しでも多くのプログラムを完成させることが上達へと繋がります。 作ろうとしたけど分からないから投げたというプログラムだといくらたくさん作ろうとしても経験値アップはなかなかできません。 RPG風に言えばボスキャラなどの強敵(難易度が高めのプログラム)に挑むことは意味がありますが、全滅(投げだし)を繰り返しては経験値稼ぎはできないため自分のレベル相応の敵(雑魚キャラ)にたくさん挑む方が有利ということです。 雑魚キャラといっても自分が興味あるジャンルを選択すれば「作っていてつまらない」という状況にはならないと思います。 そうやって作ったプログラムはジャンルは違ってもRPGを作る上で役に立つ場面はあるでしょう。「雑魚キャラにさえ勝てないのにボスキャラに勝てるわけがない」のです。
0そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
自分が考えた動作が正しく行えるプログラムが正しい記述です。 「こうしなければならない」というものは存在しません。 初心者が「自分が考えた動作が正しく行えるプログラム」を記述しようと思えば自分に分かりやすく記述し自分で記述ルールを作ることだと思います。 インデント(字下げ)においてもなぜ行っているのかが分かっておらず「単に適当に先頭に空白を入れるもの」という考えだと逆に分かりにくいプログラムになってしまう恐れがあります。 ただし、自分が分かりやすいと思った記述ルールを他人が採用しているなんてことはないため他人のプログラムを読む場合には読むためのスキルも要求されてきます。 これは読むだけで終わらせず実際に入力するという経験の積み重ねを行えば自然に会得できます。
0そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
ツララさんへ 私がプチコンmkII用に作ったポリゴン表示プログラムではGLINEを使った塗りつぶし三角形描画ルーチンを自前で作り実現しました。 プチコン3号ならばGTRIが使えるのでポリゴン表示が楽になりましたね。(速度重視ならばスプライトによる任意三角形描画を行ったポリゴン表示の方が有利ですが)
1そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
塗り潰し円のアルゴリズムは多数あるのですが自分がやりたいことができるならばどれを使っても良いと思います。 インターネットが存在してなかった昔だったら自力でアルゴリズムを見つけ出すという必要性がありましたが、今だったらネット検索するだけですぐに様々なものが見つかります。 それぞれメリットやデメリットがあります。 比較的短いものを求めているならば三平方の定理を使った方法はオススメですね。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
infになるのは概ね10の308乗ですが、正しく言えば2の1024乗以上の値がinfになります。(仮数×指数という表現において内部では2進数で表現されているけど指数部分が2進数で11桁分しかないため) 「inf(無限)」以外にも「nan(非数)」が存在します。 マギーさんが書いているようにinf-infを行ったり、inf*0を行ったりするといわゆる解無しの状態になるためです。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
プログラムは誰でもできるようになると私も思っていますが、自分の力だけでできるようになるためには大変なのは確かです。 私がプログラミングを始めた80年代前半ではインターネットというものが存在せず、雑誌等の紙媒体から得られる情報以外はすべて自力で解決する必要がありましたが、今はMiiverseを初めとする様々なサイトを活用すればそれと比べてかなり容易になっていると思います。
2そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
私の簡易関数電卓QSPに付属のグラフ機能は現時点では拡大縮小スクロール表示のみ対応しています。 すでにグラフ機能の部分のリストは公開していますが、QSPではこれ以上の大幅な機能追加は難しいので完成品でも大きく変わることはないでしょう。 私はできるだけコンパクトということで入力した関数がグラフで表示可能かのチェックはしていません。 エラーが出たらRUNしなおして再入力という方式を採っているのですが、エラーが出ないように対処したいというのであればMIKI★さんがやっているように式を評価するプログラムを自前で用意するしかありません。 定義域に関しては可変式にするのは容易だと思います。
1そうだね
プレイ済み
返信[54]
親投稿
おちゃめ ochame_nako
nobuさんへ 私のNew3DSは基盤の腐食による不具合があったみたいです。 保証期間内でしたが修理は水没が原因による基盤交換によるものなので保証対象外とのことでした。 なんとかエラー前にアカウントの移行や購入情報が生きていたためプチコン3号は再ダウンロードだけで済みましたが、正常な移行が完了してなかったためかプチコン3号の自作ソフトにochame_nakoというアカウントの署名情報が付かなくなってしまいました。(それ以外の問題は今のところはない)
3そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
円の描画範囲にあるドットをGSPOITで調べて使われてない色を判断するという方法を採るならば別ページに描いてGCOPYで転送する方が簡単だし効率的です。 しかし、例えば「自分で塗りつぶし円を使ったお絵かきソフトを作る」というのであればこの色は使わないという色を決めてそれを境界色に設定することが可能になります。 この方法だとRGB32階調(32768色)のうちどれか1つが使えなくなるという問題がありそうですが、これは普通は使わないARGBが0,0,0,0以外でアルファチャンネル値が0の色を設定すれば問題ありません。 私が作ったお絵かきソフト「PETIT PAINT QSP」はこの方法によってQSPという短さでQSPとしては極めて高品質なペンを60fpsの高速描画で処理することが可能になっています。さらに描画範囲を示すカーソル機能も付けることができました。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
私の簡易関数電卓QSPではMIKI★さんが書かれているように別スロットで式を実行してその値を取得しているため非常にコンパクトです。 ちなみにver.2.0ではグラフ機能が付きますがQSPで実現している機能であるため必要最小限のことしかできません。(プログラム実行中に任意の関数に書き換えが可能) https://miiverse.nintendo.net/posts/AYIHAAAEAAASVZKeSSsesQ というわけで、私が作っているものよりも高性能なグラフ電卓を期待しています。
0そうだね
プレイ済み
返信[47]
親投稿
おちゃめ ochame_nako
私も水没して調子が悪くなったNew3DSを修理に出して先日戻ってきたばかりです。(修理代金は約8000円) 修理前に新しく購入したNew3DS LLに引っ越しをしておこうと思ったら失敗してすべてのファイルを失ってしまいました。 しかし、作業用プロジェクトは事前にすべてアップロードしていたので自作ソフト&自作データに関してはすべて無事に復旧できました。 今はプチコン3号が入った本体が複数あるので最強のローカルバックアップも可能です。
4そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
すでに描いている場所へのGCIRCLE、GPAINTによる塗りつぶし円描画であればまずは画面上で使用していない色でGCIRCLEで一旦描画してその未使用色を境界としてGPAINTを行いその後で本来の描画色でGCIRCLEを行えば問題なく描画ができます。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
キーボードを使ったピアノ的なものはサンプルプログラムのEX3KEYDRUM(簡易鍵盤ドラム)が参考になると思います。 私のQSP(PETIT KEYBOARD QSPやPETIT BAN QSPなど)はあまり初心者向きのプログラムではないので参考にしない方が良いかもしれません。 普通に作れるようになった後で「より短いプログラムを作りたい」と思うようになったらぜひ参考にしてみてください。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
タッチが1カ所でしか判定できないけどどうしても和音演奏したければ押したボタンで自動的にコード演奏ができるようにするとか擬似マルチタッチ処理を導入するとかタッチはやめてボタンで演奏するとかやり方はいろいろあります。 ピアノ的な何かを作りたいならばまずは画面に鍵盤を表示するところから始めると良いと思います。(黒鍵が難しければ最初は白鍵のみでもいい) それが難しいならば普通に表示されているキーボードを使って音が鳴るようにしても良いと思います。(例えばキーボードのA、S、D、F、G、H、J、K、Lをドレミファソラシドレに対応させる) 私も初代プチコン、mkII、プチコン3号で鍵盤演奏プログラム的なものは多数作りましたが結構楽しいですよ。
0そうだね
プレイ済み
返信[19]
親投稿
おちゃめ ochame_nako
プチコン3号はコンピュータです。 コンピュータは人間が出す様々な命令を実行することができます。 プチコン3号では画面に文字を表示する命令や繰り返す命令など様々な命令が用意されています。 もちろん計算も可能です。 それらを組み合わせて記述したものがプログラムです。 要するにプログラムというのはプチコン3号に「ああしなさい」「こうしなさい」というのを羅列しているだけです。 ただし、コンピュータというのは融通を利かせてくれず人間の指示通りに動きます。 そのため、ちゃんと指示を与えないと思った通りに動かないこともありますが自分が思った通りに動くようになればプログラミングは楽しくなります。 自分が考えた自分だけのゲームやツールを作る楽しみをぜひ味わってみてください。 自分で作ってみたいものがあるならば絶対にオススメです。
2そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
エミュレータ自体は合法なのですが動作させるためのBIOSやシステムROMはプログラムなので本体から吸い出しを行わない限りは違法になってしまいますからね。 当然プレイするためのゲームのROMカートリッジも自分で吸い出しを行わない限りは違法です。 いくらエミュレータそのものが合法といっても違法的な部分を取り除くのは難しいです。 エミュレータではなく移植(プチコン3号上で再現したもの)であっても作ったゲームを自分で楽しむ以外は著作権侵害となりかねないです。 プチコン3号ならばGBA、スーファミくらいのゲームならば再現は可能だと思います。(BGの2軸回転機能を使ったものだと少し厳しいけど)
1そうだね
プレイ済み
返信[24]
親投稿
おちゃめ ochame_nako
3ヶ月前に作ったものの結局出すタイミングを失ったまま未公開だった「あいまいな形で定義できる変数」を実現するINIT()関数をこちらのトピックスで書きました。 https://miiverse.nintendo.net/posts/AYMHAAACAAADVHkoSL6eyA リスト、公開キーに加えて動作原理の簡単な解説もしているので良かったらご覧になってください。 さらに詳しい解説は「プチコン3号入門講座」に書いています。
1そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
MIKI★さんへ そのような比較演算の結果の大小比較をする記述は気が付きませんでした。 しかし(プチコン3号の場合は特例を除いて)比較演算の結果は0もしくは1となるためP、Qが比較演算を示しているとすると P>Q が true の時は「Pがtrue、かつ、Qがfalse」に限られるので私だったらこのような記述をしてしまいそうです。(※SPEEDが負数にならない場合) WHILE 1  STOPPED=!SPEED&&SPEED_PREV  STARTED=SPEED&&!SPEED_PREV  SPEED_PREV=SPEED WEND STOPPEDとSTARTEDの結果が1と0ではなく0以外と0で良ければ&&を*に置き換えてさらに1文字短縮可能です。 したがって、比較演算の大小を比較する有効性は私には感じられないのですがP>QではなくP!=Qだったら比較演算の比較は有効に感じます
1そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
◎INIT()関数をさらにもう少しだけ解説 プチコン3号の配列は参照型であり、代入によって代入される側の型も変更されるということとDEFによる自作関数を作る場合は引数に使う変数は代入された段階で型が決まります。 これらはマニュアルに(かなり簡単に)記述しているのを知っている人もいることでしょう。 やはり、一番重要となるのは型の判別です。これ無しではこの関数を作ることはできません。 型判別を行うSUFFIX()関数では私が偶然発見した「数値と文字列の比較で3を返す」というのを活用しています。これによって型判別するのがかなり簡単になりました。 あとは、引数の型に合わせて配列を初期化を3パターン用意するだけです。 そしてPUSHで引数の値を初期値にして完成です。(要素数0では変数としてはすぐに使えないため関数内部で要素数を1以上にする必要がある)
0そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
実数型で発生する誤差とその対応策についての簡単な解説はこちらのトピックスにも書いていますので参考にしてみてください。 https://miiverse.nintendo.net/posts/AYIHAAAEAAASVZKdAWi67g 整数型で表現できる-2147483648~+2147483647の整数値で収まるならば整数型を使うのが最も簡単な解決策となるというわけです。
1そうだね
プレイ済み