【ゲーム開発のためのC#入門講座・基礎学習編】コンピュータに命令を出してみよう【#2】

2021-12-201.0_C#基礎学習編

おさらい

これから学ぶプログラミングについてさらっとおさらいをしておきます。

  • プログラミングとは、コンピュータへの命令行為
  • プログラミング言語とは、コンピュータに命令を出すための翻訳手段
  • C#(シーシャープ)はプログラミング言語のひとつ

それでは、実際にC#を使ってコンピュータに命令を出してみましょう。

コンピュータに命令を出すには?

コンピュータに命令を出す、いわゆるプログラミングを行うには、そのための開発環境を揃える必要があります。

というと、いきなりハードル高く感じられてしまいますよね。

なので、しばらくはWeb上でプログラム実行ができるサービスを使って学習していきたいと思います。

C# Online | ブラウザでプログラミング・実行ができる「オンライン実行環境」| paiza.IO

これなら何の導入もいらないので、とても気楽に始められますね。(※もちろん、既に開発環境をお持ちの方はそちらをご利用いただいても構いません)

ある程度学習が進み、本格的な開発環境が必要になったら、改めて導入手順をご紹介したいと思います。

コードを実行してみよう

コンピュータに対する命令文のことをコードといいます。

先程紹介させていただいた、Web上でプログラム実行ができるサービスでは、下記のようなコードが初期値として設定されています。

public class Hello{
    public static void Main(){
        // Your code here!
        
        System.Console.WriteLine("Hello C#");
    }
}

このうち、3行目の「//」から始まる部分はコメントという機能です。

コメントとは、何らかの補足情報をプログラム内に書き残すことができる機能のこと

もう少し後で詳細に解説しますので、今は「プログラム上に補足情報を残したい時は、//を先頭につけて書くらしい」ということだけ覚えていただければと思います。今後もプログラムの中で皆さんへ何か補足情報を伝えたい時は、このコメント機能を活用していきます。

今回は使用するWebサービスから「ここに貴方のコードを書いてね!」というメッセージが記載されていますね。今後の学習には必要のない情報になるので、空行も含めて削除しちゃいます。

public class Hello{
    public static void Main(){
        System.Console.WriteLine("Hello C#");
    }
}

以後、これをベースに話を進めさせてもらいます。

それでは、試しにこのコードを実行するよう、コンピュータに命令してみましょう。

画面左下にある緑色の「実行(Ctrl+Enter)」ボタンを押下してください。カッコ内に書いてある通り、Ctrlキーを押しながらEnterボタンを押下でも同じことが出来ますので、お好みの方法でどうぞ。

赤枠のボタンを押してね!

実行すると、画面下部に出力というエリアが追加され、下記の文章が表示されます。

出力エリア
Hello C#
赤枠の部分を確認してみてね!

無事、プログラム実行ができました!

ポイントだけ押さえよう

今回は、すべてのコード解説は行いません。

いずれこのコードの意味がわかるように学習していきます。

ポイントだけ押さえて、ひとつひとつステップアップしていきましょう。

「public」だとか「class」だとか訳の分からない単語が並んでいますが、下記の記述は単語のニュアンスから何となく意味が読み取れるかと思います。

System.Console.WriteLine("Hello C#");

これは出力エリア(Console)に指定の文章を書き出し(WriteLine)なさいという意味の命令です。

(““)で囲まれている部分が文章を指定している箇所となります。

試しに皆さんの好きな言葉や文章を出力エリアに書き出すよう、(““)で囲まれている部分を書き換えてみましょう。

//これは例です。("と")の間に、皆さんのお好きな文章を記述してみましょう!
System.Console.WriteLine("いけ、フィンファンネル!");

実行ボタンを押してみて、皆さんの好きな言葉や文章が出力エリアに表示されたら成功です。

なお、C#では命令の最後に「;」をつけるというルールがあります。これはどこからどこまでがひとつの命令なのかコンピュータに教えるための目印のようなものです。

慣れないうちはついつい忘れがちなので気を付けてくださいね。

もうひとつポイントを押さえよう

もうひとつ、ここでとても重要なことを覚えましょう。

それはコンピュータは基本的に、命令を順番通りにしか実行できないということ。

試しに「System.Console.WriteLine」という命令をいくつか並べてみましょう。

public class Hello{
    public static void Main(){
        System.Console.WriteLine("2");
        System.Console.WriteLine("3");
        System.Console.WriteLine("1");
    }
}

実行結果は下記の通りです。

出力エリア
2
3
1

きちんと命令の順番通りに出力されていますね。

コンピュータは機械なので、順番を入れ替えたり勝手に優先順位を決めたりすることはありません。与えられた命令を上から順にひたすら実行していきます。

意外と単純です。

もちろん学習していくと複雑で難しい部分も出てはきますが、原理原則は「上から順番に実行」であることは間違いないです。Unityで作られたゲームも、そしてUnityという開発ツール自体も、基本的にはコンピュータが順番に命令を実行した結果、動作しています。

皆さんがこれからプログラミング言語を学習して実際にコードを書き連ねていく時も、基本はやって欲しいことを順番に書いていくだけです。

コンピュータって複雑怪奇な動きをしていて、自分には理解できないんじゃないかと不安に思っていらっしゃる方もいると思うのですが、そう考えると少しは気が楽になるんじゃないかなと思います。

Unityでの活躍ポイント

今回学んだ「System.Console.WriteLine」は、出力エリアに指定の文章を出力する命令でした。

似たような命令として、Unityには「Debug.Log」があります。

これはデバッグ(テストプレイのこと)の時だけ、コンソール画面に指定の文章を出力する命令です(Unityでしか使えないので、今回のWebサービス上で試そうとしても動かない点に注意)。

Debug.Log("テストプレイ中に表示したいメッセージ");

実際の出力結果はこの通り。

現在実行中の命令内容を表示させたり、プログラムで問題が起きた時にエラー内容を表示させたりしたい時に使います。

プログラムが思ったように動いてくれなかった時に、どの箇所でどんな理由で問題が起きたのか、原因が調査しやすくなるというメリットがあります。

いずれ使う機会があると思うので、頭の片隅にでも置いておきましょう。

実践演習

実際に動かしていくのが一番の近道なので、記事毎に演習を設けます。

また、各演習にはヒントコメントを記載したテンプレートを用意しています(演習の内容によってはない場合もあります)。Webサービス上にコピペした上で、ヒントを参考にしながら、皆さんの手でプログラムを完成させてください。

うまくいかない場合や疑問がある場合、コメントやTwitterでご連絡いただければサポート・回答します。

それでは、どうぞ!

演習①コードを書いてみよう!

記載の予想結果通りとなるよう、皆さんの手でコードを追記してみてください。

テンプレート
public class Hello{
    public static void Main(){
        // ↓ここに3行コードを書いて、プログラムを完成させよう!



        // ↑ここまで
    }
}
出力エリア(予想結果)
Unityで
ゲームを
作りたい!

演習②もうひとつの命令を使ってみよう!

実は「System.Console.WriteLine」のLineという部分、1行を意味しています。なので命令の内容を正確にいうと「出力エリアに指定の文章を1行として出力しなさい」ということになります。

だから下記コードを実行すると、1行ずつ改行されて出力されていたんですね。

public class Hello{
    public static void Main(){
        System.Console.WriteLine("2");
        System.Console.WriteLine("3");
        System.Console.WriteLine("1");
    }
}
出力エリア
2
3
1

このLineという部分を削除し、「System.Console.Write」とすると、改行せずに出力してくれます。

という訳で、演習①で作ったプログラムの命令を「System.Console.WriteLine」から「System.Console.Write」に変更し、改行せずに出力するよう、プログラムを修正してみましょう!

出力エリア(予想結果)
Unityでゲームを作りたい!

上記のように出力されれば成功です。

答え合わせ

演習①の答え

public class Hello{
    public static void Main(){
        // ↓ここに3行コードを書いて、プログラムを完成させよう!
        System.Console.WriteLine("Unityで");
        System.Console.WriteLine("ゲームを");
        System.Console.WriteLine("作りたい!");
        // ↑ここまで
    }
}

演習②の答え

public class Hello{
    public static void Main(){
        // ↓ここに3行コードを書いて、プログラムを完成させよう!
        System.Console.Write("Unityで");
        System.Console.Write("ゲームを");
        System.Console.Write("作りたい!");
        // ↑ここまで
    }
}

まとめ

  • コンピュータに対する命令文のことをコードという
  • プログラム上に補足情報(コメント)を残したい時は//を先頭につけて書く
  • コンピュータは原則、与えられた命令を上から順に実行していく
  • 「System.Console.WriteLine」は「出力エリア(Console)に指定の文章を書き出し(WriteLine)なさい」という命令

未経験の方は初めてのプログラム実行になったと思いますが、いかがだったでしょうか。

少しでもハードル低く感じてもらえていれば幸いです。

それでは、今回もお疲れ様でした! また次の記事でお会いしましょう!

Posted by yuumekou