почему мой код не находит, являются ли выбранные мной изображения одинаковыми или нет? - PullRequest
0 голосов
/ 17 января 2019

Я хочу выбрать три изображения одновременно, если они одинаковые, оставьте их открытыми и если они не одинаковы, чтобы закрыть обратно. Мой код позволяет мне открыть три карты, а затем закрывает вторую и третью карты, кроме первой. Поэтому проблема в том, что он не проверяет, являются ли они одинаковыми или разными, и не закрывает первую выбранную карту, как остальные.

Это мой код, где я проверяю, одинаковы ли три изображения, которые я открываю в то время. Но это не работает. (Извините, но я не говорю на хорошем английском ...)

  private class ImageButtonListener implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
         if(t.isRunning())
            return;
        openImages++;
        System.out.println(openImages);
        for(int i=0; i<numbuttons;i++){
            if(e.getSource()==buttons[i]){
                buttons[i].setIcon(icons[i]);
                first=i;
            }
        }
        if(openImages % 3 == 0){
            if((first != second || first != third) || second!=third){
            } else {
                numClicks--;
                return;
             }
            if((!icons[first].equals(icons[second]) && !icons[first].equals(icons[third])) && !icons[third].equals( icons[second])){
                t.start();
            }else{
                score++;
                if(score==12){
                         setVisible(false);
                }
            }
        }else{
            second=first;
        }
    }         

1 Ответ

0 голосов
/ 17 января 2019

это состояние

(!icons[first].equals(icons[second]) && !icons[first].equals(icons[third])) && !icons[third].equals( icons[second])

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

Попробуйте следующее, чтобы заменить ваше состояние:

(!icons[first].equals(icons[second]) || !icons[first].equals(icons[third])) || !icons[third].equals(icons[second])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...