Ejemplo n.º 1
0
    public void MakeRound(EMoveSet move, float aiCheatChance = -1)
    {
        _aiCheatChance = aiCheatChance;

        Debug.Log($"Round started, ai cheat chance is {_aiCheatChance}");

        MakePlayerMove(move);
        MakeAiMove();
        CheckResults();
    }
Ejemplo n.º 2
0
    public void HighlighAiHand(EMoveSet move)
    {
        switch (move)
        {
        case EMoveSet.Rock:
            AiHandRock.Select();
            break;

        case EMoveSet.Paper:
            AiHandPaper.Select();
            break;

        case EMoveSet.Scissors:
            AiHandScissors.Select();
            break;

        default:
            throw new ArgumentOutOfRangeException(nameof(move), move, null);
        }
    }
Ejemplo n.º 3
0
    private void MakeAiMove()
    {
        if (_aiCheatChance < 0)
        {
            _aiMove = (EMoveSet)Random.Range(0, 3);
        }
        else
        {
            var cheat = Math.Round(Random.value, 2);
            Debug.Log($"AI cheat: {cheat}");
            if (Math.Abs(cheat) <= _aiCheatChance)
            {
                switch (_playerMove)
                {
                case EMoveSet.Rock:
                    _aiMove = EMoveSet.Paper;
                    break;

                case EMoveSet.Paper:
                    _aiMove = EMoveSet.Scissors;
                    break;

                case EMoveSet.Scissors:
                    _aiMove = EMoveSet.Rock;
                    break;
                }

                Debug.Log($"Cheat aiMove is {_aiMove}");
            }
            else
            {
                // replay honestly
                _aiMove = (EMoveSet)Random.Range(0, 3);
                Debug.Log($"Honest aiMove is {_aiMove}");
            }
        }

        Debug.Log($"AI move: {_aiMove}");
        OnAiMoveDone?.Invoke(_aiMove);
    }
Ejemplo n.º 4
0
 private void MakePlayerMove(EMoveSet move)
 {
     _playerMove = move;
     Debug.Log($"Player move: {move}");
 }