Month: June 2025

講義メモ:後半

p.122 while文 ・for文の継続条件のみを記述するシンプルな繰返し文 ・よって「●●であるあいだ、繰返す」場合に向いている ・for文と同じ前判定繰り返しになり、初回のチェックで継続条件が成立しないと、1度も繰返さない ・ちなみに、for文で書かれたものは全てwhile文で記述できる 例:  for(①; ②; ③) {   ④  }   ↓for文で上記の用に記述したものと、while文で下記のように記述したものは同じ  ①  while(②) {   ④   ③  } アレンジ演習:p.124 while01.cs ・while文を抜けた直後の変数iの値を表示して確認しよう 作成例 //アレンジ演習:p.124 while01.cs using System; class while01 {     public static void Main()     {         int i = 0;         while (i < 100) { //iの値が100未満である間、繰返す             Console.WriteLine("i = {0,3}", i); //iの値を3桁指定で表示             i++; //iの値をインクリメント         }         Console.WriteLine("ループ終了時のi = {0,3}", i); //iの値を3桁指定で表示(100)     } } ミニ演習 mini124.cs ・p.124 while01.csをfor文で書き直そう ・アレンジ演習で追加した「直後の変数iの値を表示」する処理は削除して良い 作成例 //ミニ演習 mini124.cs using System; class mini124 {     public static void Main()     {         for (int i = 0; i < 100; i++) { //iの値が100未満である間、繰返す             Console.WriteLine("i = {0,3}", i); //iの値を3桁指定で表示         }     } } p.125 whileを使った無限ループ ・whileのカッコ内はforの場合と異なり、省略不可 ・そこで、無限ループを表すには、bool型のリテラルtrueを用いて「while (true) {繰返し内容」」とする  ※ C/C++などでは「while(1)」とできるがC#ではエラーになる ・無限ループからの脱出はforの場合の同様に「break」を用いる アレンジ演習:p.125 menu01.cs ・ゼロの代わりに間違ってオーが入力されても終了するようにしよう…

Read the full article

講義メモ

・「p.116 for文:つづき」についての補足説明の後、p.117「forループからの脱出」に進みます。 アレンジ演習:p.116 for02.cs ・このプログラムではfor文の外でカウンタ用の変数iを宣言しているので、for文を抜けた後でも変数iの値を表示したり再利用することができる ・よって、for文を抜けた直後の変数iの値を表示して確認しよう 作成例 //アレンジ演習:p.116 for02.cs using System; class for02 {     public static void Main()     {         int i; //カウンタ用変数を定義         for (i = 4; i >= 0; i–) { //カウンタ用変数を4から、0以上である間、-1しつつ繰返す             Console.WriteLine("i = {0}", i);         }         Console.WriteLine("繰返し終了時のi = {0}", i); //【追加】     } } p.116「for文:つづき」についての補足説明 ・この例で分かる通り、カウンタ用変数の値を繰返し終了の後にも使いたい場合は、事前に宣言する ・しかし、繰返し終了の後のカウンタ用変数の値は範囲を超えているので、不用意に用いるとトラブルの基になる ・よって、どうしても必要な場合を除いて、カウンタ用変数の宣言(初期化)はforの内部で行うと良い p.117 forループからの脱出 ・繰返しなどのブロック構造の中で break を実行するとブロックから抜けて、ブロック末尾の「}」の直後にジャンプして続行する ・switch文(p.109)のbreakも同様の役割になっている ・なお、for文の継続条件は省略可能で、省略すると無限ループになる ・一般的に、無限ループで組んでおいて、なんらかの状況の発生時にbreakで抜けるような仕組みも多い。 ・しかし、意図しない無限ループには注意 ・なお、for文の全構造は省略可能なので、単純に無限ループしたいだけなら「for (;;) {繰返し内容}」とすれば良い アレンジ演習 p.117 for03.cs ・for文を抜けた直後の変数iの値を表示して確認しよう ・なお、抜けられない無限ループに陥った場合は、キーボードからCtrlキーを押しながらCキーをおすと強制停止できる 作成例 //アレンジ演習 p.117 for03.cs using System; class for03 {     public static void Main()     {         int i = 0;         for ( ; ; ) { //無限ループ!!             Console.WriteLine("i = {0}", i);             i++; // WriteLineメソッドが実行されたらiを1増やす             if (i >= 5) { // iが5以上になったらbreak文で脱出                 //break; //ループを抜ける             }         } //breakによりここにジャンプする         Console.WriteLine("for終了時のi…

Read the full article

今週の話題

ゲームソフト販売本数ランキング:今週1位も「マリオカート ワールド(Switch2)」 GO! 「コンテンツ東京2025」が7月2日~4日開催・・・6大専門展+新エリア「CONTENT Hub」でビジネスを加速 GO! 「最もプレイされたゲーム」上位の『Bongo Cat』人気なのに赤字。存在意義は“別にある” GO! 静止画から高精細な3Dモデル生成できる注目技術「Sparc3D」に異変。オープンソースではなく商用化に舵切ったHitem3Dでどう変わるのか? GO! 『フォートナイト』訴訟されるも無視を決め込んだチーターに約2,500万円の損害賠償。規約違反者にEpicは容赦なし GO!

前回のコメント

・if文はゲームを作るためのスクリプトを作成する時に欠かせないものでしょうか。  はい、欠かせない基本文法の一つです。 ・ゲームに置いての選択肢に分岐などはif文やswitch文を使っているのでしょうか?  分岐を表現するために使われているのはif文、switch文、条件演算子です。  ゲームエンジンによっては、選択肢による分岐を内部で行っている場合もありますが、仕組みは変わりません。

講義メモ 第5章 制御文

p.102 if文 ・条件演算子の構造を複数の文で柔軟に見やすく表現できる構文 ・基本的構文  if (bool型を返す式) {   式がtrueである場合のみ実行すること  } ・例:  if (a == 0) {   Console.WriteLine(“ゼロだ”); //変数aが0であれば「ゼロだ」と表示  } ・bool型を返す式を条件式ともいい、これがtrueかfalseかによって実行可否が決まる ・条件演算子の3項目にある「falseの場合の式(=でなければ)」をif文で扱う構文がif-else構文 ・基本的構文  if (bool型を返す式) {   式がtrueである場合のみ実行すること  } else {   式がfalseである場合のみ実行すること  } ・よって、1つのifに対してelseを1つだけ記述できる ・例:  if (a % 2 == 0) {   Console.WriteLine(“偶数”); //変数aが2で割り切れたら「偶数」と表示  } else {   Console.WriteLine(“奇数”); //でなければ「奇数」と表示  } ・ifの条件に続く{…}をifブロック、elseに続く{…}をelseブロックという ・よって、ifブロックの内容と、elseブロックの内容はどちらかのみが実行される ・なお、ブロックの開始を示す「{」の位置については複数のルールがあり、チームルールを定めることがある ・ブロックの内容が1文の場合、{}は省略できる ・例: if (a == 0) Console.WriteLine(“ゼロだ”); //変数aが0であれば「ゼロだ」と表示  ※ チームルールによっては推奨されないことがある ・例: if (a == 0) Console.WriteLine(“ゼロだ”); a = 100; //最後の代入はifとは無関係なのに誤読しやすい p.103 if文:else if ・ifとelseの間に「ではなくて、もしも~なら」を意味する追加の条件文をelse if(…)で複数記述できる ・これにより多分岐構造を表現できる ・例:  if (a

講義メモ

・p.100「練習問題」から再開し、5章「制御文」に進みます。 提出フォロー:ミニ演習 mini098.cs ・double型の変数a、cと、int型の変数bがあるとき、下記の実行後の値に差が出るか確認しよう ① a = b = c = 3.14; ② a = c = b = 3.14; ※ 必要に応じてキャストを行うこと 作成例 //ミニ演習 mini098.cs using System; class mini088a {     public static void Main()     {         double a, c; int b;         a = b = (int)(c = 3.14); //①「a = b = c = 3.14」だとエラーなのでキャストする         Console.WriteLine("a:{0} b:{1} c:{2} : ", a, b, c); //3、3、3.14となる         a = c = b = (int)3.14; //②「a = c = b = 3.14」だとエラーなのでキャストする         Console.WriteLine("a:{0} b:{1} c:{2} : ", a, b, c); //3、3、3となってしまう    } } p.100 練習問題 ヒント ・10進数cat = 1, rat = 2, dog = 4は2進数にすると001,010,100 ・int pet = cat | dog;は、001と100の論理和なので 101になる(10進数5) ・あるビットが1かどうかは、そのビットのみが1である値との論理積で分かり、0でなければ該当する ・よって、…

Read the full article

今週の話題

ゲームソフト販売本数ランキング:今週1位も「マリオカート ワールド(Switch2)」 GO! DLSS/FSRは全部同じじゃない!ゲーマーなら知っておきたい「超解像」「AIアンチエイリアシング」「フレーム生成」の違いを徹底解説 GO! Limited Run Games、同社のレトロゲーム復刻ゲームエンジン「Carbon Engine」がスイッチ2に対応したことを発表。12タイトルの互換性が保証される GO! 著作権訴訟渦中のミッドジャーニーがAI動画生成スタート。5秒480pという低スペックながら使い勝手がいい理由 GO! 『Limbo』『Inside』の共同開発者の間で訴訟が勃発…古巣との9年に及ぶ確執に裁判での情報公開に期待と元スタジオCEO GO! Steam版『モンハンワイルズ』“圧倒的に不評”を記録―一時期は同接138万人越えの大作 GO!

前回のコメント

・ビット論理演算子を使いこなすには2進数について知っておく必要があるのでしょうか。  はい、2進数の基礎知識が必要です。 ・unrealengneでもC#を使うことはありますか?  いいえ、ありません。  しかし、ゲーム本体をUnrealEngineとC++で構築し、連携するサイトをC#で構築することはあります。