XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="請輸入四個不重複數字"
android:textAppearance="?android:attr/textAppearanceLarge" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<EditText
android:id="@+id/inputEt"
android:layout_width="226dp"
android:layout_height="wrap_content"
android:layout_weight="0.93"
android:inputType="number" />
<Button
android:id="@+id/guessBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
<TextView
android:id="@+id/resultTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
JAVA
package com.demo.android.Guess;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class GuessActivity extends Activity {
/** Called when the activity is first created. */
private String result="";
private char[] numAnswer = {};
private char[] numInput = {};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
numAnswer = GenNum().toCharArray();
Button guessBtn = (Button)findViewById(R.id.guessBtn);
guessBtn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
int countA=0;//A的個數
int countB=0;//B的個數
EditText inputEt = (EditText) findViewById(R.id.inputEt);
numInput = inputEt.getText().toString().toCharArray();
//比對數字
for(int i=0; i<4; i++){
for(int j=0;j<4;j++){
if(numInput[i] == numAnswer[j]){
if(i==j)
countA+=1;//數字相同而且位置相同 +1A
else
countB+=1;//數字相同但是位置不同 -1A
}
}
}
result="=>"+countA+"A"+countB+"B";
if( countA == 4){
result += " 答對了!遊戲結束。";
}
//顯示資料
TextView resultTv = (TextView)findViewById(R.id.resultTv);
resultTv.setText(inputEt.getText().toString()+result);
inputEt.setText("");//清除輸入
}
});
}
//亂數產生數字
public String GenNum(){
String number = "0123456789";
String numAnswer = "";
//從0~9抽號碼
//每次亂數抽一個號碼
for(int i=0; i<4; i++){
//因為每次會抽一個號碼,所以數字個數會少一個
//i=1 產生亂數第0~9個號碼 0123456789 假設抽到第3個數字3
//i=2 產生亂數第0~8個號碼 012456789 假設抽到第6個數字7
//i=3 產生亂數第0~7個號碼 01245689 假設抽到第1個數字1
//...
int randNum =(int)(Math.random()*(10-i));
//抽到的號碼
String randStr = number.substring(randNum, randNum+1);
//刪掉抽到的號碼
number = number.replace(randStr, "");
//存抽到的號碼
numAnswer += randStr;
}
//測試用,顯示答案
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(tv.getText().toString()+"( "+ numAnswer + " )");
return numAnswer;
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
老師 我把程式放到手機上RUN 可是在螢幕翻轉的時候 會不定時的發生"未正常終止"
回覆刪除把專案寄給我
回覆刪除