2013-05-22 2 views
2

У меня есть этот метод:
Я пытаюсь назначить изображение карты в свои профили iconCards[][]. Изображения расположены в изображениях/папках, например. images/AS.gif (Ace of Spades), images/AD.gif (Ace of Diamonds) и т.д.Попытка присвоить карточные карты, но это дает мне неправильные карты

static void loadCardIcons(){ 
    int l =0; 
    int k =0; 

    while (k < 14){ 
     for (l = 0; l < 4; l++){ 
      String card = "images/" + Character.toString(valueRanks[k]) + "C.gif"; 
      iconCards[k][l] = new ImageIcon(card); 
      System.out.println(k + " " + l + " " + card); 
      card = "images/" + Character.toString(valueRanks[k]) + "D.gif"; 
      iconCards[k][l++] = new ImageIcon(card); 
      System.out.println(k + " " + l + " " + card); 
      card = "images/" + Character.toString(valueRanks[k]) + "H.gif"; 
      iconCards[k][l++] = new ImageIcon(card); 
      System.out.println(k + " " + l + " " + card); 
      card = "images/" + Character.toString(valueRanks[k]) + "S.gif"; 
      iconCards[k][l++] = new ImageIcon(card); 
      System.out.println(k + " " + l + " " + card); 
      k++; 
     } 
    } 
    iconBack = new ImageIcon("images/BK.gif"); 
} 


...12 3 images/KS.gif 
13 0 images/XC.gif 
13 1 images/XD.gif 
13 2 images/XH.gif 
13 3 images/XS.gif 

*13 
2 
images/XS.gif* 

Вы можете видеть, что value = 13 and suit = 2. Согласно выходу выше, карта должна быть images/XH (JokerHearts), но она печатает меня XS. Зачем? Вот метод, который его запускает. Не могу узнать, что происходит в течение нескольких недель.

static public Icon getIcon(Card card){ 
    loadCardIcons(); 

    return iconCards[valueAsInt(card)][suitAsInt(card)]; 
} 

ответ

4

Проблема здесь

iconCards[k][l++] = new ImageIcon(card); 

l++ оператор пост прирост на l. Поэтому данный l = 0 и k = 0, вы сможете получить доступ

iconCards[0][0] 

, а затем l пойдет 1. Возможно, вы захотите использовать pre increment ++l.

Так ваш l (как индекс iconCards) идет только до значения 2 (для images/XH.gif), не 3 (для images/XS.gif).

См. Oracle tutorial here о операторах increment/decment для объяснения их использования.

+0

Это было идеально. Большое спасибо, Сотириос! –

+0

@NurgulAlshyn Добро пожаловать. Подумайте о принятии ответа, если это было полезно. –

Смежные вопросы