投稿者 HiDE-Ada  (社会人) 投稿日時 2013/11/5 02:46:56
clsField.vbの続き
  Shared Function cardon(ByVal idx As IntegerAs Boolean
    Return field(idx).num <> -1
  End Function

  Shared Function calcPos(ByVal x As IntegerByVal y As IntegerByRef xp As IntegerByRef yp As IntegerAs Integer
    Dim idx As Integer = -1
    x = x - offset

    If x < 10 OrElse 84 * 5 + 10 <= x _
      OrElse y < 10 OrElse 124 * 5 + 10 <= y Then Return idx

    xp = CInt((x - 10) \ (CARD_WIDTH + 4))
    yp = CInt((y - 10) \ (CARD_HEIGHT + 4))

    idx = yp * 5 + xp

    Return idx
  End Function
End Class

カードの表示はPictureboxを使わずに描画しています。

clsFieldクラスがSharedばかりなのは、ちょっとわけたかっただけです。
モジュールでも、Form1.vbに記述してもよいルーチンばかりです。
つっこみ満載だと思います^^;