2012年2月10日 星期五

[TQC+ Android] 2-1 猜數字遊戲





輸入三個不重複的數字 , 按下"送出猜測數字"的按鈕 , 即可在下方使用Toast來顯示猜測狀況 , 以下是程式碼。


package COM.TQC.GDD02;


import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


public class GDD02 extends Activity
{
    /** Called when the activity is first created. */

    Button submit;
    TextView respond;
    EditText input;
    
    int[] num = new int[3];
    int count , a , b;
    String inputString , randomString , wrongString = "輸入錯誤! 請輸入三個不重複的數字";
 
 @Override
    public void onCreate(Bundle savedInstanceState)
 {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        submit = (Button) this.findViewById(R.id.button1);
        respond = (TextView) this.findViewById(R.id.respond) ;
        input = (EditText) this.findViewById(R.id.input);
        
        do
        {
         randomString = String.valueOf((int)(Math.random()*1000));
        }while(!checkNumber(randomString));
        
        submit.setOnClickListener(BOnClickListener);
        
        Log.d("Test", "randomString:"+randomString);
       
    }
 
 public Button.OnClickListener BOnClickListener = new Button.OnClickListener()
 {
  @Override
  public void onClick(View v)
  {
   // TODO Auto-generated method stub
   
   inputString = input.getText().toString();
   if(inputString.length()==3 && checkNumber(inputString))
   {
    if(matchNumber()) showToast("INPUT的數字:"+inputString+"  恭喜你!答對囉~");
    else
    {
     showToast("INPUT的數字:"+inputString+"="+a+"A"+b+"B");
     a=0;
     b=0;
    }
   }
   else
   {
    showToast(wrongString);
    input.setText("");
   }   
  }
  
 };
 
 public boolean checkNumber(String number)
 {
  boolean pass = true;
  
  for(int i=0;i<2;i++)
        {
         for(int j=i+1;j<3;j++)
         {
          if(number.charAt(i)==number.charAt(j))
          {
           pass = false;
          }
         }
        }
  
  return pass;
 }
 
 public boolean matchNumber()
 {
  // TODO Auto-generated method stub
        boolean pass = true;
  
        for(int i=0;i<3;i++)
        {
         for(int j=0;j<3;j++)
         {
          if(inputString.charAt(i)==randomString.charAt(j))
          {
           if(i==j) a++;
           else b++;
          }
         }
        }
        if(a!=3) pass = false;
  return pass;
 }
 
 public void showToast(String Text)
 {
  Toast t = Toast.makeText(GDD02.this, "", Toast.LENGTH_LONG);
  t.setText(Text);
  t.show();
 } 
}


很簡單的Layout



    
    
        
    
    


P.S. 題目中所要求的Variable和Method皆會保留 , 也會根據題目所要求的流程去實作 , 縱使題目要求繞遠路....



1 則留言:

  1. 請問如果我是要結果不是用toast 而是要用 text view顯示 那要怎麼改呢?? 麻煩你了

    回覆刪除

Google Analytics