using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class APPT06 : MonoBehaviour { public Text[] txtR,txtX,txtY; public Text txtL1; int[] CNum = new int[4]; int[] XNum = new int[4]; int[] YNum = new int[4]; float fStartTime=0.0f; int iCount; int iDuration=10; // Use this for initialization void Start () { int i; fStartTime = Time.time; genRnd (0, 9, 4); for (i = 0; i < 4; i++) { XNum [i] = CNum [i]; txtX [i].text = XNum [i].ToString(); } genRnd (0, 9, 4); for (i = 0; i < 4; i++) { YNum [i] = CNum [i]; txtY [i].text = YNum [i].ToString(); } iCount = 1; Compare1A2B (); } // Update is called once per frame void Update () { //int iNum; int i, j; float fRemain = iDuration - (Time.time - fStartTime); txtL1.text = string.Format ("{0:F0}", fRemain) + "秒後重新產生兩組數字進行比對"; if ((Time.time - fStartTime) >= iDuration) { //iNum = Random.Range (0, 10); //txtNum.text = iNum.ToString(); genRnd (0, 9, 4); for (i = 0; i < 4; i++) { XNum [i] = CNum [i]; txtX [i].text = XNum [i].ToString(); } genRnd (0, 9, 4); for (i = 0; i < 4; i++) { YNum [i] = CNum [i]; txtY [i].text = YNum [i].ToString(); } iCount++; Compare1A2B (); fStartTime = Time.time; } } //產生不重複隨機亂數 void genRnd(int min, int max, int takeOut) { int total = max - min + 1; int remain = total; int[] t = new int[total]; int i = 0; int j = 0; for (i = 0; i < total; i++) { t[i] = min + i; } for (i = 0; i < takeOut; i++) { int temp = (int)Random.Range(0, remain); Debug.Log(temp.ToString() + " " + t[temp].ToString()); //int temp = Mathf.Floor(Random.Range(0,1)*remain) + 1; CNum[i] = t[temp]; //this["data" + i] = this["t" + temp]; for (j = temp; j < (remain - 1); j++) { t[j] = t[j + 1]; } remain--; } } void Compare1A2B() { int i, j,A,B; A = 0; B = 0; for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) { //txtR [3].text = txtX [i].text + "/" + txtY [j].text; if (XNum [i] == YNum [j]) { if (i == j) { A++; } else { B++; } } } txtR[0].text = A.ToString (); txtR[2].text = B.ToString (); } }