2017-11-16 1 views
0
내가 할 노력하고있어와 몇 가지 문제가

에서 잘못된 결과를 확인하지만, 가장 시급한은 이것이다 :숨겨진 임의의 숫자는 자바

나는 숨겨진 임의의 숫자를 설정하는 버튼을 사용자가 그 자리가 무엇인지 알아 내려고 노력해야합니다. 다음과 같이 내 현재 코드는 다음과 같습니다

// 변수

을 설정
int max = 9; 
int min = 0; 
int diff = max-min; 
int getNum1; 
int a; 

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

// XML을 자바를 할당

final TextView urNum1 = findViewById(R.id.txtUrNum1); 
final TextView myNum1 = findViewById(R.id.txtMyNum1); 
ImageButton up1 = findViewById(R.id.btnUp1); 
ImageButton dn1 = findViewById(R.id.btnDn1); 
Button chk = findViewById(R.id.btnCheck); 
ImageButton start = findViewById(R.id.btnStartGuess); 

// 랜더 마이저

을 시작
start.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Random rn = new Random(); 
     urNum1.setText("?"); 
     a = rn.nextInt(diff+1); 
     a += min; 
    } 
}); 

// 일치 항목 확인

chk.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     if (a == 0 && getNum1 == 9) { 
      urNum1.setText("0"); } 
     else if (a == 1 && getNum1 == 0) { 
      urNum1.setText("1"); } 
     else if (a == 2 && getNum1 == 1) { 
      urNum1.setText("2"); } 
     else if (a == 3 && getNum1 == 2) { 
      urNum1.setText("3"); } 
     else if (a == 4 && getNum1 == 3) { 
      urNum1.setText("4"); } 
     else if (a == 5 && getNum1 == 4) { 
      urNum1.setText("5"); } 
     else if (a == 6 && getNum1 == 5) { 
      urNum1.setText("6"); } 
     else if (a == 7 && getNum1 == 6) { 
      urNum1.setText("7"); } 
     else if (a == 8 && getNum1 == 7) { 
      urNum1.setText("8"); } 
     else if (a == 9 && getNum1 == 8) { 
      urNum1.setText("9"); } 

// 짐작 수

up1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       getNum1 = Integer.parseInt(myNum1.getText().toString()); 
       if (getNum1 == 0) { 
        myNum1.setText("1"); } 
       else if (getNum1 == 1) { 
        myNum1.setText("2"); } 
       else if (getNum1 == 2) { 
        myNum1.setText("3"); } 
       else if (getNum1 == 3) { 
        myNum1.setText("4"); } 
       else if (getNum1 == 4) { 
        myNum1.setText("5"); } 
       else if (getNum1 == 5) { 
        myNum1.setText("6"); } 
       else if (getNum1 == 6) { 
        myNum1.setText("7"); } 
       else if (getNum1 == 7) { 
        myNum1.setText("8"); } 
       else if (getNum1 == 8) { 
        myNum1.setText("9"); } 
       else if (getNum1 == 9) { 
        myNum1.setText("0"); } 
       }); 

// 짐작 수

dn1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       getNum1 = Integer.parseInt(myNum1.getText().toString()); 
       if (getNum1 == 0) { 
        myNum1.setText("9"); } 
       else if (getNum1 == 9) { 
        myNum1.setText("8"); } 
       else if (getNum1 == 8) { 
        myNum1.setText("7"); } 
       else if (getNum1 == 7) { 
        myNum1.setText("6"); } 
       else if (getNum1 == 6) { 
        myNum1.setText("5"); } 
       else if (getNum1 == 5) { 
        myNum1.setText("4"); } 
       else if (getNum1 == 4) { 
        myNum1.setText("3"); } 
       else if (getNum1 == 3) { 
        myNum1.setText("2"); } 
       else if (getNum1 == 2) { 
        myNum1.setText("1"); } 
       else if (getNum1 == 1) { 
        myNum1.setText("0"); } 
      } 
     }); 
을 감소시키는을 증가

내가으로 실행하고 문제는 UP1을 누를 때, 숫자가 때 일치하는 경향이 있다는 것입니다 나는 그들을 확인하지만 dn1을 눌러 일치하는 숫자를 얻으면 선택한 숫자는 일치하는 숫자보다 2가 낮습니다. 아마도 코딩이 복잡하기 때문에 ++ 증분을 사용하면 더 잘 만들 수 있지만, 제대로 작동하지는 못합니다.

답변

0

아무도이 문제에 부딪혔다면 나 스스로 해결 방법을 알아 냈습니다. 값을 증가/감소시켜 myNum 값을 변경하는 코드에서는 값을 변경하지 않고 'if'문의 각 조건에 대한 현재 값만 확인합니다. 그래서 몇 번이나 확인해도 항상 하나가됩니다. 내 수정 :

getNum1 = Integer.parseInt(myNum1.getText().toString()); 
    if (getNum1 == 0) { 
     myNum1.setText("9"); 
     getNum1 = 9; } 
    else if (getNum1 == 9) { 
     myNum1.setText("8"); 
     getNum1 = 8; } 
    else if (getNum1 == 8) { 
     myNum1.setText("7"); 
     getNum1 = 7; } 

등등.