2017-11-16 4 views
0

に間違った結果を確認しますその数字が何であるか把握しようとしなければならない。次のように私の現在のコードは次のとおりです。隠された乱数は、私が何をしようとしているといくつかの問題がありますが、最も差し迫ったが、このされているJava

//変数

を設定
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へのJavaを割り当てる

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; } 

などがあります。

関連する問題

 関連する問題