Я пытаюсь создать соответствующую игру в Visual Basic 2010, и чтобы проверить, действительно ли выбранные карты совпадают, я хочу сравнить значение firstchoice.image с secondchoice.image.

Проблема, с которой я столкнулся, заключается в том, что при сравнении значение something.image возвращается как System.Drawing.Bitmap, поэтому сравнение всегда возвращает истину.

Код сравнения на данный момент:

If FirstI Is My.Resources.circle Then
    TempOne = 1
ElseIf FirstI Is My.Resources.crescent Then
    TempOne = 2
ElseIf FirstI Is My.Resources.pentagram Then
    TempOne = 3
ElseIf FirstI Is My.Resources.square Then
    TempOne = 4
ElseIf FirstI Is My.Resources.triangle Then
    TempOne = 5
ElseIf FirstI Is My.Resources.yinyang Then
    TempOne = 6
End If

If SecondI Is My.Resources.circle Then
    TempOne = 1
ElseIf SecondI Is My.Resources.crescent Then
    TempOne = 2
ElseIf SecondI Is My.Resources.pentagram Then
    TempOne = 3
ElseIf SecondI Is My.Resources.square Then
    TempOne = 4
ElseIf SecondI Is My.Resources.triangle Then
    TempOne = 5
ElseIf SecondI Is My.Resources.yinyang Then
    TempOne = 6
End If
Debug.WriteLine(FirstI)
Debug.WriteLine(SecondI)
If TempOne = TempTwo Then
    Return True
Else
    Return False
End If

FirstI и SecondI объявлены как

Private FirstI As Image
Private SecondI As Image

И заполняются данными, извлеченными из массива изображений.

Private Cards() As Image = {My.Resources.circle, My.Resources.crescent, My.Resources.pentagram, My.Resources.square, My.Resources.triangle, My.Resources.yinyang, My.Resources.circle, My.Resources.crescent, My.Resources.pentagram, My.Resources.square, My.Resources.triangle, My.Resources.yinyang}
0
ketchuphed 12 Мар 2014 в 06:33

1 ответ

Лучший ответ

На вашем месте я бы не пытался напрямую сравнивать объекты / значения, я бы просто сравнивал состояние. Сохраните FirstIIndex и SecondIIndex (как Integer), которые являются индексными целыми числами от 0 до Cards.Length. Когда вы устанавливаете это значение, установите изображение как Карты (FirstIIndex). Если вы хотите узнать, установлены ли они на одно и то же, просто проверьте, установлено ли FirstIIndex = SecondIndex.

1
cwa76 12 Мар 2014 в 06:40
В итоге я поставил параллельный массив, который скремблируется одновременно с массивом изображений, просто индексируя его числами. Спасибо за ваш ответ
 – 
ketchuphed
12 Мар 2014 в 06:55