Exemplo n.º 1
0
    /// <summary>
    /// 数字一致のカードを捨てる
    /// </summary>
    public void TrashCards()
    {
        for (int i = 0; i < HavingCards.Count; i++)
        {
            if (HavingCards[i] == null || HavingCards[i].Suit == Suit.Joker)
            {
                continue;
            }

            for (int j = i + 1; j < HavingCards.Count; j++)
            {
                if (HavingCards[j] == null || HavingCards[j].Suit == Suit.Joker)
                {
                    continue;
                }

                if (HavingCards[i].Number == HavingCards[j].Number)
                {
                    View.TrashCard(HavingCards[i]);
                    View.TrashCard(HavingCards[j]);
                    HavingCards[i] = null;
                    HavingCards[j] = null;
                    break;
                }
            }
        }

        HavingCards.RemoveAll(x => x == null);
    }
Exemplo n.º 2
0
    /// <summary>
    /// 手札をシャッフルする
    /// </summary>
    public IEnumerator SortCardsCoroutine()
    {
        yield return(action.SortCoroutine(HavingCards));

        var orderItr = action.HandOrder.GetEnumerator();

        HavingCards = HavingCards.OrderBy(x =>
        {
            var n = orderItr.Current;
            orderItr.MoveNext();
            return(n);
        }).ToList();

        View.SortCard(action.HandOrder);
    }
Exemplo n.º 3
0
    /// <summary>
    /// カードを一枚引く
    /// </summary>
    /// <param name="drewPlayer">引く対象のプレイヤー</param>
    public IEnumerator DlawCardCoroutine(Player drewPlayer)
    {
        var drewList = drewPlayer.HavingCards;

        yield return(action.DrawCoroutine(drewList));

        var drewNumber = action.DrewIndex;

        var c = drewList[drewNumber];

        drewPlayer.View.TrashCard(c);
        drewList.RemoveAt(drewNumber);

        View.GenerateHandCard(c);
        HavingCards.Add(c);
    }