Ich habe mit diesem Code vor, aber das ist eine andere Frage.Android-App mit zufälliger Nummer die gleiche
Wenn die Schaltfläche "raten" gedrückt wird, wird eine Zufallszahl generiert. Das einzige Problem mit dem Code besteht darin, dass er jedes Mal eine neue Nummer generiert, unabhängig davon, ob der Benutzer die richtige Nummer errät oder nicht. Idealerweise möchte ich dem Nutzer ein 3-Raten-Limit geben, bei dem die App die generierte Zufallszahl gleich behalten und nach 3 Fehlversuchen zurücksetzen muss. Ich bin zum Stillstand gekommen, da ich seit langem kein Java mehr gemacht habe und es mich etwas verwirrt, was die Integration in diese App betrifft.
Vielen Dank im Voraus
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("");
}
});
}
}
Wählen Sie keinen 'new Random()' innerhalb der Schleife. Es setzt die Sequenz jedes Mal auf denselben Punkt zurück. –