public void MakeRound(EMoveSet move, float aiCheatChance = -1) { _aiCheatChance = aiCheatChance; Debug.Log($"Round started, ai cheat chance is {_aiCheatChance}"); MakePlayerMove(move); MakeAiMove(); CheckResults(); }
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); } }
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); }
private void MakePlayerMove(EMoveSet move) { _playerMove = move; Debug.Log($"Player move: {move}"); }