0

나는 지뢰 찾기 게임을 만들고 있는데 번들의 값을 업데이트하는 데 문제가 있습니다. 처음에는 난이도의 값을 0으로 설정하고 난이도의 값을 사용하여 게임의 다른 값을 선택하여 묶음에 배치합니다.번들의 인수를 업데이트하는 방법

difficulty 0 
rows 9 
columns 9 
mines 10 

은 그럼 증가에게 어려움을 결정, 게임 그러나 값이 업데이트되지 않습니다 : 내가 선택할 때

difficulty 1 
rows 9 
columns 9 
mines 10 

이유는 번들 값은 변경되지 않습니다이는 모습입니다 새로운 어려움? 소스 코드는 아래에 게시됩니다.

MainActivity.java :

public class MainActivity extends Activity { 

    private int difficulty; 
    //... 

    private void startGame(){ 
     Bundle b = new Bundle(3); 
     Log.d("difficulty",""+difficulty); 
     switch(difficulty){ 
      case 1:{ 
       b.putInt("rows",16); 
       b.putInt("columns",16); 
       b.putInt("mines",40); 
      } 
      case 2:{ 
       b.putInt("rows",30); 
       b.putInt("columns",16); 
       b.putInt("mines",99); 
      } 
      default:{ 
       b.putInt("rows",9); 
       b.putInt("columns",9); 
       b.putInt("mines",10); 
      } 
     } 

     gridFragment = new GridFragment(); 

     gridFragment.setArguments(b); 
     getFragmentManager().beginTransaction().add(R.id.fragment_container, gridFragment,"gridFragment").commit(); 

    } 
    //... 
} 

GridFragment.java :

public class GridFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_grid, container, false); 
     Log.d("rows",getArguments().getInt("rows")); 
     Log.d("columns",getArguments().getInt("columns")); 
     Log.d("mines",getArguments().getInt("mines")); 
     return view; 
    } 
    //... 
} 

답변

2

당신이 각각의 경우 후 break을 넣어해야합니다. 그렇지 않으면 다음 케이스로 넘어갑니다. 귀하의 경우 모든 경우가 기본으로 종료됩니다.

switch (difficulty) { 
    case 1: 
    ... 
    break; 
    case 2: 
    ... 
    break; 
} 
+0

나는 이런 멍청한 실수를 저질렀다는 것을 믿을 수 없다. -_- 고맙습니다. – user2361174

+0

잘 모두가 실수하지 않습니다. 걱정하지 마세요. 당신은 결코 똑같은 실수를하지 않을 것입니다. –