public Competitor(double ballPositionX, double holePositionX, IRandom random, IBallKickPhysics ballKick) { _ballPositionX = ballPositionX; _holePositionX = holePositionX; _random = random; _ballKick = ballKick; }
public static IPlayer CreateCompetitor(StrikeInfo strikeModel, Ball ball, Hole hole, User player, ExperimentHistory history, IBallKickPhysics ballKick) { if (history == null) throw new NullReferenceException("history"); IPlayer competitor; var competitorModel = strikeModel.CompetitorModel; if (competitorModel == null) throw new NullReferenceException("Модель соперника не задана"); if (competitorModel is UniformCompetitorModel) { competitor = new UniformCompetitor(ball, hole, strikeModel.CompetitorModel as UniformCompetitorModel, player, ballKick); } else if (competitorModel is NormalAdaptiveCompetitorModel) { var errorGenerator = new NormalAdaptiveCompetitorRandom(strikeModel.CompetitorModel as NormalAdaptiveCompetitorModel, history); competitor = new Competitor(ball.Position.X, hole.Position.X, errorGenerator, ballKick); } else if (competitorModel is UniformAdaptiveCompetitorModel) { var errorGenerator = new UniformAdaptiveCompetitorRandom(strikeModel.CompetitorModel as UniformAdaptiveCompetitorModel, history, strikeModel.Hole.Size, strikeModel.Ball.Size); competitor = new Competitor(ball.Position.X, hole.Position.X, errorGenerator, ballKick); } else { throw new InvalidOperationException($"Модель соперника \"{competitorModel.GetType().Name}\" не поддерживается"); } return competitor; }
public NormalRandomPlayer(Ball ball, Hole hole, NormalPlayerModel playerModel, IBallKickPhysics ballKick) { _ball = ball; _hole = hole; _ballKick = ballKick; _playerModel = playerModel; }
public UniformCompetitor(Ball ball, Hole hole, UniformCompetitorModel competitorModel, User player, IBallKickPhysics ballKick) { _player = player; _ballKick = ballKick; _ball = ball; _hole = hole; _competitorModel = competitorModel; if (_competitorModel == null) throw new NullReferenceException("Не задана модель соперника"); }
public Player(int discrTimeStep, long elapsedMilliseconds, IBallKickPhysics physics) { _discrTimeStep = discrTimeStep; _elapsedMilliseconds = elapsedMilliseconds; _physics = physics; }