このゲームでは、生成された乱数(「LoadG1」という変数)に等しい整数を入力するたびにユーザーがポイントを獲得します。入力== loadG1の場合、 'score'変数にポイントが追加されます。アイデアは、正しく答えるたびに1ポイントずつ増やす必要がありますが、何らかの理由で1ポイント以上のスコアをつけることはできません。 1つの質問が正しい場合、最後に表示されるポイントを取得します。それ以上の正解は無視されます。カウントダウンタイマーでスコアが更新されない
は、ここでは、コードは次のとおり
final int[] score = {0};
final Random generateG1 = new Random();
final int loadG1 = generateG1.nextInt(1000000)+10000;
final TextView number = (TextView) findViewById(R.id.number);
number.setText(" "+loadG1);
final CountDownTimer loop = new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
number.setVisibility(View.GONE);
final TextView prompt = (TextView) findViewById(R.id.prompt);
prompt.setVisibility(View.VISIBLE);
prompt.setText(" Enter the number");
final EditText input = (EditText) findViewById(R.id.enterAnswer);
input.setVisibility(View.VISIBLE);
input.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
Editable answer = input.getText();
int finalAnswer = Integer.parseInt(String.valueOf(answer));
int finalLoadG1 = Integer.parseInt(String.valueOf(loadG1));
input.setVisibility(View.GONE);
prompt.setVisibility(View.GONE);
if (finalAnswer == finalLoadG1) {
score[0]++;
}
number.setVisibility(View.VISIBLE);
final int loadG1 = generateG1.nextInt(1000000) + 10000;
number.setText(" " + loadG1);
input.getText().clear();
start();
return true;
default:
}
}
return false;
}
});
}
}.start();
new CountDownTimer(24000, 1000) {
@Override
public void onTick (long millisUntilFinished) {
}
@Override
public void onFinish() {
TextView result = (TextView) findViewById(R.id.outcome);
result.setText("Score: "+ score[0]);
TextView prompt = (TextView) findViewById(R.id.prompt);
prompt.setVisibility(View.GONE);
final EditText input = (EditText) findViewById(R.id.enterAnswer);
input.setVisibility(View.GONE);
loop.cancel();
}
}.start();
スコア変数がいずれかのタイマーが、その後ポイントが短い4秒タイマで添加される前に宣言され、そしてより長いタイマーの終了時に印刷されています。すべてが上のコードに示されています。
誰かが正解を入力するたびにスコアカウンタが更新されるように助けてくださったことを感謝します。ありがとうございます。
yor変数がすべて「最終」であるのはなぜですか? – Kacper
@ Kacper IDEはプログラムを正常にコンパイルするためには多くのことが必要です。 – User44
[このカウントダウンタイマーを特定の方法で繰り返すにはどうすればよいですか?](http://stackoverflow.com/questions/40057754/how-can-i-repeat-this-countdown-timer-in-特定の方法) – Selvin