2012-03-06 4 views
0

ご協力いただければ幸いです。私は簡単な数学ゲームを実装しようとしています。私は無作為の質問を生成し、回答を検証することができましたが、ゲームを10の質問に限定し、最後の質問の後にユーザーのスコアを表示したいと思います。私は初心者のプログラマーであり、私が理解しているところから、何らかの形のループが必要です。任意のコード例や一般的なヘルプ/アドバイスは素晴らしく、ありがとうございます。アンドロイドのループ

@Override 
public void onClick(View v){ 
switch(v.getId()){ 
case R.id.keypad_hash: 

    checkAnswer(); 
    getQuestion(); 


    break; 

case R.id.keypad_1: 

    editText.append(String.valueOf(v.getTag())); 

    break; 


case R.id.keypad_2: 

    editText.append(String.valueOf(v.getTag())); 

    break; 



case R.id.keypad_3: 

    editText.append(String.valueOf(v.getTag())); 

    break; 

case R.id.keypad_4: 

editText.append(String.valueOf(v.getTag())); 

break; 

case R.id.keypad_5: 

editText.append(String.valueOf(v.getTag())); 

break; 

case R.id.keypad_6: 

editText.append(String.valueOf(v.getTag())); 

break; 

case R.id.keypad_7: 

editText.append(String.valueOf(v.getTag())); 

break; 

case R.id.keypad_8: 

editText.append(String.valueOf(v.getTag())); 

break; 

case R.id.keypad_9: 

editText.append(String.valueOf(v.getTag())); 

break; 
case R.id.keypad_0: 

editText.append(String.valueOf(v.getTag())); 

break; 
case R.id.keypad_delete: 

    if (editText.getText().length() > 0) { 
     editText.getText().delete(editText.getText().length() - 1, 
       editText.getText().length()); 
    } 

break; 

case R.id.keypad_minus: 

editText.append(String.valueOf(v.getTag())); 


break; 

    } 
} 

public void getQuestion(){ 

    random1 = (int)(Math.random()*100); 
    random2 = (int)(Math.random()*10); 

    int i1 = Min + (int)(Math.random() * ((Max - Min) + 1)); 
    for (int i = 0; i < 10; i++) { 
    if(i1 == 1){ 
    question = (random1 + "+" + random2); 
    correctAnswer = random1 + random2; 
    editTextEquation.setText(question); 
    } 
    if(i1 == 2){ 
    question = (random1 + "-" +random2); 
    correctAnswer = random1 - random2; 
    editTextEquation.setText(question); 

    } 
    if(i1 == 3){ 
    question = random1 + "/" +random2; 
    correctAnswer = random1/random2; 
    editTextEquation.setText(question); 

    } 
    if(i1 == 4){ 
    question = (random1 + "*" +random2); 
    correctAnswer = random1 * random2; 
    editTextEquation.setText(question); 


    } 
    } 

    } 




    public void checkAnswer(){ 
     int mm = 0; 
     //answer = editText.getText().toString(); 
     mm = Integer.parseInt(editText.getText().toString()); 

     if (mm == correctAnswer){ 

      score++; 
     scoredisplay.setText("" + score); 


    } 
     else { 

     score--; 
     scoredisplay.setText("" + score); 
    } 




} 


} 
+2

私はあなたが必要と思うのはJavaチュートリアルです。 –

+0

投票の締め切り本当のことではない質問は広すぎます。 – markus

答えて

1

を開始する前に、あなたがループにあなたがそれを建てた方法を必要としないかもしれませんため、Java basicsを学ぶことは良いでしょう。

this.counter = 10; 

... 

case R.id.keypad_hash: 
    checkAnswer(); 
    this.counter--; 
    if(this.counter > 0){ 
    getQuestion(); 
    } else { 
    scoreText.setText(score); 
    } 
    break; 
+0

これはAndroid用のループではなく、より良いアプローチです。したがって、私の答えはより一般的でした。 –

+0

邪悪な男、それに感謝します。 – Abs90

+0

ちょうど、それ以上のクリックはなく、 'counter <= 0' – mindandmedia

1

表示された質問の数を維持するには、プログラムのカウンタを使用します。例:

int counter = 0; 

while (counter < 10){ 

//Show and validate your questions here 
counter++; 
} 

//Print out the score 

あなたはこれらに加えて、いくつかの簡単な例here

を見つけることができ、あなたのAndroidの開発に

+0

アドバイスありがとうございました – Abs90

関連する問題