2017-11-10 84 views
-1

我的代碼與if語句一起工作,直到做出10個動作爲止,然後檢查獲勝者是否在getWinner()中,但是這是一個問題,進行了10次移動。在遊戲結束前檢查「獲勝者」

我最初只是getWinner();沒有if語句的方法假設這會在每次單擊按鈕時檢查贏家。這並沒有給我任何錯誤,但它只是無法正常工作。

我還能試試嗎?爲什麼只添加getWinner();沒有if語句不起作用?

public class MainActivity extends AppCompatActivity { 

public int counter = 1; 

private Button button1; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    button1 = (Button) findViewById(R.id.button1); 

//對於所有按鈕都重複這個操作,爲了縮短文章的原因,我將其全部留出。

button1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       if (button1.getText().toString().equals("")) { 

        if (counter % 2 == 0) { 
         button1.setText("O"); 
        } else { 
         button1.setText("X"); 
        } 
        counter++; 
       } 
       if (counter == 10) { 
        getWinner(); 
       } 
      } 
     }); 

//add the other buttons here... 

public void getWinner() { 
String b1, b2, b3, b4, b5, b6, b7, b8, b9; 

b1 = button1.getText().toString(); 
// code here 
    } 
+0

我已經低估了這個問題,因爲這裏的代碼太多了。爲了清楚地說明問題的具體位置,請刪除不直接導致問題的任何代碼,如果可以將其減少到十行或更少,我會考慮收回downvote。請參閱:[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) –

+0

我沒有收到錯誤,因此我不知道它在哪裏。不確定其邏輯或將方法放在錯誤的地方。現在我已經混淆了一段代碼。我分手了,但由於這不夠好,你繼續前進,並保持你的失望。 – Chris

+0

瞭解如何使用調試器。除去if語句,在分配字符串後在getWinner()函數中放置一個斷點,然後檢查每個變量的內容。 – rguessford

回答

0

看起來像任何按鈕除了Button1的事項:

b1 = button1.getText().toString(); 
b2 = button1.getText().toString(); 
b3 = button1.getText().toString(); 
b4 = button1.getText().toString(); 
b5 = button1.getText().toString(); 
b6 = button1.getText().toString(); 
b7 = button1.getText().toString(); 
b8 = button1.getText().toString(); 
b9 = button1.getText().toString(); 
+0

大聲笑....謝謝。跳過了無數次。謝謝你複製和粘貼 – Chris

0

基於您的評論:「我本來只是GetWinner();方法沒有if語句假定這將檢查每次點擊一個按鈕時都是贏家,這並沒有給我帶來任何錯誤,但它卻無法正常工作。「

假設代碼未按照您預期的方式執行上述操作。每次單擊按鈕時,我都會建議對GetWinner()進行回調。

+0

我刪除了更多的代碼來縮短帖子,但另一個用戶事先發現了它,當複製和粘貼製作按鈕時,我發生了意外錯誤。 – Chris

0

如果您點擊第一個按鈕,所有字符串從第一個按鈕獲取它們的值,它是否工作?

+0

如果沒有if語句,程序按預期運行,這很奇怪,沒有if語句,只有當第一個按鈕被點擊時它才起作用。我在發表道歉信時缺乏細節。 – Chris