トランプ画像

タグの編集
投稿者 一二三  (学生) 投稿日時 2013/11/2 00:09:26
今ピクチャーボックスにトランプ53枚をランダムに表示させているのですが 、表示中のトランプカードの数字やマークなどの情報を管理しておくようにしたいのですがどうしたら良いのかわからないのでぜひ教えて貰いたいです。
よろしくお願いいたします。(@_@)
投稿者 HiDE-Ada  (社会人) 投稿日時 2013/11/2 01:38:33
トランプねたが続いてますが、カードを表示できているようなので
カードの画像のファイル名はなんでしょうか?

たとえば、ハートのQの画像のファイル名はなんですか?
H12.pngとかでしょうか?
投稿者 一二三  (学生) 投稿日時 2013/11/2 09:07:27
ファイル名はカードがハートの1だったら「H-1」にしています。       
投稿者 一二三  (学生) 投稿日時 2013/11/2 09:09:27
ハートの1だったら「H-1.jpg」です
投稿者 bz9  (中学生) 投稿日時 2013/11/2 11:08:03
Picturebox のTagプロパティを使ってみるっていう手もありじゃないですか?
Tag = "H-1"
みたいにカードの情報を入れて、

Dim Mark As String = Tag.Split("-")(0)
Dim Num As String = Tag.Split("-")(1)

変数名、区切り文字などは自由ですけど、例として MarkとNum 区切り文字に ハイフンを使いました。
投稿者 HiDE-Ada  (社会人) 投稿日時 2013/11/2 18:22:18
一度Pictureboxに画像をセットしてからあと、画像を変更しないなら
Tagプロパティの利用で問題ないと思います。
注意点は、TagプロパティがObject型なので、使用時にCStr()などで
キャストする必要があります。

たぶん、配列などにカードのファイル名を格納していると思うのですが
cardlist(0) = "H-1.jpg"
 :
cardlist(11) = "H-12.jpg"

この配列の添え字、上の例では0をTagプロパティへ設定してもいいです。

また、同じカードを何度も判断する必要があるなら、
structure typecard
  dim mark as string
  dim num as integer … integerにするかstringにするかは今後の使用方法による
end structure

をどこかで定義して、Pictureboxへ画像をセットするときに
dim tc as typecard
tc.mark = "H"  …実際にはLeft(filename,1)とかのコードで
tc.num = 1 …同様に、filenameなどからコードで
Picturebox1.tag = tc

として、使用時に
tc1 = ctype(Picturebox1.tag, typecard)
tc2 = ctype(Picturebox2.tag, typecard)
if tc1.num = tc2.num then
 :

とすれば、何度も変換処理する必要がなくなります。