投稿者 syosinya  (社会人) 投稿日時 2009/1/19 19:07:32
下記のコードは、「くるくるバトル」というゲームで、6×6のピクチャボクスを使って
作成してあり、黒と白のコマを交互において自分の持ちコマで相手のコマをはさんだときに
裏返せる。裏返したコマの数が勝敗を決するというゲームの一部です。
これは、とある本のサンプルの一部ですが、疑問に思っていることがあるので
おしえてください。
下記のコードの中でPictureBoxの配列とPictureBoxの二次元配列の2つが書かれているのですが
前者は不要な気がするのですが、ちがいますでしょうか?

  '-----------------------
  'モジュールレベル変数
  '
  Private PBox(35) As PictureBox    'PictureBoxの配列
  Private PBox2(5, 5) As PictureBox 'PictureBoxの二次元配列
  Private dw(7) As Integer    '横方向移動量
  Private dh(7) As Integer    '縦方向移動量
  Private gCnt As Integer     'コマの数
  Private gBlack As Integer   '黒のポイント
  Private gWhite As Integer   '白のポイント
  '
  Const PIECE As Integer = 6     '1辺のコマの数


  '-----------------
  '起動時
  '
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim i As Integer  'カウンタ

    'PictureBoxの配列を作成
    PBox = New PictureBox() { _
                  pctBan0, pctBan1, pctBan2, pctBan3, pctBan4, pctBan5, _
                  pctBan6, pctBan7, pctBan8, pctBan9, pctBan10, pctBan11, _
                  pctBan12, pctBan13, pctBan14, pctBan15, pctBan16, pctBan17, _
                  pctBan18, pctBan19, pctBan20, pctBan21, pctBan22, pctBan23, _
                  pctBan24, pctBan25, pctBan26, pctBan27, pctBan28, pctBan29, _
                  pctBan30, pctBan31, pctBan32, pctBan33, pctBan34, pctBan35}

    '二次元配列を作成
    PBox2 = New PictureBox(,) { _
                    {pctBan0, pctBan1, pctBan2, pctBan3, pctBan4, pctBan5}, _
                    {pctBan6, pctBan7, pctBan8, pctBan9, pctBan10, pctBan11}, _
                    {pctBan12, pctBan13, pctBan14, pctBan15, pctBan16, pctBan17}, _
                    {pctBan18, pctBan19, pctBan20, pctBan21, pctBan22, pctBan23}, _
                    {pctBan24, pctBan25, pctBan26, pctBan27, pctBan28, pctBan29}, _
                    {pctBan30, pctBan31, pctBan32, pctBan33, pctBan34, pctBan35}}

    '移動量を設定
    dh = New Integer() {-1, -1, -1, 0, 1, 1, 1, 0}
    dw = New Integer() {-1, 0, 1, 1, 1, 0, -1, -1}

    '盤面のドラッグ/ドロップを設定
    For i = 0 To PIECE * PIECE - 1
      PBox(i).AllowDrop = True
    Next
  End Sub
以下省略