2017-06-21 25 views
1

我使用ImageIcons(sun.png,devil.png)對Java中的Tic Tac Toe進行了編程。帶有ImageIcons的Java Tic Tac Toe - 改進建議

一切運作良好,但問題是如果有更好的方法來篩選出它是誰。在我使用變量String播放器和字母OX的那一刻。

但我要問自己,如果有一種方法來問類似if (count %2 == 0) {player = sun},因爲我想從X的和O「,因爲ImageIcon S的小號脫身(用戶不知道他是XO )。我希望你明白我的意思,這不是太混亂。非常感謝您的努力和答案!我很感激任何建議。

回答

0

你可以做的是將你的player變量設置爲boolean。在這種情況下,我會實例化這個類似的東西:

private boolean is_player_one = true; 

要檢查該輪到誰了,你可以使用一個簡單的if/else

if (is_player_one) { 
    // Player one's turn 
} else { 
    // Player two's turn 
} 

然後,在任一玩家的回合結束,您只需反轉布爾切換球員:

is_player_one = !is_player_one; 

編輯:

Ø只需要一個布爾變量。我會將該變量重命名爲is_player_sun以使您的情況更清楚。如果is_player_sun的值是true,那麼這是玩家太陽輪。如果is_player_sun的值爲false,那麼它就是玩家魔鬼。因此,最終if/else情況下,包括轉彎的更新,應該類似於:

if (is_player_sun) { 
    // Player sun's turn 
} else { 
    // Player devil's turn 
} 
is_player_sun = !is_player_sun; 

注意,你並不需要一個變量is_player_devil因爲球員魔鬼的又是當is_player_sunfalse

+0

我想我做錯了.. –

0

難道我理解你的權利。首先我初始化is_player_devil,is_player_sun並在一開始是假的或者是不是?:

private boolean is_player_devil = false; 
     private boolean is_player_sun = false; 

而且在誰的回合部分是我可以簡單地輸入is_player_sun = true;

public void actionPerformed(ActionEvent a) { 
     count++; 

     // Who's turn is it 
     if (count % 2 == 0) { 
      //player = "O"; 
      is_player_sun = true; 

     } else { 
      //player = "X"; 
      is_player_devil = true; 
     } 
0

有一個ImageIcon代表當前玩家。在你的PlayField職業:

private ImageIcon currentPlayer; 

... 

public Playfield() { 
    currentPlayer = devil; 

... 

public void actionPerformed(ActionEvent a) { 
    JButton pressedButton = (JButton) a.getSource(); 
    pressedButton.setIcon(currentPlayer); 
    pressedButton.setDisabledIcon(currentPlayer); 
    pressedButton.setEnabled(false); 

    currentPlayer = currentPlayer.equals(devil) ? sun : devil;