2017-02-11 7 views
0

私はこのコードで前に投稿しましたが、これは別の質問です。乱数を保持するAndroidアプリ

「推測」ボタンを押すと、乱数が生成されます。コードの唯一の問題は、ユーザーが正しい番号を推測するかどうかにかかわらず、毎回新しい番号を生成することです。理想的には、3つの推測の限界をユーザーに与えて、アプリが乱数を生成したままにしておき、3回の不正確な試行の後にリセットする必要があります。私は長い間、Javaをやっていないので、私は停止に来て、それは私にこのアプリにそれを組み込むという点で少し難解です。毎回のguessmeボタンを押すことになるので、事前

package lab.mad.cct.c3375331task1; 

import android.content.DialogInterface; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.support.v7.app.AlertDialog; 
import  android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

import java.util.Random; 

public class Task1Activity extends  AppCompatActivity { 

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

     final TextView textResponse = (TextView)    findViewById(R.id.txtResponse); 
     final TextView guessText = (TextView) findViewById(R.id.txtAnswer); 
     final EditText userGuess = (EditText) findViewById(R.id.etNumber); 

     Button pressMe = (Button) findViewById(R.id.btnGuess); 



    // When the button is clicked, it shows the text assigned to the txtResponse TextView box 
     pressMe.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String randText = ""; 
       Random randGen = new Random(); 
       int ranNum = randGen.nextInt(5); 
       int userNumber =  Integer.parseInt(userGuess.getText().to String()); 
       int attempts = 0; 


       if (userNumber >19) { 
       guessText.setText("Please guess between 0 and 20"); 
       } else if (userNumber == ranNum) { 
        guessText.setText("You got it!"); 
       } else if (userNumber < ranNum) { 
        guessText.setText("Your answer is too low. Guess  again!"); 
        guessText.setBackgroundColor(Color.RED); 
       } else if (userNumber > ranNum) { 
        guessText.setText("Your answer is too high. Guess again!"); 
       } 

       randText = Integer.toString(ranNum); 
       textResponse.setText(""); 

       userGuess.setText(""); 

      } 
     }); 

    } 



} 
+0

を使用する必要があります ''新しいランダム()を選択しないでくださいループ内。これは、毎回シーケンスを同じポイントにリセットします。 –

答えて

0

おかげで、それは新しい番号を生成します、onClick(View v)からint userNumber = Integer.parseInt(userGuess.getText().to String());を削除します。

+0

文字通りそれを削除すると、同じ番号を保持しますか? –

+0

この行を削除すると、if-else文が無効になります。 –

0

は、あなたのクラスのonClick内部

public static final int ATTEMPTS = 3; 
public int attempt = 0; 
public int currentRandomNumber = new Random().nextInt(5); 

()でいくつかの変数を宣言します。

if(attempt >= ATTEMPTS){ 
    attempt = 0; 
    currentRandomNumber = new Random().nextInt(5); 
} else { 
    attempt++; 
} 

// the rest of your code.. 

また、あなたがrand..nextInt(5)を使用しているが、あなたのコードのルックスであなたが..nextInt(20)

+0

ああ、テスト目的で5に変更しました。私はそれがうまくいけばそれは20になります。残りのコードをありがとう。私はそれに渦を吹き込み、あなたに知らせるでしょう –

関連する問題