2016年12月29日 星期四

水果盤遊戲

連結
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Threading;

public class buttonMsg
{
    //價值
    private int price;
    //被下注次數
    private int bettingCount;
    //當前下注金額
    private int currentPrice;

    public buttonMsg(int _price)
    {
        price = _price;
        bettingCount = 0;
    }

    //回傳價值
    public int getPrice()
    {
        return price;
    }
    //下注
    public void betting()
    {
        bettingCount++;
    }
    //回傳下注數
    public int getBettingCount()
    {
        return bettingCount;
    }
    //回傳下注金額
    public int getCurrentPrice()
    {
        currentPrice = bettingCount * price;
        return currentPrice;
    }
    //重置
    public void reSet()
    {
        bettingCount = 0;
    }
}

public class button : MonoBehaviour
{

    Text chipsText;
    Text bettingText;
    Text[] bettingCountText = new Text[10];

    int myChips = 100;
    int myBetting = 0;

    int[] imgPrice = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 10, 20, 30, 40, 10, 30, 20, 10, 70, 60, 50, 40, 30, 20 };

    buttonMsg[] myBut = new buttonMsg[10];

    bool roundBool = false;

    float time = 0;
    int round1Num = 0;
    int round2Num = 0;
    int round3Num = 0;
    int randNum;

    // Use this for initialization
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            int butNum = ((i + 1) * 10);

            string path;
            path = string.Format("bettingCount{0}", butNum);

            bettingCountText[i] = GameObject.Find(path).GetComponent<Text>();

            myBut[i] = new buttonMsg(butNum);
        }
        chipsText = GameObject.Find("Canvas/chips").GetComponent<Text>();
        bettingText = GameObject.Find("Canvas/betting").GetComponent<Text>();

        chipsText.text = myChips.ToString();
        bettingText.text = myBetting.ToString();

    }

    // Update is called once per frame
    void Update()
    {
        time += Time.deltaTime;
        if (roundBool == true)
        {
            if (time >= 0.01 && round1Num <= 23)
            {
                round(round1Num);
                time = 0;
                round1Num++;
            }
            if (round1Num == 24 && time >= 0.03 && round2Num <= 23)
            {
                round(round2Num);
                time = 0;
                round2Num++;
            }
            if (round2Num == 24 && time >= 0.05 && round3Num <= randNum)
            {
                round(round3Num);
                time = 0;
                round3Num++;
            }

        }
        if (round3Num == randNum + 1)
            randProfit();

        chipsText.text = myChips.ToString();
        bettingText.text = myBetting.ToString();
        for (int i = 0; i < 10; i++)
        {
            bettingCountText[i].text = myBut[i].getBettingCount().ToString();
        }


    }


    void round(int _imgNum)
    {
        string imgNum;
        Image img;

        imgNum = string.Format("Image{0}", _imgNum);
        img = GameObject.Find(imgNum).GetComponent<Image>();
        img.color = UnityEngine.Color.red;

        if (_imgNum == 23)
        {
            img.color = UnityEngine.Color.white;
        }
        if (_imgNum != 0)
        {
            imgNum = string.Format("Image{0}", (_imgNum - 1));
            img = GameObject.Find(imgNum).GetComponent<Image>();
            img.color = UnityEngine.Color.white;
        }
    }

    void randProfit()
    {


        string imgNums = string.Format("Image{0}", randNum);
        Image img = GameObject.Find(imgNums).GetComponent<Image>();
        img.color = UnityEngine.Color.red;

        for (int i = 0; i < 10; i++)
        {
            if (myBut[i].getPrice() == imgPrice[randNum])
            {
                myChips += (myBut[i].getCurrentPrice() * 2);

            }
        }



        myBetting = 0;
        for (int i = 0; i < 10; i++) myBut[i].reSet();
        roundBool = false;
        round1Num = 0;
        round2Num = 0;
        round3Num = 0;
    }

    public void start()
    {
        time = 0.1f;
        roundBool = true;
        randNum = Random.Range(0, 23);
    }
    public void reset()
    {
        myChips = 100;
        myBetting = 0;
        for (int i = 0; i < 10; i++)
        {
            myBut[i].reSet();
        }
    }

    public void bettingButton(int _butNum)
    {
        int bettingTemp = myChips - myBut[_butNum].getPrice();
        if (bettingTemp >= 0)
        {
            myBetting += myBut[_butNum].getPrice();
            myChips = bettingTemp;
            myBut[_butNum].betting();
        }
    }

}

沒有留言:

張貼留言