Exemplo n.º 1
0
 public override void TypeOfThinking(SellerBehaviour partnerBehavior)
 {
     if (partnerBehavior == SellerBehaviour.Cheat && behaviour == SellerBehaviour.Cooperate)
     {
         behaviour = SellerBehaviour.Cheat;
     }
 }
Exemplo n.º 2
0
    //В процессе сделки для каждого торговца существует 5% вероятность ошибиться и принять неправильное решение
    private void ErrorProbability()
    {
        if (Random.Range(1, 100) > 95)
        {
            if (_firstSellerBehaviour == SellerBehaviour.Cheat)
            {
                _firstSellerBehaviour = SellerBehaviour.Cooperate;
            }
            else
            {
                _firstSellerBehaviour = SellerBehaviour.Cheat;
            }
        }

        if (Random.Range(1, 100) > 95)
        {
            if (_secondSellerBehaviour == SellerBehaviour.Cheat)
            {
                _secondSellerBehaviour = SellerBehaviour.Cooperate;
            }
            else
            {
                _secondSellerBehaviour = SellerBehaviour.Cheat;
            }
        }
    }
Exemplo n.º 3
0
    public override void TypeOfThinking(SellerBehaviour partnerBehavior)
    {
        if (dealsАtТhisМoment >= 4)
        {
            if (wasDeceived)
            {
                behaviour = SellerBehaviour.Cheat;
            }
            else
            {
                behaviour = partnerBehavior;
            }
        }
        else
        {
            dealsАtТhisМoment++;

            if (partnerBehavior == SellerBehaviour.Cheat)
            {
                wasDeceived = true;
            }

            if (dealsАtТhisМoment == 2)
            {
                behaviour = SellerBehaviour.Cheat;
            }
            else
            {
                behaviour = SellerBehaviour.Cooperate;
            }
        }
    }
Exemplo n.º 4
0
    private void RefreshThinking()
    {
        _firstSeller.TypeOfThinking(partnerBehavior: _secondSellerBehaviour);
        _secondSeller.TypeOfThinking(partnerBehavior: _firstSellerBehaviour);

        _firstSellerBehaviour  = _firstSeller.Behaviour;
        _secondSellerBehaviour = _secondSeller.Behaviour;
    }
Exemplo n.º 5
0
    private SellerBehaviour GetRandomBehavior()
    {
        Array           behaviours      = Enum.GetValues(typeof(SellerBehaviour));
        Random          random          = new Random();
        SellerBehaviour randomBehaviour = (SellerBehaviour)behaviours.GetValue(random.Next(behaviours.Length));

        return(randomBehaviour);
    }
Exemplo n.º 6
0
    public void MakeADeals(Seller first, Seller second)
    {
        //5 до 10 сделок между каждой парой торговцев
        _dealsCount            = Random.Range(5, 10);
        _firstSeller           = first;
        _secondSeller          = second;
        _firstSellerBehaviour  = first.Behaviour;
        _secondSellerBehaviour = second.Behaviour;

        for (int i = 0; i < _dealsCount; i++)
        {
            ErrorProbability();
            Calculation();
        }
    }
Exemplo n.º 7
0
 public override void TypeOfThinking(SellerBehaviour partnerBehavior)
 {
     behaviour = SellerBehaviour.Cheat;
 }
Exemplo n.º 8
0
 public abstract void TypeOfThinking(SellerBehaviour partnerBehavior);
Exemplo n.º 9
0
 public override void TypeOfThinking(SellerBehaviour partnerBehavior)
 {
     behaviour = GetRandomBehavior();
 }