2014-10-03 96 views
-1

我該如何檢查平局?我已經設法檢查左右對角線以及水平和垂直對角線。但我需要一個想法如何檢查平局。我知道我需要檢查所有按鈕(在我的情況下按鈕[6] [7])。java中的Connect4遊戲eclipse

//Checking the Diagonal_right win 

for (int i = 0; i < 6 ; i ++){ 
    for (int j = 0; j < 7; j ++){ 
     if ((i+1)==6 || (i+2)==6 || (i+3)==6){ 
      break; 
     } 

     if(imageName[i][j] == singleimageName && 
       imageName[i+1][j-1] == singleimageName && 
       imageName[i+2][j-2] == singleimageName && 
       imageName[i+3][j-3] == singleimageName){ 
      JOptionPane.showMessageDialog(null,"" 
        + "You Have Won! \n" 
        + "Player Using " + singleimageName + 
        " Connected 4"); 
      clearGrid(); 

     } 
    } 
} 

//Checking the Horizontal win 

for (int i = 0; i < 6; i ++){ 
    for (int j = 0; j < 7; j ++){ 
     if ((i+1)==6 || (i+2)==6 || (i+3)==6){ 
      break; 
     } 

     if(imageName[i][j] == singleimageName && 
       imageName[i][j+1] == singleimageName && 
       imageName[i][j+2] == singleimageName && 
       imageName[i][j+3] == singleimageName) { 
      JOptionPane.showMessageDialog(null,"" 
        + "You Have Won! \n" 
        + "Player Using " + singleimageName + 
        " Connected 4"); 
      clearGrid(); 

     } 
    } 
} 

//Checking the Vertical win 

for (int i = 0; i < 6; i ++){ 
    for (int j = 0; j < 7; j ++){ 
     if ((i+1)==6 || (i+2)==6 || (i+3)==6){ 
      break; 
     } 

     if(imageName[i][j] == singleimageName && 
       imageName[i+1][j] == singleimageName && 
       imageName[i+2][j] == singleimageName && 
       imageName[i+3][j] == singleimageName) { 
      JOptionPane.showMessageDialog(null,"" 
        + "You Have Won! \n" 
        + "Player Using " + singleimageName + 
        " Connected 4"); 
      clearGrid(); 

     } 
    } 
} 
+0

如果數組已滿,沒有人有一個那麼它是一個平局吧? – brso05 2014-10-03 20:08:33

回答

0
// Check for a draw 
boolean draw = true; 
for (int i = 0; i < 6; i ++) { 
    for (int j = 0; j < 7; j ++) { 
     if (imageName[i][j].getIcon() == null) { 
      draw = false; 
     } 

if (draw) { 
    JOptionPane.showMessageDialog(null, "It's a draw!"); 
    clearGrid(); 
} 
+0

最初我將按鈕值設置爲圖片的圖標(PNG)...所以我想知道是否有條件可以檢查所有的按鈕是否被填滿? – 2014-10-03 20:55:22

+0

當然。您只需遍歷數組中的所有'JButtons',並單獨檢查每個'JButton'是否附有Icon。我已經更新了我的答案。 – Leistungsabfall 2014-10-03 21:02:15

+0

讓我檢查一下......再次感謝 – 2014-10-03 21:27:00