Author: maurundog

今週の話題

販売本数ランキング 今回トップは「桃太郎電鉄ワールド ~地球は希望でまわってる!~(Switch)」GO! 『アスタタ』不発のgumi、SBIが株を追加取得しても距離を取るのはなぜか?【ゲーム企業の決算を読む】GO! 「龍が如くスタジオ」のコアメンバーとなる人材を広く募集―セガ、中途採用オンラインカジュアル面談会を1月25日・26日・27日に開催 GO! 任天堂が時価総額10兆円を超える…DS・Wiiが絶好調だった2007年以来の高値、スイッチ新型に期待高まる GO! カヤック、2023年世界市場アプリDL数で日本企業1位獲得を報告―新規ハイカジタイトル13本リリース GO! 新作ゲームのUIが複雑すぎる!?『スーサイド・スクワッド』皮切りにユーザー間でスマートなUIと煩雑なUIの議論勃発 GO! Live2Dデザイナー向けに充実の研修を用意! f4samuraiが明かす採用ポイントと研修カリキュラム【alive 2023セッションレポート】GO! SteamがAI利用タイトル容認に舵を切る―違法なコンテンツなど問題には適切なチェックで対処狙う GO! Twitchがスタッフの約35%を解雇予定、昨年のレイオフを合わせると900人程の削減に―海外メディア報道 GO!

講義メモ:第7章 クラスの基礎

p.153 クラスと何か ・C#などのオブジェクト指向言語では、プログラムをクラスを単位として作成し、データ構造もクラスを基本として扱うことができる ※ C++のように、プログラムの一部をクラスを単位として作成するものもある ・プログラムはビルドして実行を指示することにより、記述内容に従った実体がメモリ上に生成されて動作する ・つまり、プログラム=クラスは設計図にあたり、動作する実体をオブジェクトという ・この考え方を、クラスの中で用いるデータ構造や部品に当てはめることもできる ・つまり、プログラムにおいて、他のクラスの実体を生成して用いることが、プログラムの部品化にあたる ・なお、クラスから生成したオブジェクトをインスタンスともいう p.154 簡単なクラスを定義しよう ・最も簡単なクラスは変数のみを持つクラスで、複数の変数を持つクラスにより、C/C++でいう構造体に類似するデータ構造を表現できる ・書式: class クラス名 { アクセス修飾子 型 変数名; … } ・アクセス修飾子は主にpublicとprivateで、外部から直接アクセスを許す場合はpublicと明示する。  内部用の場合は無指定にするか、privateと明示する ・例: class Monster { public string name; public int hp; public int mp; } //名前とHP,MPを持つ怪物 ・クラスを型として変数を宣言することで、クラスから生成したインスタンスを扱うことができる ・生成には配列と同様にnew演算子を用いる ・宣言の書式: クラス名 インスタンス名; ・生成の書式: インスタンス名 = new クラス名(); ・宣言と生成は同時に行うことが可能。書式: クラス名 インスタンス名 = new クラス名();  例: Monster veldra = new Monster(); //怪物クラスから実体としてveldraを生成 ・複数のインスタンスをまとめて生成できる  例: Monster veldra = new Monster(), rimuru = new Monster(); //怪物クラスから実体としてveldraとrimuruを生成 ・クラスで定義した変数は、インスタンスごとに用意されるので、インスタンス名.変数名 でアクセスできる ・クラスの中で定義したものをメンバといい、インスタンスの中の変数をインスタンス変数という  例: veldra.name = “ヴェルドラ”; veldra.hp = 100; rimuru.mp = 500; ※「.」はドット演算子ともいい、日本語の「の」に近い ・この仕組を用いるだけでも、変数のグループ化やデータの扱いの可視化が容易になる p.156 simpleclass.cs //p.156 simpleclass.cs using System; class myclass //クラスを定義(インスタンス変数を1個もつ部品的なクラス) {     public int x; //外部からアクセス可能なインスタンス変数 } class simpleclass //実行用のMainメソッドを持つクラス {     public static…

Read the full article

講義メモ

・p.147「暗黙の型指定がなされた配列」から 提出:アレンジ演習:p.146 jagged02.cs ・2つあるforを2重ループにして見やすくしよう ・ヒント:下記の●を0から1まで繰返せばよい         for (int j = 0; j < name[●].Length; j++) { //含まれる配列の要素数について繰返す             Console.WriteLine(name[●][j]); //含まれる配列の要素を表示         } 作成例 //アレンジ演習:p.146 jagged02.cs using System; class jagged02 {     public static void Main() {         string[][] name = new string[2][]; //(2次元)ジャグ配列の宣言と上位次元の要素数=含む配列の数は2と指定         name[0] = new string[2]{"田中", "工藤"}; //含まれる配列①の初期化(2要素)         name[1] = new string[3]{"吉田", "佐藤", "池田"}; //含まれる配列②の初期化(3要素)         for (int i = 0; i < name.Length; i++) { //含まれる配列数(2)について繰返す             for (int j = 0; j < name[i].Length; j++) { //含まれる配列のそれぞれの要素数(2,3)について繰返す                 Console.WriteLine(name[i][j]); //含まれる配列の要素を表示             }         }     } } p.147 暗黙の型指定がなされた配列 ・varキーワードにより、初期化された変数の型を自動決定できる(p.61) ・これは、配列に対しても適用可能 ・「var []」や「var [][]」などになるわけではなく、配列としての型になる ・書式例: var 配列名 = new []{値,…}; p.147 var03.cs //p.147 var03.cs using System; class var03 {     public static int Main()     {         var name = new []{"太郎",…

Read the full article

今週の話題

販売本数ランキング 今回トップも「スーパーマリオブラザーズ ワンダー(Switch)」GO! にじさんじライバーの要望に応える徹底的なこだわり―エンジニアとデザイナーが語るANYCOLORの強み【alive 2023】GO! 固定費削減で黒字転換したマイネット―ファンタジースポーツへの固執は吉と出るか【ゲーム企業の決算を読む】GO! ユーザー制作マップの“ゴーストタウン化”防ぐ―GameWith、『フォートナイト』内でのクリエイティブマップ制作・プロモーションを支援 GO! アカツキ、ソニーグループ/コーエーテクモホールディングスとの資本業務提携および第三者割当による自己株式処分実施を決議 GO! 過去に『GTA6』の映像を流出させた青年ハッカーに「無期限入院」命令が下る―高い技能や「サイバー犯罪に復帰しようとする意思」から判断 GO! ブロックチェーンは「実際の通貨を使用したギャンブル」?北米レーティングESRBにてNFT対応ゲームが「成人指定」対象に―Epic Games storeはポリシー変更で対象タイトル販売を継続 GO! 「にじさんじ」ANYCOLOR、“配信荒らし”との間で示談成立…無関係のコメントを執拗に連続投稿 GO! インディーゲームで契約トラブルを避けるための3つのポイントをPLAYISMが解説【IDC2023】 GO!

前回のコメント

・配列の要素数を12から24にかえるだけで少し混乱した。  配列を使いこなすことで、データ量が大きいゲーム等の記述が可能になります。  是非、使いこなしてください。 ・課題がわからなかったです ・アレンジ演習でヒントをみても解く事が出来なかった  少し難しかったですね。しっかりフォローしますので、理解を深めてください。

講義メモ:後半

p.142 3次元以上の配列 ・C#では次元数の制限はない ・3次元配列の宣言の書式: データ型[,,] 配列名; ・3次元配列の要素の生成の書式: 配列名 = new データ型[要素数①, 要素数②, 要素数③]; ・宣言と要素の生成は同時に行うことができる  書式: データ型[,,] 配列名 = new データ型[要素数①, 要素数②, 要素数③]; ・3次元配列では、要素の利用には3つの添字が必要 ・よって、for文による繰り返しを3重化すると良い ・例:  string[,,] names = new string[2, 3, 4]; //2種族各3グループ各4匹のモンスター名  for (int i = 0; i < 2; i++) { //2種族の分、繰返す   for (int j = 0; j < 3; j++) { //各3グループの分、繰返す    for (int k = 0; j < 4; j++) { //各4匹の分、繰返す     name[i, j, k] = Console.ReadLine();    }   }  } ・初期値を列挙することによる初期化が可能 ・3次元配列初期化の書式: 型[,,] 配列名 = { { {値,…}, … }, … } ・例: int[,] n = {{{1,2,3,4},{5,6,7,8},{9,10,11,12}},{{13,14,15,16},{17,18,19,20},{21,22,23,24}}}; ・要素数は省略できるが「●×■×▲」の形式になる必要がある p.142(次元数と要素数の取得) ・配列の次元数は「配列名.Rank」で得られる ・配列の全要素数は多次元配列においても「配列名.Length」で得られる ・C/C++等にように、多次元配列で「配列名[添字].Length」で上位要素数を得ることはできない p.143 array04.cs //p.143 array04.cs using System; class array04 {     public static void Main() {…

Read the full article

講義メモ

・p.137「2次元配列」から 提出フォロー:アレンジ演習:p.136 average02.cs ・配列の3要素の値をコンソールから入力するようにしよう ・ヒント① 配列の初期化ではなく宣言と生成にする  例:int[] point = new int[3]; ・ヒント② コンソールからの入力は繰返しの中(sumに足し込む前)で行うと良い ・ヒント③ 配列の要素は変数と同様に扱えるので、コンソールからの入力を要素に代入する  例:Console.Write("{0}番:", i); point[i] = int.Parse(Console.ReadLine()); 作成例 //アレンジ演習:p.136 average02.cs using System; class average02 {     public static void Main() {         int[] point = new int[3]; //【変更】int型の配列pointを3要素で生成         int sum = 0, no; //合計、要素数         no = point.Length; //プロパティで配列の要素数を得る         for (int i = 0; i < no; i++) { //iを0から要素数未満まで=全要素について繰返す             Console.Write("{0}番:", i); point[i] = int.Parse(Console.ReadLine());             sum += point[i]; //i番の要素の値をsumに足し込む         }         double average = (double)sum / no; //合計を件数で割って平均値を得る         Console.WriteLine("合計 = {0}, 平均 = {1:##.#}", sum, average); //合計値と平均値(小数点以下1桁)を表示     } } アレンジ演習:p.136 average02.cs・続き ・入力された値を逆順にしよう 例:10,20,30ならば30,20,10にする ・2つ方法があり、どちらでもOK  ①入力時に末尾の要素から格納  ②全て格納してから反転する 作成例① //アレンジ演習:p.136 average02.cs・続き ①入力時に末尾の要素から格納 using System; class average02 {     public static void Main() {         int[]…

Read the full article