2014-11-26 3 views
-3

Эта игра для подмигивания - обычная игра, однако человек начинается с трех жизней и может получить еще три, если он найдет щит. Также можно найти бессмертие, которое очень редко и дает пользователю бесконечное количество жизней.MineSweeper Game

Так что проблема в том, что когда я перезагружаю игру и, например, нажимаю на бомбу, я теряю больше одной жизни. Однако в начале все работает отлично. Эта проблема не только для этого, но и для всего всего.

Так вот код:

if (e.getSource() == btnReset) { 
     // miss = 0; 
     // System.out.println(miss); 
     getMines(); 
     lives = 3; 
     System.out.println(" lives = " +lives); 
     for (int x = 0; x < BOARD_HEIGHT; x++) 
     { 
      for (int y = 0; y < BOARD_WIDTH; y++) 
      { 

       btn[x][y].addActionListener(this); 
       btn[x][y].setBackground(null); 


      } 
     } 

    } 
} 
+0

Это очень расплывчатое утверждение проблемы и много кода. Уточните проблему до чего-то более конкретного и включите только код, относящийся к проблеме. – tnw

+0

Я не понимаю, как «Так что проблема в том, что когда я перезагружаю игру и, например, нажимаю на бомбу, я теряю больше одной жизни». является неопределенным ... его очень специфическим –

ответ

1

В вашей "сброс" ветви действий, вы делаете это ...

btn[x][y].addActionListener(this); 

Если ActionListener не был ранее удален, вы добавит ДРУГОЙ ActionListener, поэтому в следующий раз, когда вы нажмете эту кнопку, ваш ActionListener будет называться несколько раз ...

Лично я бы нашел, что didn ' т включать добавление/удаление слушателей, но я не уверен, что это возможно на данном этапе, вместо этого, вы должны сначала удалить себя как ActionListener, прежде чем добавить себя снова ...

btn[x][y].removeActionListener(this); 
btn[x][y].addActionListener(this); 
+0

Я протестировал ваше исправление, это действительно исправляет эту проблему. –

+0

Спасибо, но я думаю, что это removeActionListener, так или иначе он работает! Спасибо. – ben

+0

Извините, набрав на iPad, похоже, не работает: P – MadProgrammer