2017-12-03 14 views
-1

enter image description here数字ボタンが4x4の場所にある単純なパズルゲームを作成します。ボタンを押すと、対角線ボタンのテキストでテキストが変更されます。私は数字をシャッフルした。私はボタンのテキストをシフトすることに問題があります。 これは4x4パズルゲームのコードです。クリックしたときにボタンのテキストを別のボタンのテキストにシフトする方法

ここに私のコード

private LinearLayout buttonsContainer; 
private Button[][] buttons = new Button[4][4]; 
private Button restartButton; 
private List<Integer> numberList = new ArrayList<>(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    buttonsContainer = findViewById(R.id.buttonsContainer); 
    restartButton = findViewById(R.id.restartButton); 
    restartButton.setOnClickListener(this); 

    for (int i = 0; i < 4; i++) { 
     LinearLayout rows = (LinearLayout) buttonsContainer.getChildAt(i); 
     for (int j = 0; j < 4; j++) { 
      buttons[i][j] = (Button) rows.getChildAt(j); 
     } 
    } 

    for (int i = 1; i <= 15; i++) { 
     numberList.add(i); 
    } 
    restartGame(); 
} 


@Override 
public void onClick(View view) { 
    switch (view.getId()) { 
     case R.id.restartButton: { 
      restartGame(); 
      break; 
     } 
     case R.id.buttonsContainer:{ 

      break; 
     } 
    } 
} 

private void restartGame() { 
    Collections.shuffle(numberList); 
    for (int i = 0; i < 4; i++) { 
     for (int j = 0; j < 4; j++) { 
      if(i==3 && j==3)continue; 
      buttons[i][j].setText(String.valueOf(numberList.get(4*i+j))); 
     } 
    } 
} 
+0

コードを最初に表示 – kimkevin

+0

私のコードを追加しました – Yunus

答えて

1

ちょうど行います

String s = button1.getText(); 
button1.setText(button3.getText()); 
button3.setText(s); 

ボタンがクリックされたとき。

関連する問題