AOYAMA Koji's プログラミングブログ - プログラミングを楽しく体験

【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】プログラミング初心者向け・入門編・基礎編初中級者向けプログラミング解説プログラマー向け実装解説[初級者向け]

2026/06/29
【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け]

 40年以上のゲームプログラミング経験をマンガで可視化。 今回は「ループ(繰り返し処理)」。 数行の記述で大量の処理を実行できるループは、初心者プログラマーが乗り越えるべき重要かつ最大の壁です。 その内部動作を直感的に理解しましょう。
【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け]

プログラミングブログ記事一覧


[PR]

【マンガで感じる】ループ ~繰り返し~


【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・ファンメンバー[メカ・ファンメンバー] 5人 チケットを持って楽しそう 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] [席番号 11]が記載されたチケット 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 椅子5つ メカ・ファンメンバー チケットを眺めながら悩み中 (どの椅子に座ってよいかわからない様子) 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「何か困っているようですね」考え中 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 社長「5人のファンメンバーに」「席番号11から15のチケットを配ったのですが」しまったという顔 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 椅子5つ 社長「席に番号がありませんね」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 社長「椅子5つに席番号を付けてください」涙目 クリスタル「承知しました」会釈 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] ループ ~繰り返し処理~ 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ (クリスタル)「メカ・アイ!」「席位置のインデックスをお願い」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー (クリスタル)「メカ・シートナンバー!」「席番号の設定をお願い」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・ファンメンバーたち5人 (クリスタル)「5回の**ループ**で」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 5脚並んでいる椅子イス (クリスタル)「順番に席番号を設定して」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「席番号は」「11からお願い」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー[腹=11] 集中線 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「じゃあ**ループ**開始!」「インデックス0から」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ 椅子0の前 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ[腹=0] 黒矢印 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ 椅子0の前 椅子0 への矢印 (クリスタル)「今、アイがいる席に」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「シートナンバーが席番号を設定して」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー トートバッグからシールを抜き出す 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー シール[11]保持 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー 目の前の椅子に シール[11] を貼る 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 席番号[11]演出 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「シートナンバーはインクリメント」「11 に 1 を足して 12 に」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー[腹=12] 矢印 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「それを、インデックスを増やしながら」「合計5回**繰り返し**て!」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ 0→1 移動 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ[腹=1] 椅子1 黒矢印 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー シール[12]取り出す 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー 目の前の椅子に シール[12] を貼る 赤丸 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー[腹=13] 赤矢印 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ[腹=2]椅子2 移動黒矢印 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー シール[13]貼る 赤丸 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー[腹=14] 赤矢印 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ[腹=3]椅子3 移動黒矢印 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー シール[14] を貼る 赤丸 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー[腹=15] 矢印 赤矢印 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・アイ[腹=4]椅子4 移動黒矢印 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー シール[15] を貼る 赤丸 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・シートナンバー[腹=16] 赤矢印 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「5回!それまで!」「2人ともありがとう」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 番号 11 から 15 が置かれた椅子 バーン演出 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] クリスタル「完了いたしました」会釈 社長「ありがとう!」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 社長「同じ動きを5回**繰り返し**て」「11から15まで席番号を付ける」 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 社長「**ループ**すばらしい!!!」「では参りましょう」 クリスタル 会釈 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] エピローグ風丸枠 メカ・ファンメンバー チケットを見ながら席を探す 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] メカ・ファンメンバー5人全員着席 わくわく顔 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 社長 服を剥ぎ取る 【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 社長 熱唱 ロックンロールな服 クリスタル ギター伴奏 ロックンロールな服 メカ・ファンメンバー ライトスティックを振りながら熱狂 後ろ姿
次のエピソードへ
【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 基本ソート

「ループ」のソースコード例


Python

// 席番号変数の初期値を 11 に設定
iSeatNumber = 11
// i が 0 から 1 ずつ増えながら 5 回繰り返す
for i in range( 0 , 5 ):
    // 席番号配列に席番号を設定
    aiSeatNumber[i] = iSeatNumber
    // 席番号変数インクリメント
    iSeatNumber += 1

JavaScript

// 席番号変数の初期値を 11 に設定
let iSeatNumber = 11;
// i が 0 から 1 ずつ増えながら 5 回繰り返す
for ( let i = 0 ; i < 5 ; ++i ) {
    // 席番号配列に席番号を設定し、席番号変数インクリメント
    aiSeatNumber[i] = iSeatNumber++;
}

[PR]

「ループ」とは:繰り返し処理


 「ループ」の本質「繰り返し処理」です。
 プログラムはたった数行でも、ループを用いて100回でも100万回でも繰り返すことが可能です。 これをうまく使いこなせるかどうかが、プログラマーとして重要なポイントです。

「ループ」のソースコードの仕組み(Python,JavaScript)


 ループのソースコードを解説します。
 比較的わかりやすい Python を先に解説し、続けて JavaScript を解説します。

Python の for..in によるループ


 まずは Python におけるループのソースコードを解説します。

席番号変数の初期値を設定

// 席番号変数の初期値を 11 に設定
iSeatNumber = 11
 まずこの行で、席番号の初期値を設定します。


初期値から最終値手前まで変数に設定して繰り返す

// i が 0 から 1 ずつ増えながら 5 回繰り返す
for i in range( 0 , 5 ):
 for は、ループを指示する代表的な制御文です。
 Python では for 変数 in range( 初期値 , 最終値 ): が基本形式です。 変数が、初期値から 1 ずつ増やしながら、「最終値のひとつ前」までの値を取りながら繰り返します。
 つまりこの行は、変数 i の値が、最初 0 になり、次に 12、と変わっていきながら、 その度に for のブロックを実行します。
 そして最後に 4 の処理をして、このループを終了します。


席番号を設定

// 席番号配列に席番号を設定
aiSeatNumber[i] = iSeatNumber
 この行は、配列と呼ばれる形式で示された場所 aiSeatNumber[i] に、iSeatNumber の値を設定します。
 つまり i0 で、iSeatNumber11のときは aiSeatNumber[0] = 11 の意味になります。


席番号変数をインクリメント

// 席番号変数インクリメント
iSeatNumber += 1
 席番号変数 iSeatNumber1 を加えます。

別の書き方

aiSeatNumber[0] = 11
aiSeatNumber[1] = 12
aiSeatNumber[2] = 13
aiSeatNumber[3] = 14
aiSeatNumber[4] = 15
 前述 プログラムは、このように 5 行で書き直すこともできます。
 ただし、こう書いてしまうと、繰り返し回数が多くなると、それだけプログラムが長くなります。 ループプログラムの良いところは、range で指定している 5100にするだけで、ループ回数が 100 に増えるところです。
 forループを使用してプログラミングすれば、少ない記述大量の繰り返し処理が可能です。


JavaScript の for によるループ


 次に JavaScript におけるループのソースコードを解説します。

席番号変数の初期値を設定

// 席番号変数の初期値を 11 に設定
let iSeatNumber = 11;
 まずこの行で、席番号の初期値を設定します。


for文で初期化、継続条件、更新処理を繰り返す

// i が 0 から 1 ずつ増えながら 5 回繰り返す
for ( let i = 0 ; i < 5 ; ++i ) {
 JavaScript および C#、C++ 系の言語における for 文は、for ( 初期化 ; 継続条件 ; 更新処理 ) の形式です。
 つまりこれは、以下の順番で実行されます。
  1. 初期化(let i = 0)
  2. 継続条件(i < 5)が false ならループ終了
  3. forに続く中身({aiSeatNumber[i] = iSeatNumber++;})
  4. 更新処理(++i)
  5. 2へ戻る


席番号を設定し、席番号変数をインクリメント

// 席番号配列に席番号を設定し、席番号変数インクリメント
aiSeatNumber[i] = iSeatNumber++;
 この行は aiSeatNumber[i]iSeatNumber の値を設定し、iSeatNumberをインクリメントします。
 iSeatNumber++ は、iSeatNumber1 を加えつつ、加える前の iSeatNumber の値を返します。
 すなわち i0iSeatNumber11 のときは、 aiSeatNumber[0] が 11 になり、iSeatNumber12 になります。
 わかりづらければ、Python のように2行に分けても問題ありません。


配列について


 変数aiSeatNumber配列と呼ばれるデータ型の値を保持しています。
 詳しくは後のエピソードで解説予定ですが、ここでは配列の変数の各要素を「番号付きの変数」だと考えてください。 つまり、aiSeatNumber[0]aiSeatNumber[1] という名前の変数のようなものです。 ただし、その添字の数字を変数にして aiSeatNumber[i] などとも指定できます。
 また、配列の値は [] を使用し、各要素の値を「,」(カンマ)区切りで繋げて書くことができます。 これを配列リテラルと呼びます。 例えば aiSeatNumber = [ 11 , 12 , 13 , 14 , 15 ] なら、aiSeatNumber[0]11aiSeatNumber[1]12aiSeatNumber[4]15、です。

0から始まることについて


 プログラムにおける先頭の数値は 0 が原則です。 配列の番号も 0 から始まります。 ※プログラミング言語や状況にもよります
 今回のソースコードでは、Python が range( 0 , 5 )、JavaScript は for ( let i = 0 ; i < 5 ; ++i ) と記述しています。 このように、ループは 0 から始め、5回ループなら「5未満まで」と指定するのが、基本的なプログラミングです。

JavaScriptのループ処理を展開


処理
i
iSeatNumber
aiSeatNumber
-
-
[ ?, ?, ?, ?, ?]
let iSeatNumber = 11
-
11
[ ?, ?, ?, ?, ?]
let i = 0
0
11
[ ?, ?, ?, ?, ?]
i < 5 (true のためループ継続)
0
11
[ ?, ?, ?, ?, ?]
aiSeatNumber[i] = iSeatNumber++
0
12
[11, ?, ?, ?, ?]
++i
1
12
[11, ?, ?, ?, ?]
i < 5 (true のためループ継続)
1
12
[11, ?, ?, ?, ?]
aiSeatNumber[i] = iSeatNumber++
1
13
[11,12, ?, ?, ?]
++i
2
13
[11,12, ?, ?, ?]
i < 5 (true のためループ継続)
2
13
[11,12, ?, ?, ?]
aiSeatNumber[i] = iSeatNumber++
2
14
[11,12,13, ?, ?]
++i
3
14
[11,12,13, ?, ?]
i < 5 (true のためループ継続)
3
14
[11,12,13, ?, ?]
aiSeatNumber[i] = iSeatNumber++
3
15
[11,12,13,14, ?]
++i
4
15
[11,12,13,14, ?]
i < 5 (true のためループ継続)
4
15
[11,12,13,14, ?]
aiSeatNumber[i] = iSeatNumber++
4
16
[11,12,13,14,15]
++i
5
16
[11,12,13,14,15]
i < 5 (false のためループ終了)
 この JavaScript のプログラムは、ひとつひとつ分解すると、この表の通りに動いています。 この動きを理解できていることが重要です。
 なおここでは、? を「何が設定されているかわからない」という意味で使用しています。 実際には何かの値が入っています。
 また、定義されていない変数の欄は - としています。 配列の変数 aiSeatNumber は、事前に定義済みという想定です。


【プログラミングの醍醐味】1種類のプログラムをループ


 マンガおよびソースコード例では、数行で5回繰り返し処理を実行しました。 最終値や継続条件を変更すれば、100回でも100万回でも、同じ行数で繰り返すことができます。
 このように、1種類のプログラムを、数値を指定するだけで多数繰り返し処理することができる。 これぞプログラミングの醍醐味です。

ゲームプログラミングにおける「ループ」


 ゲームプログラミングを含めたすべてのプログラミングの基本要素のうち、筆者が最も重要と考えているのが「ループ」です。

ゲームで使用される各種「ループ」


 例えば、MMORPGのプレイヤーキャラクターに対する処理は、ループで実施しています。 仮に1つのサーバーに1000人いた場合、1000行のプログラムを実行するわけではありません。 キャラクター番号等を保持する変数の値を変えながら、1種類のプログラムを1000回ループ実行します。
 敵キャラクターも同様ですし、目に見える見えないに関わらず様々な要素が、ループで処理するからこそ実現できています。
 さらにゲームプログラミングでは、大本の処理がメインループと呼ばれます。 つまり、処理全体がループで動いています。
 ゲームプログラミングとループは、切っても切り離せないほど、重要な要素です。
 なお、メインループについては、後の「フレーム」のエピソードで詳しく解説予定です。

「ループ」を理解すれば「プログラマー」


 ループを正確に理解してプログラミングできるかどうかが、プログラマーかどうかの差だと、筆者は考えています。
 これはあくまでも筆者の独自基準ですが、ループを理解できれば、プログラマーを名乗って問題ありません。

「ループ」はプログラム最大の特徴


 ループはプログラムにおける最大の特徴です。 基本的に、他のドキュメントには無いものです。
 ただし、理解するには少々高い壁を超える必要があります。 筆者は個人的に、これがプログラマーにとっての最大の壁だと考えています。

ソースコードを正確に理解しよう


 ループの理解のために、本エピソードのソースコードで示されるプログラムが、同じ変数の値を順次変えつつ処理が行われていくことを詳細かつ正確に理解しましょう。
 比較的 Python の方が理解しやすいと思います。 JavaScript は大変かもしれませんが、ぜひ、前述の表を確認して、内部動作を漏らさず把握してください。
 難しいと感じたら、前エピソード「列挙ループ」に戻って、そちらの理解を確認してください。
 筆者は中学生の時に、半年かかって理解できました。 ですので時間がかかって構いませんし、理解が曖昧なまま先に進むのも良いでしょう。

応用してみよう


 理解できたと感じたら、OXゲーム開発のエピソード「ゲームオーバー」で、全インデックス番号を指定していた勝敗判定プログラムを、 ループを使用して書き直してみてください。
 また、19×19の碁盤の5目並べの勝利判定にも、挑戦してみてください。

【職人の視点】Python の for はすべて列挙ループ?


 Python の forループは、すべて for..in の形です。 つまり前エピソードで解説した「列挙ループ」と言えます。
 ただし、range( 0 , 5 ) の内部処理は、[0,1,2,3,4] をその場で作るのではなく、 JavaScript の for ループで解説した ++i のような、i を 1 ずつ増やす動作をしています。 なお、range は第3引数で「ステップ数」(増分)を指定できます。 本エピソードでは省略しているため、デフォルトの 1 が適用されています。 Python で ++i という書き方ができない点にも注意
 そのため、列挙ループと呼ぶべきか、汎用的なループとして扱うべきかは微妙なところですが、 無駄なメモリーは使用していないというところは、プロとして把握しておくべきでしょう。
[PR]

マンガで感じる!本当の基礎から学ぶゲームプログラミングとは


 「マンガで感じる!本当の基礎から学ぶゲームプログラミング」シリーズでは、 主に、ゲーム開発を題材として、プログラミング時に筆者が脳内でイメージするコンピューター内部動作や本質を、マンガにてお伝えします。

プログラミングの本質をマンガで理解


 AI時代のプログラミングは、本質理解が重要です。 本質を理解していれば、あとはAIに任せて、自身を持って完成したプログラムに責任が持てるでしょう。
 そのため本シリーズでは、コーディングの実例や詳細よりも、「本質をイメージとして感じられること」を最優先としています。 まずマンガで、情報をできる限り絞り、プログラミングの仕組みやコンピューターの内部動作を、物理的に可視化してお届けします。
 そして文章の解説で徹底的に深堀りします。

登場人物紹介

【マンガで感じる】ループ ~繰り返し処理~ プログラマーが乗り越えるべき最大の壁【本当の基礎から学ぶゲームプログラミング】[初級者向け] 登場人物 社長 クリスタル メカたち  マンガで感じる!本当の基礎から学ぶゲームプログラミングシリーズには、主に社長、クリスタル、およびメカたちが登場します。 ※実在の人物とは関係ありません

社長

 本シリーズの偉い人です。
 マンガでは、指示すなわち「要件定義」を行います。

クリスタル

 社長の指示を、メカを活用して解決します。
 名前は、コンピューター内部で指揮者の役割を果たす「水晶発振器」に由来します。

メカたち

 用途に応じて多数存在し、果たす役割がそれぞれ与えられています。
 クリスタルの指示に従い、ある時はプログラムの変数や関数のように、ある時は電子回路の素子のように振る舞います。

「マンガで感じる!本当の基礎から学ぶゲームプログラミング」にかける想い


 筆者が本シリーズにかける想いや、 より詳しいコンセプトは「マンガで感じる!本当の基礎から学ぶゲームプログラミング」にて語っています。 そちらもぜひご覧ください。

本エピソードから読み始めた方へ


 もしあなたがプログラム初心者で、「マンガで感じる!本当の基礎から学ぶゲームプログラミング」シリーズを本エピソードから読み始めた場合は、 ぜひ最初のエピソード「プログラム」から読むことをご検討ください。

AIを専属の家庭教師にしてループを学ぼう


 本エピソードでは、プログラミングに重要な役割を果たす「ループ」について解説しました。
 マンガを読んで興味が湧いた、ソースコードや解説のこのキーワードが気になった、などあれば、AIを専属の家庭教師に見立てて対話してみましょう。 各人の理解度に応じた質疑応答ができて、理解が深まりますので強くオススメします。
 おそらくこの「ループ」が、プログラミング学習において最大の高い壁になると思います。 本エピソードおよび、比較的理解しやすい前エピソード「列挙ループ」と併せて、焦らず確実に理解していきましょう。
 皆さまのループおよびゲームプログラミングの本質理解に少しでもお役に立てれば幸いです。

補足

  • 本記事に記載のプログラムソースコードは、悪意のない範囲で自由に使用・改変していただいて問題ありません。ただし、ご自身の判断と責任でお願いします。
  • 記事内容の検討および検証・添削に生成AIの Anthropic Claude と Google Gemini を利用しております。
  • 記事内の画像の作成に生成AIの Google Gemini を利用しております。
  • ※各社の登録商標または商標について「®」「™」等の表記はしておりません。


カテゴリー:マンガで感じる!本当の基礎から学ぶゲームプログラミング,基本アルゴリズム編
[PR]