次の方法で共有


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

このステップでは、絵合わせゲームに使用する一連のアイコンを作成します。各アイコンは、フォーム上の 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 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"}
    
    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"
        };
    

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

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

    IntelliSense ウィンドウ

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

    [!メモ]

    [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 オブジェクトに変換されます。配列はリストと似ていますが、配列は固定サイズで作成されるなどの例外があります。リストは、必要に応じて縮小および拡大できます。このプログラムではこの点が重要になります。

続行または確認するには