示例#1
0
 private static int[] nhactuquy(int indexFocus, int[] cardHand, int[] cardFire)
 {
     int[] indexCardNhac = null;
     if (cardHand == null || cardHand.Length < 4)
     {
         return(null);
     }
     int[] tyquy  = null;
     int[] cardUp = null;
     for (int i = 0; i < cardHand.Length; i++)
     {
         if (getValue(cardHand[i]) == getValue(cardHand[indexFocus]))
         {
             tyquy  = RTL.insertArray(tyquy, i);
             cardUp = RTL.insertArray(cardUp, cardHand[i]);
         }
         if (tyquy != null && tyquy.Length == 4)
         {
             break;
         }
     }
     if (tyquy != null && tyquy.Length == 4 && compareCard(cardUp, cardFire))
     {
         indexCardNhac = tyquy;
     }
     return(indexCardNhac);
 }
    public void UnMarkFirstLetter()
    {
        string richTextForUI = "";
        string letter;

        if (GameplayController.Instance.CurrentLevel.monsterInputType == MonsterInputType.Word)
        {
            for (int i = GameplayController.Instance.CurrentSegment.MonsterRequiredLetters.Length - 1; i >= 0; i--)
            {
                //letter = ArabicSupport.ArabicFixer.Fix (GameplayController.Instance.CurrentSegment.MonsterRequiredLetters [i], true, true);
                letter = RTL.Fix(GameplayController.Instance.CurrentSegment.MonsterRequiredLetters [i]);
                if (i <= lastIndex)
                {
                    richTextForUI += StringWithColorTags(StringWithBoldTags(StringWithSizeTags(letter, mDefaultSize)), mController.FontColorWordDefault);
                }
                else
                {
                    richTextForUI += StringWithColorTags(StringWithBoldTags(StringWithSizeTags(letter, mDefaultSize)), mController.FontColorWordBold);
                }
            }
            if (mTarget != null)
            {
                mTarget.text = richTextForUI;
            }
            lastIndex++;
        }
    }
示例#3
0
 public static string GetText(string input, bool convertNumbers = true, bool isLtrText = false, int wordWrapBias = 0, bool keepLtrClean = false)
 {
     if (input != null)
     {
         if (wordWrapBias > 0)
         {
             input = RTL.a(input, wordWrapBias);
         }
         string[] array = input.Split(new char[]
         {
             '\n'
         });
         StringBuilder stringBuilder = new StringBuilder();
         for (int i = 0; i < array.Length; i++)
         {
             stringBuilder.Append(RTL.a(array[i], convertNumbers, isLtrText, keepLtrClean));
             if (i != array.Length - 1)
             {
                 stringBuilder.Append('\n');
             }
         }
         return(stringBuilder.ToString());
     }
     return("");
 }
示例#4
0
    private static int[] nhac4doithong(int indexFocus, int[] cardHand, int[] cardFire)
    {
        int[] indexCardNhac = null;
        if (cardHand == null || cardHand.Length < 8)
        {
            return(null);
        }
        int[] pearList = null;
        int[] cardUp   = null;
        int   temp     = getValue(cardHand[indexFocus]);

        for (int i = indexFocus; i < cardHand.Length - 1; i += 2)
        {
            if ((getValue(cardHand[i]) == 1 ? 14 : getValue(cardHand[i])) == temp &&
                (getValue(cardHand[i + 1]) == 1 ? 14 : getValue(cardHand[i + 1])) == temp)
            {
                pearList = RTL.insertArray(pearList, i);
                pearList = RTL.insertArray(pearList, i + 1);
                cardUp   = RTL.insertArray(cardUp, cardHand[i]);
                cardUp   = RTL.insertArray(cardUp, cardHand[i + 1]);
                temp    += 1;
            }
        }
        if (pearList != null && pearList.Length == 8 && compareCard(cardUp, cardFire))
        {
            indexCardNhac = pearList;
        }
        return(indexCardNhac);
    }
示例#5
0
 private static int[] nhacsam(int indexFocus, int[] cardHand, int[] cardFire)
 {
     int[] indexCardNhac = null;
     if (cardHand == null || cardHand.Length < 3)
     {
         return(null);
     }
     int[] sam    = null;
     int[] cardUp = null;
     for (int i = 0; i < cardHand.Length; i++)
     {
         if (getValue(cardHand[i]) == getValue(cardHand[indexFocus]))
         {
             sam    = RTL.insertArray(sam, i);
             cardUp = RTL.insertArray(cardUp, cardHand[i]);
         }
         if (sam != null && sam.Length == 3)
         {
             break;
         }
     }
     if (sam != null && sam.Length == 3 && compareCard(cardUp, cardFire))
     {
         indexCardNhac = sam;
     }
     return(indexCardNhac);
 }
示例#6
0
    private static void a(RTL.PartMode A_0, string A_1, ref List <string> A_2)
    {
        if (A_1 == "")
        {
            return;
        }
        switch (A_0)
        {
        case RTL.PartMode.Arabic:
            A_2.Add(A_1);
            return;

        case RTL.PartMode.English:
            A_1 = RTL.a(A_1);
            A_2.Add(A_1);
            return;

        case RTL.PartMode.LatinNumbers:
            A_1 = RTL.a(A_1);
            A_2.Add(A_1);
            return;

        case RTL.PartMode.ArabicNumbers:
            A_1 = RTL.a(A_1);
            A_2.Add(A_1);
            return;

        case RTL.PartMode.Punctuation:
            A_2.Add(A_1);
            return;

        default:
            return;
        }
    }
示例#7
0
文件: PHOM.cs 项目: ping203/WebGame
    private void nguoiDungHaPhom(int[] arr)
    {
        int size = ((PhomPlayer)players[0]).getEatCard().Length;

        int[] eatArr = size > 0 ? new int[((PhomPlayer)players[0])
                                          .getEatCard().Length] : null;
        for (int i = 0; i < size; i++)
        {
            eatArr[i] = ((PhomPlayer)players[0]).getEatCard()[i];
        }
        int[][] phom = RTL.checkPhom(arr, eatArr);
        if (phom == null)
        {
            SendData.onHaPhom(null);
        }
        else
        {
            SendData.onHaPhom(phom);
            btn_ha_phom.gameObject.SetActive(false);
        }
        eatArr = null;

        //for(int i = 0; i < players[0].cardHand.getSize(); i++) {
        //players[0].cardHand.getCardbyPos (i).setMo (false);
        //}
        //players[0].cardHand.setAllMo (false);
    }
示例#8
0
    public virtual void addToCard(ArrayCard arrC, int idCard, bool isDearling, bool isTouch, bool isSort, bool isEatCard)
    {
        arrC.addCard(idCard);
        if (isSort)
        {
            int[] temp = RTL.sort(cardHand.getArrCardAll());
            if (pos == 0)
            {
                cardHand.setArrCard(temp, false);
            }
        }
        Card card = arrC.getCardbyID(idCard);

        if (card == null)
        {
            card = arrC.getCardbyPos(arrC.getSize() - 1);
        }
        if (isDearling)
        {
            Vector3 oldPos = card.gameObject.transform.localPosition;
            card.gameObject.transform.parent        = arrC.mainTransform;
            card.gameObject.transform.localPosition = new Vector3(0, 0, 0);
            Debug.LogError("Boc Bai");
            card.gameObject.transform.parent = arrC.transform;
            StartCoroutine(card.moveTo(oldPos, 0.25f, 0, true));
        }
    }
示例#9
0
 public override void setCardPhom(int[] arrayPhom)
 {
     base.setCardPhom(arrayPhom);
     try
     {
         allCardPhom = arrayPhom;
         int[][] cardPhom = RTL.getPhom3(arrayPhom, null);
         for (int i = 0; i < cardPhom.Length; i++)
         {
             if (cardPhom[i].Length >= 6)
             {
             }
         }
         for (int i = 0; i < 3; i++)
         {
             this.cardPhom[i].removeAllCard();
         }
         for (int i = 0; i < cardPhom.Length; i++)
         {
             this.cardPhom[i].setArrCard(cardPhom[i]);
         }
     }
     catch (Exception e)
     {
         // TODO: handle exception
     }
 }
示例#10
0
    private static int[] nhacdoithong(int indexFocus, int[] cardHand, int[] cardFire)
    {
        int[] indexCardNhac = null;
        if (getValue(cardHand[indexFocus]) == 2 || cardHand.Length < 6)
        {
            return(null);
        }
        int[] pearList = null;
        int   temp     = getValue(cardHand[indexFocus]);

        for (int i = indexFocus; i < cardHand.Length - 1; i++)
        {
            if ((getValue(cardHand[i]) == 1 ? 14 : getValue(cardHand[i])) == temp &&
                (getValue(cardHand[i + 1]) == 1 ? 14 : getValue(cardHand[i + 1])) == temp)
            {
                pearList = RTL.insertArray(pearList, i);
                pearList = RTL.insertArray(pearList, i + 1);
                temp    += 1;
            }
        }

        if (pearList != null && (pearList.Length == 6 || pearList.Length == 8))
        {
            indexCardNhac = pearList;
        }
        return(indexCardNhac);
    }
示例#11
0
 public virtual void allCardFinish(string nick, int[] card)
 {
     card = RTL.sort(card);
     if (players[getPlayer(nick)].isPlaying())
     {
         players[getPlayer(nick)].setCardHandInFinishGame(card);
     }
 }
示例#12
0
文件: PHOM.cs 项目: ping203/WebGame
 private void sortCards(int[] cardhand)
 {
     players[0].cardhand_xepbai = RTL.sortPhom1(cardhand,
                                                RTL.getPhom3Minh(cardhand, players[0].getEatCard()),
                                                players[0].getEatCard());
     players[0].id_xepbai    = players[0].cardhand_xepbai.Length - 1;
     players[0].isUserXepbai = true;
 }
示例#13
0
    public static bool checkSanhPK(int[] cards)
    {
        int[] cardS     = null;
        int   cardTemp  = -1;
        int   cardsSize = cards.Length;

        for (int i = 0; i < cardsSize; i++)
        {
            if (cardTemp == -1)
            {
                cardTemp = cards[i];
                cardS    = RTL.insertArray(cardS, cardTemp);
                continue;
            }
            else if (i >= 4 && getValue(cardTemp) == 5)
            {
                if (getValue(cards[i]) == 1 && getValue(cardS[0]) != 1)
                {
                    cardS = RTL.insertArray(cardS, cards[i]);
                }
                else if (getValue(cards[i]) == 6)
                {
                    cardS    = RTL.insertArray(cardS, cards[i]);
                    cardTemp = cards[i];
                }
            }
            else if ((getValue(cardTemp) == 13 ? 0 : getValue(cardTemp)) + 1 == getValue(cards[i]))
            {
                cardS    = RTL.insertArray(cardS, cards[i]);
                cardTemp = cards[i];
            }
            else if (getValue(cardTemp) == getValue(cards[i]))
            {
                cardS    = subArray(cardS, cardTemp);
                cardS    = RTL.insertArray(cardS, cards[i]);
                cardTemp = cards[i];
            }
            else
            {
                if (cardS.Length <= 2)
                {
                    cardS    = null;
                    cardS    = RTL.insertArray(cardS, cards[i]);
                    cardTemp = cards[i];
                }
                else if (cardS.Length < 5)
                {
                    break;
                }
            }
        }
        if (cardS.Length >= 5)
        {
            return(true);
        }
        return(false);
    }
示例#14
0
    private static string a(string A_0, bool A_1, bool A_2)
    {
        List <char> list  = new List <char>(A_0.ToLower().ToCharArray());
        List <char> list2 = new List <char>(A_0.ToCharArray());

        new List <char>();
        List <string> list3 = new List <string>();
        string        text  = "";

        RTL.PartMode partMode  = RTL.PartMode.Arabic;
        RTL.PartMode partMode2 = RTL.PartMode.Arabic;
        for (int i = 0; i < list.Count; i++)
        {
            bool flag = false;
            partMode2 = RTL.a(list, i, partMode, partMode2, A_2);
            if (partMode2 != partMode)
            {
                flag = true;
                if (partMode == RTL.PartMode.Arabic && partMode2 == RTL.PartMode.Punctuation)
                {
                    flag = false;
                }
            }
            if (flag)
            {
                RTL.a(partMode, text, ref list3);
                text     = "";
                partMode = partMode2;
            }
            text += list2[i];
        }
        RTL.a(partMode, text, ref list3);
        StringBuilder stringBuilder = new StringBuilder();

        if (A_1)
        {
            for (int j = list3.Count - 1; j >= 0; j--)
            {
                stringBuilder.Append(list3[j]);
            }
        }
        else if (A_2)
        {
            for (int k = list3.Count - 1; k >= 0; k--)
            {
                stringBuilder.Append(list3[k]);
            }
        }
        else
        {
            foreach (string current in list3)
            {
                stringBuilder.Append(current);
            }
        }
        return(stringBuilder.ToString());
    }
示例#15
0
    // Update is called once per frame
    private void Update()
    {
        string text = "";

        string[] paragraphs = mainText.Split('\n');
        for (int i = 0; i < paragraphs.Length; i++)
        {
            text += ToRtlParagraph(paragraphs[i]);
        }

        textUI.text = RTL.GetText(text);
    }
示例#16
0
 public string GetFixAllLetters(int index)
 {
     if (_fixAllLetters == null)
     {
         _fixAllLetters = new string[MonsterAllLetters.Length];
     }
     if (string.IsNullOrEmpty(_fixAllLetters [index]))
     {
         _fixAllLetters [index] = RTL.Fix(MonsterAllLetters [index]);
     }
     return(_fixAllLetters [index]);
 }
示例#17
0
 public int[] getArrCardAll2()   // có sắp xếp, không trả về null
 {
     int[] arr = null;
     for (int i = 0; i < getSize(); i++)
     {
         arr = RTL.insertArray(arr, arrIntCard[i]);
     }
     if (arr == null)
     {
         return(new int[] { });
     }
     return(arr);
 }
示例#18
0
 public int[] getArrayCardAllTrue()   // không sắp xếp
 {
     int[] arr = null;
     for (int i = 0; i < arrCard.Count; i++)
     {
         arr = RTL.insertArray(arr, arrCard[i].getId());
     }
     if (arr == null)
     {
         return(new int[] { });
     }
     return(arr);
 }
示例#19
0
    public override void startTableOk(int[] cardHand, Message msg, string[] nickPlay)
    {
        base.startTableOk(cardHand, msg, nickPlay);
        btn_doiluat.gameObject.SetActive(false);
        isHaphom    = false;
        isHaphomRoi = false;
        setPositionPhom(false);
        try {
            for (int i = 0; i < players.Length; i++)
            {
                if (i != 0)
                {
                    players[i].cardHand.maxW = cardHand.Length * 20;
                }
                players[i].cardPhom[0].removeAllCard();
                players[i].cardPhom[1].removeAllCard();
                players[i].cardPhom[2].removeAllCard();
                players[i].card_win[0]  = -1;
                players[i].card_win[1]  = -1;
                players[i].card_win[2]  = -1;
                players[i].allCardPhom  = null;
                players[i].isUserXepbai = false;
            }
            players[0].cardhand_xepbai = null;
            for (int i = 0; i < 4; i++)
            {
                cardDrop[i].removeAllCard();
            }
            BaseInfo.gI().isHaPhom = false;
            //players[0].gameObject.transform.localPosition = new Vector3(xPlay, -115, 0);
            players[0].setCardHand(
                RTL.sortPhom(cardHand,
                             RTL.getPhom3(cardHand, players[0].card_win)), true,
                false, false);
            players[0].isUserXepbai = false;
            totalCardNoc            = getTotalPlayerPlaying() * 4 - 1;
            setSoBaiNoc(totalCardNoc);

            for (int i = 1; i < players.Length; i++)
            {
                if (players[i].isPlaying())
                {
                    addCardHandOtherPlayer(9, i);
                }
            }
            SoundManager.instance.startchiabaiAudio();
        } catch (Exception e) {
            // TODO: handle exception
        }
        setActiveBtn(btn_xepbai, false);
    }
示例#20
0
文件: PHOM.cs 项目: ping203/WebGame
    public override void allCardFinish(string nick, int[] card)
    {
        card = RTL.sort(card);
        if (players[getPlayer(nick)].isPlaying())
        {
            players[getPlayer(nick)].diem = RTL.getScoreFinal(card);
            players[getPlayer(nick)].setCardHandInFinishGame(RTL.sortPhom(card,
                                                                          RTL.getPhom3(card, players[getPlayer(nick)].getEatCard())));
        }

        for (int i = 0; i < 4; i++)
        {
            cardDrop[i].removeAllCard();
        }
    }
示例#21
0
    private static int[] nhac1doi(int indexFocus, int[] cardHand, int[] cardFire)
    {
        int[] indexCardNhac = null;
        if (cardHand == null || cardHand.Length < 2)
        {
            return(null);
        }
        int cPos = -1;

        int[] arrCardUp = new int[] { cardHand[indexFocus] };
        if (indexFocus + 1 <= cardHand.Length && indexFocus - 1 >= cardHand.Length)
        {
            if (getValue(cardHand[indexFocus + 1]) == cardHand[indexFocus])
            {
                if (compareCard(RTL.insertArray(arrCardUp, cardHand[indexFocus + 1]), cardFire))
                {
                    cPos = indexFocus + 1;
                }
            }
            else if (getValue(cardHand[indexFocus - 1]) == cardHand[indexFocus])
            {
                if (compareCard(RTL.insertArray(arrCardUp, cardHand[indexFocus - 1]), cardFire))
                {
                    cPos = indexFocus - 1;
                }
            }
        }
        int pos = -1;

        if (indexFocus - 1 >= 0 && getValue(cardHand[indexFocus - 1]) == getValue(cardHand[indexFocus]))
        {
            pos = indexFocus - 1;
        }
        if (indexFocus + 1 <= cardHand.Length - 1 &&
            getValue(cardHand[indexFocus + 1]) == getValue(cardHand[indexFocus]) && pos == -1)
        {
            pos = indexFocus + 1;
        }
        if (pos != -1 && compareCard(RTL.insertArray(arrCardUp, cardHand[pos]), cardFire))
        {
            cPos = pos;
        }
        if (cPos != -1)
        {
            indexCardNhac = new int[] { cPos };
        }
        return(indexCardNhac);
    }
示例#22
0
文件: PHOM.cs 项目: ping203/WebGame
    public override void onEatCardSuccess(string from, string to, int card)
    {
        base.onEatCardSuccess(from, to, card);
        gameControl.sound.startAnbairacAudio();
        int id1 = getPlayer(from), id2 = getPlayer(to);

        if (id1 == -1 || id2 == -1)
        {
            // activity.showToast("Không hợp lệ");
        }
        else
        {
            if (card != -1)
            {
                players[id1].onEatCard(card);
                if (id1 == 0)
                {
                    if (!BaseInfo.gI().isView)
                    {
                        players[0].isUserXepbai = false;
                        players[0].addToCardHand(card, true);
                        int[] cardnew = RTL.sortPhom(players[0].cardHand
                                                     .getArrCardAll(), RTL.getPhom3(
                                                         players[0].cardHand.getArrCardAll(),
                                                         players[0].getEatCard()));
                        players[0].setCardHand(cardnew, players[0].getEatCard(), false, false, false);
                        setActiveBtn(btn_danhbai, true);
                    }
                }
                else
                {
                }

                try {
                    for (int i = 0; i < players.Length; i++)
                    {
                        if (players[i].isPlaying() && players[i].pos == id2)
                        {
                            cardDrop[i].removeCardByID(card);
                        }
                    }
                } catch (Exception e) {
                }
            }
        }
    }
示例#23
0
 public int[] getArrCardChoose()   // có sắp xếp, có trả về null
 // return super.getArrCard();
 {
     int[] arr = null;
     for (int i = 0; i < getSize(); i++)
     {
         if (arrCard[i].isChoose)
         {
             arr = RTL.insertArray(arr, arrCard[i].getId());
         }
     }
     if (arr != null)
     {
         arr = RTL.sort(arr);
     }
     return(arr);
 }
示例#24
0
 public static bool isbondoithong(int[] card)
 {
     int[] pearList = null;
     for (int i = 0; i < card.Length - 1; i++)
     {
         if (getValue(card[i]) == getValue(card[i + 1]))
         {
             if (!isContain(pearList, getValue(card[i])))
             {
                 pearList = RTL.insertArray(pearList, getValue(card[i]));
             }
         }
     }
     if (pearList != null && pearList.Length == 4)
     {
         return(true);
     }
     return(false);
 }
示例#25
0
    private static string a(List <char> A_0, bool A_1, ref int A_2)
    {
        char arg_08_0 = A_0[A_2];

        if (A_0[A_2] == '\0')
        {
            A_0.RemoveAt(A_2);
            A_2--;
            return("");
        }
        string result = A_0[A_2].ToString();
        string key;

        switch (key = A_0[A_2].ToString())
        {
        case "ا":
            result = RTL.a(A_0, A_2, "0xFE8D", "0xFE8D", "0xFE8E", "0xFE8E");
            return(result);

        case "أ":
            result = RTL.a(A_0, A_2, "0xFE83", "0xFE83", "0xFE84", "0xFE84");
            return(result);

        case "إ":
            result = RTL.a(A_0, A_2, "0xFE87", "0xFE87", "0xFE88", "0xFE88");
            return(result);

        case "آ":
            result = RTL.a(A_0, A_2, "0xFE81", "0xFE81", "0xFE82", "0xFE82");
            return(result);

        case "ب":
            result = RTL.a(A_0, A_2, "0xFE8F", "0xFE91", "0xFE92", "0xFE90");
            return(result);

        case "پ":
            result = RTL.a(A_0, A_2, "0xFB56", "0xFB58", "0xFB59", "0xFB57");
            return(result);

        case "ت":
            result = RTL.a(A_0, A_2, "0xFE95", "0xFE97", "0xFE98", "0xFE96");
            return(result);

        case "ث":
            result = RTL.a(A_0, A_2, "0xFE99", "0xFE9B", "0xFE9C", "0xFE9A");
            return(result);

        case "ج":
            result = RTL.a(A_0, A_2, "0xFE9D", "0xFE9F", "0xFEA0", "0xFE9E");
            return(result);

        case "چ":
            result = RTL.a(A_0, A_2, "0xFB7A", "0xFB7C", "0xFB7D", "0xFB7B");
            return(result);

        case "ح":
            result = RTL.a(A_0, A_2, "0xFEA1", "0xFEA3", "0xFEA4", "0xFEA2");
            return(result);

        case "خ":
            result = RTL.a(A_0, A_2, "0xFEA5", "0xFEA7", "0xFEA8", "0xFEA6");
            return(result);

        case "د":
            result = RTL.a(A_0, A_2, "0xFEA9", "0xFEA9", "0xFEAA", "0xFEAA");
            return(result);

        case "ذ":
            result = RTL.a(A_0, A_2, "0xFEAB", "0xFEAB", "0xFEAC", "0xFEAC");
            return(result);

        case "ر":
            result = RTL.a(A_0, A_2, "0xFEAD", "0xFEAD", "0xFEAE", "0xFEAE");
            return(result);

        case "ز":
            result = RTL.a(A_0, A_2, "0xFEAF", "0xFEAF", "0xFEB0", "0xFEB0");
            return(result);

        case "ژ":
            result = RTL.a(A_0, A_2, "0x0698", "0x0698", "0xFB8B", "0xFB8B");
            return(result);

        case "س":
            result = RTL.a(A_0, A_2, "0xFEB1", "0xFEB3", "0xFEB4", "0xFEB2");
            return(result);

        case "ش":
            result = RTL.a(A_0, A_2, "0xFEB5", "0xFEB7", "0xFEB8", "0xFEB6");
            return(result);

        case "ص":
            result = RTL.a(A_0, A_2, "0xFEB9", "0xFEBB", "0xFEBC", "0xFEBA");
            return(result);

        case "ض":
            result = RTL.a(A_0, A_2, "0xFEBD", "0xFEBF", "0xFEC0", "0xFEBE");
            return(result);

        case "ط":
            result = RTL.a(A_0, A_2, "0xFEC1", "0xFEC3", "0xFEC4", "0xFEC2");
            return(result);

        case "ظ":
            result = RTL.a(A_0, A_2, "0xFEC5", "0xFEC7", "0xFEC8", "0xFEC6");
            return(result);

        case "ع":
            result = RTL.a(A_0, A_2, "0xFEC9", "0xFECB", "0xFECC", "0xFECA");
            return(result);

        case "غ":
            result = RTL.a(A_0, A_2, "0xFECD", "0xFECF", "0xFED0", "0xFECE");
            return(result);

        case "ف":
            result = RTL.a(A_0, A_2, "0xFED1", "0xFED3", "0xFED4", "0xFED2");
            return(result);

        case "ق":
            result = RTL.a(A_0, A_2, "0xFED5", "0xFED7", "0xFED8", "0xFED6");
            return(result);

        case "ﮎ":
            result = RTL.a(A_0, A_2, "0xFB8E", "0xFB90", "0xFB91", "0xFB8F");
            return(result);

        case "ک":
        case "ك":
            result = RTL.a(A_0, A_2, "0xFED9", "0xFEDB", "0xFEDC", "0xFEDA");
            return(result);

        case "گ":
            result = RTL.a(A_0, A_2, "0xFB92", "0xFB94", "0xFB95", "0xFB93");
            return(result);

        case "ل":
            result = RTL.a(A_0, A_2, "0xFEDD", "0xFEDF", "0xFEE0", "0xFEDE");
            return(result);

        case "م":
            result = RTL.a(A_0, A_2, "0xFEE1", "0xFEE3", "0xFEE4", "0xFEE2");
            return(result);

        case "ن":
            result = RTL.a(A_0, A_2, "0xFEE5", "0xFEE7", "0xFEE8", "0xFEE6");
            return(result);

        case "ه":
            result = RTL.a(A_0, A_2, "0xFEE9", "0xFEEB", "0xFEEC", "0xFEEA");
            return(result);

        case "ة":
            result = RTL.a(A_0, A_2, "0xFE93", "0xFEEB", "0xFEEC", "0xFE94");
            return(result);

        case "و":
            result = RTL.a(A_0, A_2, "0xFEED", "0xFEED", "0xFEEE", "0xFEEE");
            return(result);

        case "ؤ":
            result = RTL.a(A_0, A_2, "0xFE85", "0xFE85", "0xFE86", "0xFE86");
            return(result);

        case "ى":
            result = RTL.a(A_0, A_2, "0xFEEF", "0xFEEF", "0xFEF0", "0xFEF0");
            return(result);

        case "ي":
            result = RTL.a(A_0, A_2, "0xFEEF", "0xFEF3", "0xFEF4", "0xFEF0");
            return(result);

        case "ئ":
            result = RTL.a(A_0, A_2, "0xFE89", "0xFE8B", "0xFE8C", "0xFE8A");
            return(result);

        case "ء":
            result = "0xFE80";
            return(result);

        case "ٹ":
            result = RTL.a(A_0, A_2, "0xFB66", "0xFB68", "0xFB69", "0xFB67");
            return(result);

        case "ڈ":
            result = RTL.a(A_0, A_2, "0xFB88", "0xFB88", "0xFB89", "0xFB89");
            return(result);

        case "ڑ":
            result = RTL.a(A_0, A_2, "0xFB8C", "0xFB8C", "0xFB8D", "0xFB8D");
            return(result);

        case "ں":
            result = RTL.a(A_0, A_2, "0xFB9E", "0xFB9E", "0xFBE9", "0xFB9F");
            return(result);

        case "ﮠ":
            result = RTL.a(A_0, A_2, "0xFBA0", "0xFBA2", "0xFBA3", "0xFBA1");
            return(result);

        case "ے":
            result = RTL.a(A_0, A_2, "0xFBAE", "0xFBAE", "0xFBAF", "0xFBAF");
            return(result);

        case "ہ":
            result = RTL.a(A_0, A_2, "0xFBA6", "0xFBA8", "0xFBA9", "0xFBA7");
            return(result);

        case "0":
            if (A_1)
            {
                result = "0x0660";
                return(result);
            }
            return(result);

        case "1":
            if (A_1)
            {
                result = "0x0661";
                return(result);
            }
            return(result);

        case "2":
            if (A_1)
            {
                result = "0x0662";
                return(result);
            }
            return(result);

        case "3":
            if (A_1)
            {
                result = "0x0663";
                return(result);
            }
            return(result);

        case "4":
            if (A_1)
            {
                result = "0x0664";
                return(result);
            }
            return(result);

        case "5":
            if (A_1)
            {
                result = "0x0665";
                return(result);
            }
            return(result);

        case "6":
            if (A_1)
            {
                result = "0x0666";
                return(result);
            }
            return(result);

        case "7":
            if (A_1)
            {
                result = "0x0667";
                return(result);
            }
            return(result);

        case "8":
            if (A_1)
            {
                result = "0x0668";
                return(result);
            }
            return(result);

        case "9":
            if (A_1)
            {
                result = "0x0669";
                return(result);
            }
            return(result);
        }
        result = A_0[A_2].ToString();
        return(result);
    }
示例#26
0
    public void PlayCalloutSound(Level lvl, int segmentId, Segment seg)
    {
        string    fileName;
        string    url;
        AudioClip voice;
        string    word = "";

        switch (lvl.monsterInputType)
        {
        case MonsterInputType.Letter:
        case MonsterInputType.SoundLetter:

            if (TryLetter)
            {
                fileName = RTL.Clean(seg.MonsterRequiredLetters [0]);


                if (letters.ContainsKey(fileName))
                {
                    letters.Remove(fileName);
                }

                url   = "Sounds/Voice/Letters/" + fileName;
                voice = Resources.Load(url) as AudioClip;
                if (voice == null)
                {
                    logLetter += "Letter - Sound is missing - '" + /*RTL.Fix*/ (url) + "'" + " Level: " + (lvl.levelId - 1) + " Segment Id: " + (segmentId + 1) + "\n";
//					Debug.Log ("Letter - Sound is missing - '" + url + "'" + " Level: " + (lvl.levelId - 1) + " Segment Id: " + (segmentId + 1));
                }
            }
            break;

        case MonsterInputType.LetterInWord:
            if (TryLetterInWord)
            {
                fileName = ArabicBaseForm.Extract(RTL.Clean(seg.MonsterRequiredLetters [0]));
//				fileName = RTL.Fix(seg.MonsterRequiredLetters [0]);

                if (letters.ContainsKey(fileName))
                {
                    letters.Remove(fileName);
                }

                url   = "Sounds/Voice/Letters/" + fileName;
                voice = Resources.Load(url) as AudioClip;
                if (voice == null)
                {
                    logLetterInWord += "Letter In Word - Sound is missing - '" + /*RTL.Fix*/ (url) + "'" + " Level: " + (lvl.levelId - 1) + " Segment Id: " + (segmentId + 1) + " ( " + url + " )" + "\n";
//					Debug.Log ("Letter In Word - Sound is missing - '" + url + "'" + " Level: " + (lvl.levelId - 1) + " Segment Id: " + (segmentId + 1));
                }
            }
            break;

        case MonsterInputType.Word:
        case MonsterInputType.SoundWord:
            if (TryWord)
            {
                word = "";
                foreach (string letter in seg.MonsterRequiredLetters)
                {
                    word += letter;
                }
                fileName = ArabicBaseForm.Extract(RTL.Clean(word));
                if (words.ContainsKey(fileName))
                {
                    words.Remove(fileName);
                }
                url = "Sounds/Voice/Words/" + fileName;

                voice = Resources.Load(url) as AudioClip;
                if (voice == null)
                {
                    logWord += "Word - Sound is missing - '" + /*RTL.Fix*/ (url) + "'" + " Level: " + (lvl.levelId - 1) + " Segment Id: " + (segmentId + 1) + "\n";
                }
            }
            break;
        }
    }
示例#27
0
    public void click()
    {
        if (player.getName().Equals(BaseInfo.gI().mainInfo.nick))
        {
            int len = 0;
            if (arrayCard == null)
            {
                return;
            }
            if (arrayCard.getArrCardChoose() != null)
            {
                len = arrayCard.getArrCardChoose().Length;
            }

            if (len != 0)
            {
                if (card.isChoose)
                {
                }
                else
                {
                    int value1 = TLMNChooseCard.getValue(card.getId());
                    int value2 = TLMNChooseCard.getValue(arrayCard.getArrCardChoose()[len - 1]);
                    if (!(value1 == value2) &&
                        !(value1 == value2 + 1) &&
                        !(RTL.getCardInfo(card.getId())[1] == RTL
                          .getCardInfo(arrayCard.getArrCardChoose()[len - 1])[1] - 1))
                    {
                        int valuve3 = RTL.getCardInfo(arrayCard.getArrCardChoose()[0])[1];
                        if (!(value1 == valuve3) && !(value1 == valuve3 + 1) && !(value1 == valuve3 - 1))
                        {
                            if (!TLMNChooseCard.issanh2(TLMNPlayer.sort(RTL.insertArray(arrayCard.getArrCardChoose(),
                                                                                        card.getId()))) &&
                                !TLMNChooseCard
                                .isdoi(RTL.insertArray(arrayCard.getArrCardChoose(), card.getId())) &&
                                !TLMNChooseCard
                                .issam(RTL.insertArray(arrayCard.getArrCardChoose(), card.getId())))
                            {
                                for (int i = 0; i < arrayCard.getSize(); i++)
                                {
                                    arrayCard.getCardbyPos(i).setChoose(false);
                                }
                                len = 0;
                            }
                        }
                    }

                    if (tlmnStage != null && tlmnStage.tableArrCard != null && arrayCard.getArrCardChoose() != null &&
                        arrayCard.getArrCardChoose().Length > 0)
                    {
                        if (!TLMNChooseCard.issanh2(TLMNPlayer.sort(RTL.insertArray(arrayCard.getArrCardChoose(),
                                                                                    card.getId()))) &&
                            !TLMNChooseCard.isdoi(RTL.insertArray(arrayCard.getArrCardChoose(), card.getId())) &&
                            !TLMNChooseCard.issam(RTL.insertArray(arrayCard.getArrCardChoose(), card.getId())))
                        {
                            for (int i = 0; i < arrayCard.getSize(); i++)
                            {
                                arrayCard.getCardbyPos(i).setChoose(false);
                            }
                            len = 0;
                        }
                    }
                }
            }

            card.setChoose(!card.isChoose);

            if (tlmnStage != null && tlmnStage.tableArrCard != null)
            {
                if (tlmnStage.tableArrCard.Length > 0 && len == 0)
                {
                    int indexCardChoose = -1;
                    if (arrayCard.getArrCardChoose() == null)
                    {
                        return;
                    }
                    if (arrayCard.getArrCardChoose().Length == 1)
                    {
                        for (int i = 0; i < arrayCard.getArrCardAll().Length; i++)
                        {
                            if (arrayCard.getArrCardAll()[i] == card.getId())
                            {
                                indexCardChoose = i;
                            }
                        }
                        if (indexCardChoose != -1)
                        {
                            int[] index = TLMNChooseCard.getArrIndexCardNhac(indexCardChoose,
                                                                             arrayCard.getArrCardAll(), tlmnStage.tableArrCard);
                            if (index != null)
                            {
                                for (int i = 0; i < index.Length; i++)
                                {
                                    Card cardNhac = arrayCard.getCardbyPos(index[i]);
                                    if (cardNhac != null)
                                    {
                                        cardNhac.setChoose(true);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                if (arrayCard.getArrCardChoose() == null)
                {
                    return;
                }
                if (arrayCard.getArrCardChoose().Length == 2 && card.isChoose)
                {
                    int[] index = TLMNChooseCard.getArrIndexCardNhac(arrayCard.getArrCardChoose(),
                                                                     arrayCard.getArrCardAll());
                    if (index != null)
                    {
                        for (int i = 0; i < index.Length; i++)
                        {
                            Card cardNhac = arrayCard.getCardbyPos(index[i]);
                            if (cardNhac != null)
                            {
                                cardNhac.setChoose(true);
                            }
                        }
                    }
                    if (index != null && index.Length < 2)
                    {
                        if (!TLMNChooseCard.issanh2(arrayCard.getArrCardChoose()))
                        {
                            for (int i = 0; i < arrayCard.getSize(); i++)
                            {
                                arrayCard.getCardbyPos(i).setChoose(false);
                            }
                            card.setChoose(!card.isChoose);
                        }
                    }
                }
                else if (arrayCard.getArrCardChoose().Length >= 2 && card.isChoose)
                {
                    if (!TLMNChooseCard.issanh2(arrayCard.getArrCardChoose()))
                    {
                        for (int i = 0; i < arrayCard.getSize(); i++)
                        {
                            arrayCard.getCardbyPos(i).setChoose(false);
                        }
                        card.setChoose(!card.isChoose);
                    }
                }
                else if (arrayCard.getArrCardChoose().Length >= 2 && !card.isChoose)
                {
                    // int indexCardChoose = -1;
                    // for (int i = 0; i < arrayCard.getArrCardAll().Length;
                    // i++) {
                    // if (arrayCard.getArrCardAll()[i] == card.getId()) {
                    // indexCardChoose = i;
                    // }
                    // }
                    // if (indexCardChoose != -1) {
                    // for (int i = indexCardChoose; i <
                    // arrayCard.getArrCardAll().Length; i++) {
                    // arrayCard.getCardbyPos(i).setChoose(false);
                    // }
                    // }
                }
            }
        }
    }
示例#28
0
    public static int checkThung(int[] cards)
    {
        int[] y = new int[4];
        int   x = -1;

        int[] cardThung = null;
        for (int i = 0; i < cards.Length; i++)
        {
            switch (getType(cards[i]))
            {
            case 0:
                y[0]++;
                if (y[0] > 4)
                {
                    x = 0;
                }
                break;

            case 1:
                y[1]++;
                if (y[1] > 4)
                {
                    x = 1;
                }
                break;

            case 2:
                y[2]++;
                if (y[2] > 4)
                {
                    x = 2;
                }
                break;

            case 3:
                y[3]++;
                if (y[3] > 4)
                {
                    x = 3;
                }
                break;

            default:
                break;
            }
        }
        if (x != -1)
        {
            for (int i = 0, n = cards.Length; i < n; i++)
            {
                if (getType(cards[i]) == x)
                {
                    cardThung = RTL.insertArray(cardThung, cards[i]);
                }
            }
            if (checkSanhPK(cardThung) && cardThung.Length > 4)
            {
                return(8);
            }
            return(5);
        }
        else
        {
            if (checkSanhPK(cards))
            {
                return(4);
            }
        }
        return(0);
    }
示例#29
0
    private static int[] nhacsanh(int indexFocus, int[] cardHand, int[] cardFire)
    {
        int[] indexCardNhac = null;
        if (cardHand == null || cardHand.Length < cardFire.Length)
        {
            return(null);
        }
        int temp = -1;

        int[] sanh   = null;
        int[] cardUp = null;
        for (int i = indexFocus; i < cardHand.Length; i++)
        {
            if (temp == -1)
            {
                temp   = getValue(cardHand[i]);
                sanh   = RTL.insertArray(sanh, i);
                cardUp = RTL.insertArray(cardUp, cardHand[i]);
            }
            else if ((getValue(cardHand[i]) == 1 ? 14 : getValue(cardHand[i])) == temp + 1)
            {
                sanh   = RTL.insertArray(sanh, i);
                cardUp = RTL.insertArray(cardUp, cardHand[i]);
                temp   = (getValue(cardHand[i]) == 1 ? 14 : getValue(cardHand[i]));
                if (sanh.Length == cardFire.Length)
                {
                    break;
                }
            }
        }
        if (sanh.Length != cardFire.Length &&
            (getValue(cardHand[indexFocus]) >= getValue(cardFire[cardFire.Length - 1]) || getValue(cardHand[indexFocus]) == 1))
        {
            if (getValue(cardHand[indexFocus]) == getValue(cardFire[cardFire.Length - 1]) &&
                cardHand[indexFocus] < cardFire[cardFire.Length - 1])
            {
                return(null);
            }
            sanh = null;
            for (int i = indexFocus; i >= 0; i--)
            {
                if (temp == -1)
                {
                    temp   = getValue(cardHand[i]);
                    sanh   = RTL.insertArray(sanh, i);
                    cardUp = RTL.insertArray(cardUp, cardHand[i]);
                }
                else if ((getValue(cardHand[i]) == 1 ? 14 : getValue(cardHand[i])) == temp - 1)
                {
                    sanh   = RTL.insertArray(sanh, i);
                    cardUp = RTL.insertArray(cardUp, cardHand[i]);
                    temp   = (getValue(cardHand[i]) == 1 ? 14 : getValue(cardHand[i]));
                }
                if (sanh.Length == cardFire.Length)
                {
                    break;
                }
            }
        }
        try {
            if (sanh != null && sanh.Length == cardFire.Length)
            {
                if (getValue(cardHand[sanh[sanh.Length - 1]]) == getValue(cardFire[cardFire.Length - 1]))
                {
                    if (sanh.Length < cardHand.Length)
                    {
                        if (getValue(cardHand[sanh[sanh.Length - 1]]) == getValue(cardHand[sanh[sanh.Length - 1] + 1]))
                        {
                            sanh[sanh.Length - 1]    += 1;
                            cardUp[cardUp.Length - 1] = cardHand[sanh[sanh.Length - 1]];
                        }
                    }
                    if (sanh.Length < cardHand.Length)
                    {
                        if (getValue(cardHand[sanh[sanh.Length - 1]]) == getValue(cardHand[sanh[sanh.Length - 1] + 1]))
                        {
                            sanh[sanh.Length - 1]    += 1;
                            cardUp[cardUp.Length - 1] = cardHand[sanh[sanh.Length - 1]];
                        }
                    }
                    if (sanh.Length < cardHand.Length)
                    {
                        if (getValue(cardHand[sanh[sanh.Length - 1]]) == getValue(cardHand[sanh[sanh.Length - 1] + 1]))
                        {
                            sanh[sanh.Length - 1]    += 1;
                            cardUp[cardUp.Length - 1] = cardHand[sanh[sanh.Length - 1]];
                        }
                    }
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
        }

        if (sanh != null && sanh.Length == cardFire.Length && compareCard(cardUp, cardFire))
        {
            indexCardNhac = new int[cardFire.Length];
            for (int j = 0; j < cardFire.Length; j++)
            {
                indexCardNhac[j] = sanh[j];
            }
        }

        return(indexCardNhac);
    }
示例#30
0
    private static string a(string A_0, bool A_1, bool A_2, bool A_3)
    {
        string result;

        try
        {
            if (A_0.Length == 0)
            {
                result = "";
            }
            else
            {
                A_0 = A_0.Replace("ی", "ي");
                string      text = "";
                int         i    = 0;
                List <char> list = new List <char>(A_0.ToCharArray());
                list.Reverse();
                while (i < list.Count)
                {
                    string a_ = RTL.a(list, A_1, ref i);
                    text += RTL.b(a_);
                    i++;
                }
                List <string> list2 = new List <string>(text.Split(new char[]
                {
                    ' '
                }));
                list2.Reverse();
                new List <string>();
                for (i = 0; i < list2.Count; i++)
                {
                    if (list2[i] == "ﺔﻠﻟﺍ" || list2[i] == "ﺔﻠﻟﺃ" || list2[i] == "ﻪﻠﻟﺍ" || list2[i] == "ﻪﻠﻟﺃ")
                    {
                        list2[i] = char.ConvertFromUtf32(65010) + char.ConvertFromUtf32(65165);
                    }
                    if (list2[i] == "ﻪﻠﻟ" || list2[i] == "ﺔﻠﻟ")
                    {
                        list2[i] = char.ConvertFromUtf32(65010);
                    }
                }
                text = "";
                bool flag = true;
                foreach (string current in list2)
                {
                    if (flag)
                    {
                        for (int j = 0; j < current.Length; j++)
                        {
                            flag &= (RTL.punctuationMarks.IndexOf(current[j]) != -1 || RTL.latinChars.IndexOf(current.ToLower()[j]) != -1);
                        }
                    }
                }
                if (!A_2 && !flag)
                {
                    list2.Reverse();
                }
                for (int k = 0; k < list2.Count; k++)
                {
                    string a_2 = list2[k];
                    text += RTL.a(RTL.a(a_2, A_2, A_3), "");
                    if (k != list2.Count - 1)
                    {
                        text += " ";
                    }
                }
                result = text;
            }
        }
        catch (Exception)
        {
            result = "";
        }
        return(result);
    }