Knowledgeゲーム制作に関するプログラミング等を主に書き溜めていきます。どちらかと言えば日記的な書き方が続くと思いますが、そこは温かい目で見て頂ければ。あと、ちょっとしたサンプルやツールのダウンロードも出来るようにしておきます。05:00今まで、プログラムの流れは上から下に流れていくだけでした。これでは、ゲームのような、同じ事を繰り返して処理の実装は出来ません。C言語にはいくつかのループを実現するための命令が用意されています。ステップトレースをするなどで動作を確認してみてください。--いきなりここに飛んで来ちゃった人は、よろしければ下記からご覧ください。前判定まずは基本の構文を示します。括弧に真偽とあります。多くの解説では、ここに条件式と書いてあるのが殆どですが、そう覚えてしまうと後で苦労するかもしれません。条件式は、その判定の結果を真偽で返却します。等はその結果である真偽によって、動作を変えていましたよね。このループ判定も同様です。括弧の中が真の状態であればスコープ内をループし続けます。偽の状態で、それ以外は真でしたよね?そのため、以下のような書き方をするとどうなるでしょうか。}そう、真の状態が不変になりますので無限ループします。実は初期のゲーム制作では、メインループはこのように作られていた事が多かったです。}このような処理を括弧内に記述すれば実現してしまいます。以下はどうでしょうか。この場合は、処理(スコープ内)は全く通りません。この書き方を実際にプログラム内で書く事は殆ど無いと思いますが、一度も通らないという処理の流れについては理解しておいてください。このようにスコープが始まる前にループの条件判定を行っているので、前判定と呼ばれています。基本の構文は以下の通りです。(真偽);この書き方であれば、必ず一度はループ範囲内の処理を通ります。記述するのが一般的です。使う機会は少ないかもしれません。スコープの後でループ判定を行っているので、後判定と呼ばれています。ループ回数を指定できる条件が成立し続けると、結果として真となるためループし続けます。}このように記述すると、10回ループを実現できます。回数指定のループというのはよく使う処理だったりします。そのためか、C言語ではループ回数を指定する専用命令が用意されています。ループの基本構文を示します。10回ループを記述すると以下のようになります。C言語だと、初期化部分で変数宣言が出来ます。}このように、もっとシンプルに記述する事が出来ます。各場所には文法エラーにならない範囲であれば、何を記述しても通ります。printf("今の数値は%dです。printf("終わった\n");こんな見づらい書き方ですら以下のように実行できてしまうのです。複数行にまたがる処理を完結に記述できるようにした命令と言えるので、こんな書き方でも実行できてしまいます。上記のような書き方はあくまでも「出来る」と示しただけで、このような書き方を推奨しているわけではないです。上記のような処理は、下記のような書き方が適切と考えます。printf("今の数値は%dです。品質が高いのは意外にも(当然?)ゲーミングキーボード。これはテレビで紹介された事もある秀逸な製品です。10回ループでも、大きく分けて2通りの方法があります。それがカウンタ変数が大きくなっていく昇順ループと、カウンタ変数の値が小さくなっていく降順ループです。それぞれのサンプルを示します。数値が減っていきます。結果としてはどちらも同じです。Cコンパイラは降順ループの方が少しだけ高速に動作しました。今は全く認知できませんので、通常は昇順ループで良いと思います。記述しているのは、10回ループと言う事を分かりやすくしているためです。}こう書けば良いのでは無いかと思う人もいるかと思います。値に意味が無い場合は、この書き方で構いません。まで変数の値が変化しないので使いづらいのです。インデックスってのはなんなの?ってのは、後日解説する予定の配列までお待ちください。ループの応用さて、ここでかなり特殊な使い方になりますが、ループの応用も示しましょうか。カーソル位置を1行下げてます。スペースを表示する事でカーソルを右側に移動しています。ループを使えば、カーソル位置を任意の場所に移動させる事も出来てしまうのです、実行するとこのように右に20キャラ、下に5行ズレた位置に●が表示されます。この例では1つしか表示できないので実用的ではありませんが、任意の数をループにすれば、このような制御も可能と言う事をお伝えしたかったのです。posX);このように記述するだけでカーソル移動は実現できてしまいますが、機能が無いからと諦めず、現時点で出来る事を組み合わせる事で、意外な事も出来る・・・という事をお伝えして、今回のループに関しては〆とします。冬場、キーボードやマウスを使っていると指先から冷えてきませんか。タグクラウドAILZ80ASMAndroidBASICC#C言語C言語講座DIYJsonMarkdownMZ80CNASNewシティヒーローPC6001PC8001PC8001mk2PCG8100PS2RPGVS2022VSCodeWindowsXperiaZ80お祝いお買い物ちらつきアイテムアセンブラアルゴリズムエミュレータオーダリングテーブルガスレンジガス器具ゲームゲームデザインゲーム制作ゴルフサウンドシリアライズタスクトレイツールテストデザインデバッグデータ圧縮データ構造トレーニングパソコンミニパーツフリーフリーズプログラミングプロジェクト管理プロトタイプ宣言ポインタマップエディタメモリ空間モニターアームラズパイリスト構造リフォームルーターループレトロPCレトロPC開発でカセットにデータを記録する環境を作ります。sapm防止のため手入力してください。リンで利用することは禁止いたします。各記事に直接飛んでくるのはOKです。何かございましたら、上記メアド宛にお気軽にお問い合わせください。レトロPCゲーム制作に使って頂く分には、ドンドンご自由にお使いください。