2017-02-10 71 views
-2

我需要一些java編碼爲我的android猜謎遊戲應用程序的幫助。Android應用程序如果其他語句

目前,我的if else語句涵蓋猜測是否過高,過低或正確。我想要做的是告訴用戶他們給出的答案是接近答案還是遠離答案。比如,在50%以內或50%以內。我可以做,如果其他地方它使用數字,但當我試圖找出如何使它得出基於程序生成的隨機數的百分比時,我很難過。如果這是一個靜態數字,我會很好,但我不能這樣工作。

任何幫助極大的讚賞。

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().toString()); 
       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

你如何定義,「在50百分?」如果這個數字是0,他們猜測1,這是在50%以內? –

+0

就像旁邊一樣,您的用戶可能會對此應用感到非常沮喪,因爲每次按下按鈕時都會創建一個新的隨機數。除非你打算把它當成遊戲:-) –

+0

這是另一個問題。我希望它堅持生成的號碼,只給用戶3次嘗試。但就像我說的,一次一個一個地給我。 –

回答

0

可以計算這樣兩個數字(隨機數和猜測的數)之間的百分比差異:

public float percentDiff(int randomNumber, int guessedNumber) { 

    int diff = Math.abs(randomNumber - guessedNumber); 

    float diffPercentage = (float) diff/(float) randomNumber; 

    System.out.println("" + diffPercentage); 

    return diffPercentage; 

} 

>0.5將超過50%關閉,反之亦然。

+0

在0的情況下失敗,據說根據錯誤消息是有效的。你如何實際定義「50%以內?」 –

+0

@ChristopherSchneider一個數字是另一個數字的50%的概念'是非常明確的。當然,除了0。 – FWeigl

+0

當然可以。但那不是要求。要求是「50%以內」而不是「50%」。也許提問者意味着後者,但你不能這樣認爲。這可能看起來像我在扼殺詞語,但是在問題和示例程序的背景下('「請猜測0到20之間」),這是一個合理的問題。 –

0

如果你想計算(飛)提供什麼,用戶數量是個對隨機生成的數字明智的,那麼你可以用一個簡單的公式,如:

int percentOf = ((userNumber * 100)/ranNum);