手順 2: Random オブジェクトおよびアイコンのリストの追加

Visual Studio 2017 RC の最新のドキュメントの詳細については、Visual Studio 2017 RC ドキュメントをご参照ください。

このステップでは、絵合わせゲームに使用する一連のアイコンを作成します。 各アイコンは、フォーム上の TableLayoutPanel 内の 2 つのランダムなセルに追加されます。 そのために、2 つの new ステートメントを使用して 2 つのオブジェクトを作成します。 1 つ目は、計算クイズ ゲームで使用したオブジェクトに似た Random オブジェクトです。 このコードでは、TableLayoutPanel 内のセルをランダムに選択するために使用します。 2 つ目は、初めての使用になるかもしれませんが、List オブジェクトです。ランダムに選択されたアイコンを格納するために使用します。

Random オブジェクトおよびアイコンのリストを追加するには

  1. ソリューション エクスプローラーで、Visual C# の場合は [Form1.cs]、Visual Basic の場合は [Form1.vb] をダブルクリックします。次に、メニュー バーで [表示][コード] の順にクリックします。 別の方法として、F7 キーを押すか、ソリューション エクスプローラー[Form1] をダブルクリックすることもできます。

    これにより、Form1 のコード モジュールが表示されます。

  2. 既存のコードに次のコードを追加します。

    public partial class Form1 : Form
    {
        // Use this Random object to choose random icons for the squares
        Random random = new Random();
    
        // Each of these letters is an interesting icon
        // in the Webdings font,
        // and each icon appears twice in this list
        List<string> icons = new List<string>() 
        { 
            "!", "!", "N", "N", ",", ",", "k", "k",
            "b", "b", "v", "v", "w", "w", "z", "z"
        };
    
    Public Class Form1
    
        ' Use this Random object to choose random icons for the squares
        Private random As New Random
    
        ' Each of these letters is an interesting icon
        ' in the Webdings font,
        ' and each icon appears twice in this list
        Private icons =
          New List(Of String) From {"!", "!", "N", "N", ",", ",", "k", "k",
                                    "b", "b", "v", "v", "w", "w", "z", "z"}
    

    Visual C# を使用している場合は、必ずクラス宣言 (public partial class Form1 : Form) のすぐ後の、始め中かっこの後にコードを配置してください。 Visual Basic を記述している場合は、クラス宣言 (Public Class Form1) のすぐ後にコードを配置します。

  3. List オブジェクトを追加するときに、表示される IntelliSense ウィンドウに注目します。 次に示しているのは Visual C# の例ですが、Visual Basic でリストを追加するときも同様のテキストが表示されます。

    Click イベントが表示された [プロパティ] ウィンドウ
    IntelliSense ウィンドウ

    注意

    [Intellisense] ウィンドウは、手動でコードを入力する場合にのみ表示されます。 コードをコピーして貼り付ける場合は表示されません。

    小さなセクションのコード (およびコメント) を見ると、より容易に理解できます。 プログラムでは、List オブジェクトを使用してさまざまな項目を追跡できます。 リストでは、数値、true\/false 値、テキスト、またはその他のオブジェクトを保持できます。 他の List オブジェクトを保持している List オブジェクトを持つこともできます。 リスト内の項目は要素と呼ばれ、各リストで保持される要素は 1 種類のみです。 そのため、数値のリストでは数値しか保持できません。数値のリストにテキストを追加することはできません。 同様に、true\/false 値のリストに数値を追加することもできません。

    new ステートメントを使用して List オブジェクトを作成するときは、リストに格納するデータの種類を指定する必要があります。 IntelliSense ウィンドウの上部のツールヒントがリスト内の要素の種類を示すのはそのためです。 また、List<string> (Visual C# の場合) および List(Of String) (Visual Basic の場合) は、List オブジェクトが string データ型の要素を保持することを意味します。 string は、プログラムがテキストの格納に使用するものであり、IntelliSense ウィンドウの右側のツールヒントが示しているものです。

  4. Visual Basic では最初に一時配列を作成する必要があるのに対し、Visual C# では 1 つのステートメントでリストを作成できる理由を考えます。 これは、Visual C# 言語にはコレクション初期化子があるためです。この初期化子により値を受け取るリストが作成されます。 Visual Basic では、コレクション初期化子を使用できます。 ただし、以前のバージョンの Visual Basic との互換性を確保するため、先に示されているコードを使用することをお勧めします。

    new ステートメントでコレクション初期化子を使用した場合は、新しい List オブジェクトを作成すると、中かっこ内に指定しているデータがプログラムによってリストに格納されます。 ここでは、icons という名前の文字列のリストが生成され、そのリストは、16 の文字列を格納できるように初期化されます。 これらの各文字列は、1 つの文字であり、それらすべてがラベルで表示されるアイコンと対応しています。 そのためゲームには、感嘆符のペア、大文字の N のペア、コンマのペアなどが存在することになります (これらの文字は Webdings フォントに設定されると、バス、バイク、クモなどのアイコンとして表示されます)。List オブジェクトは、TableLayoutPanel パネルのセルごとに 1 つの、合計 16 の文字列を保持することになります。

    注意

    Visual Basic では、結果は同じになりますが、最初に一時配列に文字列が格納されてから、この一時配列が List オブジェクトに変換されます。 配列はリストと似ていますが、配列は固定サイズで作成されるなどの例外があります。 リストは、必要に応じて縮小および拡大できます。このプログラムではこの点が重要になります。

続行または確認するには