static void Main(string[] args) { var random = SingletonRandom.GetRandom(); var match = new Match("Stadium#1", DateTime.Now); ViewReuslt ResultViewer = match.PrintMatchResult; var referee = new Referee("Kassai Viktor", random.Next(0, 1)); Parser parser = new Parser(); var team1 = parser.GetTeam(); var team2 = parser.GetTeam(); Func <int, int, bool> isMatchOver = delegate(int score1, int score2) { return(score1 > score2 || score2 > score1); }; //Weathe coeficients that have got influence on match //int[] weatherCoefficiend = (int[])Enum.GetValues(typeof(Weather)); var matchState = new MatchState(team1, team2, referee); match.MatchNotify += match.StartMatch; match.MatchStageNotify += match.NextMatchStage; match.StartMatch(); if (isMatchOver(match.State.ScoreTeam1, match.State.ScoreTeam2)) { match.NextMatchStage(match); match.StartMatch(); } else if (isMatchOver(match.State.ScoreTeam1, match.State.ScoreTeam2)) { match.NextMatchStage(match); } ResultViewer(match.State.CareTaker); }
public bool KickBall(Team enemyTeam, double teamSkill) { var random = SingletonRandom.GetRandom(); int percentEnemyPlayersSkill = (enemyTeam.Players.Count * 80) / 100; bool[] gamefactors = new bool[2]; gamefactors[0] = teamSkill > enemyTeam.TotalSkillTeam; foreach (var item in enemyTeam.Players) { if (Skill > item.Skill) { --percentEnemyPlayersSkill; } } gamefactors[1] = percentEnemyPlayersSkill <= 0; return(gamefactors[random.Next(0, 1)]); }
public void Start() { var random = SingletonRandom.GetRandom(); string teamWinner = "None"; var teams = new List <Team>(); int queue = 0; int j = 0; teams.Add(Team1); teams.Add(Team2); for (int i = 0; i < Shots; i++) { var currentPlayer = teams[queue].Players.FindByIndex(j); var goal = currentPlayer.PenaltyKick(); if (goal) { Console.WriteLine($"{currentPlayer.Name} scores goal!"); if (queue == 0) { ++ScoreTeam1; } else { ++ScoreTeam2; } CareTaker.LastState(); CareTaker.PushEvent(new Memento(Team1.TeamName, Team2.TeamName, ScoreTeam1, ScoreTeam2)); } else { Console.WriteLine($"{currentPlayer.Name} misses the gates!"); } if (ScoreTeam1 - ScoreTeam2 >= 1) { teamWinner = Team1.TeamName; } else { teamWinner = Team2.TeamName; } } Console.WriteLine($"Team {teamWinner} wins! by penalty"); }
public void Start() { var random = SingletonRandom.GetRandom(); Team oponentTeam; Team currentTeam; Player currentPlayer; var teams = new List <Team>(); int index = 0; var goal = false; teams.Add(Team1); teams.Add(Team2); for (int i = 0; i <= MatchTime; i++) { index = random.Next(0, 1); if (i == 45) { Referee.MakeHalfTime(Team1.TeamName); Referee.MakeHalfTime(Team2.TeamName); } if (i == 90) { MatchTime = Referee.GiveAdditionalTime(); } currentTeam = teams[index]; oponentTeam = teams[index ^= 1]; currentPlayer = currentTeam.Players.FindByIndex(random.Next(0, 10)); goal = currentPlayer.KickBall(oponentTeam, teams[index].TotalSkillTeam); if (goal) { Console.WriteLine($"{currentPlayer.Name} scores goal!"); if (index == 0) { ++ScoreTeam1; } else { ++ScoreTeam2; } CareTaker.LastState(); CareTaker.PushEvent(new Memento(Team1.TeamName, Team2.TeamName, ScoreTeam1, ScoreTeam2)); } } }
public int GiveAdditionalTime() { var random = SingletonRandom.GetRandom(); return(random.Next(0, 10)); }
public bool PenaltyKick() { var random = SingletonRandom.GetRandom(); return(Skill * Lucky > random.Next(5, 150)); }