private void btnAddByeWin_Click(object sender, EventArgs e) { TournPlayer tournPlayer = new TournPlayer((IPlayer)Player.ByePlayer); ITournPlayer player = this.GetPlayer(this.listUnassignedPlayers.SelectedItems[0]); this.CreateMatch(player, (ITournPlayer)tournPlayer, player); }
private void CreateMatch(ITournPlayer player1, ITournPlayer player2, ITournPlayer winner) { int table = int.Parse(this.ddlOpenTables.Text); if (this.Matches.GetByRoundTable(this.Round, table) == null) { TournMatch tournMatch = new TournMatch(); tournMatch.Table = table; tournMatch.Round = this.Round; tournMatch.Players.AddPlayer(player1); tournMatch.Players.AddPlayer(player2); if (winner != null) { tournMatch.Winner = winner.ID; tournMatch.Status = TournMatchResult.Winner; } tournMatch.Players.SortByIDByesLast(); this.Matches.AddMatch((ITournMatch)tournMatch); this.NewMatches.AddMatch((ITournMatch)tournMatch); this.Matches.SortByRoundTable(); this.BindMatches(); this.RemovePlayerFromUnassigned(tournMatch.Players[0].ID); this.RemovePlayerFromUnassigned(tournMatch.Players[1].ID); this.ddlOpenTables.Items.Remove((object)table.ToString()); if (this.ddlOpenTables.Items.Count <= 0) { return; } this.ddlOpenTables.SelectedIndex = 0; } else { int num = (int)MessageBox.Show("Error assigning match to the table"); } }
private void ddlPlayers_SelectedIndexChanged(object sender, EventArgs e) { if (this.currentTournament == null) { return; } ITournPlayer selectedItem = (ITournPlayer)this.ddlPlayers.SelectedItem; if (selectedItem == null) { return; } ITournMatchArray byPlayer = this.currentTournament.Matches.GetByPlayer(selectedItem.ID); byPlayer.SortByRoundTable(); string format = "Round {0} Table {1}: {2} vs {3}\r\n"; this.txtHistory.Text = ""; foreach (ITournMatch tournMatch in (IEnumerable <ITournMatch>)byPlayer) { ITournPlayer tournPlayer = (ITournPlayer) new TournPlayer((IPlayer)Player.ByePlayer); foreach (ITournPlayer player in (IEnumerable <ITournPlayer>)tournMatch.Players) { if (player.ID != selectedItem.ID) { tournPlayer = player; break; } } string str = tournMatch.Status != TournMatchResult.Winner ? Enum.GetName(typeof(TournMatchResult), (object)tournMatch.Status) : (tournMatch.Winner == selectedItem.ID ? "Wins" : "Loses"); this.txtHistory.Text += string.Format(format, (object)tournMatch.Round, (object)(tournMatch.Table + this.currentTournament.TableOffset), (object)str, (object)tournPlayer.ToString()); } }
public bool HasPlayed(ITournPlayer p1, ITournPlayer p2) { if (this.ContainsKey(p1.ID)) { return(this[p1.ID].HasPlayer(p2.ID)); } return(this.ContainsKey(p2.ID) && this[p2.ID].HasPlayer(p1.ID)); }
public TournPlayer(ITournPlayer player) : base(player.PlayerId, player.PlayerName, player.MtgoId, player.MtgoUsername) { Wins = player.Wins; GameWins = player.GameWins; Losses = player.Losses; GameLosses = player.GameLosses; Ties = player.Ties; DropRound = player.DropRound; }
public int AddPlayer(ITournPlayer player) { if (!this.Players.HasPlayer(player.ID)) { this.Players.AddPlayer(player); this.Players.SortByIDByesLast(); } return(this.Players.Count); }
private void btnAssign_Click(object sender, EventArgs e) { ITournPlayer selectedItem = (ITournPlayer)this.ddlPlayers.SelectedItem; int result = 0; if (int.TryParse(this.txtSeat.Text, out result)) { selectedItem.AssignedSeat = result; } this.DisplaySeats(); }
private ITournPlayer GetPlayer(object objPlayer) { ITournPlayer tournPlayer = (ITournPlayer)null; if (objPlayer is ManualPairingObject) { tournPlayer = ((ManualPairingObject)objPlayer)._player; } if (objPlayer is ITournPlayer) { tournPlayer = (ITournPlayer)objPlayer; } return(tournPlayer == null ? (ITournPlayer)null : this.Tournament.Players.FindById(tournPlayer.ID)); }
private void ddlPlayers_SelectedIndexChanged(object sender, EventArgs e) { if (this.ddlPlayers.SelectedIndex < 0) { return; } ITournPlayer selectedItem = (ITournPlayer)this.ddlPlayers.SelectedItem; if (selectedItem.AssignedSeat < 0) { this.txtSeat.Text = ""; } else { this.txtSeat.Text = selectedItem.AssignedSeat.ToString(); } }
public TournMatch(ITournPlayer player1, ITournPlayer player2, int round) { if (player1 == null) { throw new ArgumentException("Player1 cannot be null"); } if (player1 == player2) { throw new ArgumentException("Player1 cannot equal player2"); } Player1 = player1; Player2 = player2; Round = round; if (player2 != null) { return; } Player1.Wins = 2; CurrentGame = -1; }
public ManualPairingObject(ITournPlayer player) { this._player = player; }
public TournMatch(ITournPlayer player1, ITournPlayer player2, int round, int player1Wins, int player2Wins, int ties) : this(player1, player2, round) { Player1Wins = player1Wins; Player2Wins = player2Wins; Ties = ties; }
private void ddlDroppedPlayers_SelectedIndexChanged(object sender, EventArgs e) { if (this.CurrentTournament == null) { int num = (int)MessageBox.Show("Error reading tournament info"); this.DialogResult = DialogResult.Cancel; this.Close(); } if (this.ddlDroppedPlayers.SelectedIndex < 0) { int num1 = (int)MessageBox.Show("Invalid Player"); } else { this.currentPlayer = (ITournPlayer)this.ddlDroppedPlayers.SelectedItem; this.listCurrentPairings.Items.Clear(); this.listNewPairings.Items.Clear(); int round = this.CurrentTournament.CurrentRound - 1; ITournMatchArray byRound = this.CurrentTournament.Matches.GetByPlayer(this.currentPlayer.ID).GetByRound(round); if (byRound.Count == 0) { int num2 = (int)MessageBox.Show("Player was not in previous round"); } else { if (byRound[0].Players[0].ID == byRound[0].Winner) { this.chkPrevRoundP1Drop.Text = byRound[0].Players[0].FullNameWithId + " (Winner)"; this.chkPrevRoundP2Drop.Text = byRound[0].Players[1].FullNameWithId; } else if (byRound[0].Players[1].ID == byRound[0].Winner) { this.chkPrevRoundP1Drop.Text = byRound[0].Players[0].FullNameWithId; this.chkPrevRoundP2Drop.Text = byRound[0].Players[1].FullNameWithId + " (Winner)"; } else { this.chkPrevRoundP1Drop.Text = string.Format("{0} ({1})", (object)byRound[0].Players[0].FullNameWithId, (object)byRound[0].StatusText); this.chkPrevRoundP2Drop.Text = byRound[0].Players[1].FullNameWithId; } this.chkPrevRoundP1Drop.Checked = byRound[0].Players[0].DropRound == round; this.chkPrevRoundP2Drop.Checked = byRound[0].Players[1].DropRound == round; this.radioREOSwapDrops.Enabled = byRound[0].Players[0].IsActive ^ byRound[0].Players[1].IsActive; this.CurrentMatches = this.CurrentTournament.Matches.GetPairedDown(this.CurrentTournament.CurrentRound); foreach (ITournMatch currentMatch in (IEnumerable <ITournMatch>) this.CurrentMatches) { if (currentMatch.Players.HasPlayer(Player.BYE_ID) && currentMatch.Winner != Player.BYE_ID) { this.playerVsBye = currentMatch; this.radioREOVsCurrentPlayerWithBye.Enabled = true; using (IEnumerator <ITournPlayer> enumerator = currentMatch.Players.GetEnumerator()) { while (enumerator.MoveNext()) { ITournPlayer current = enumerator.Current; if (!current.IsBye) { this.radioREOVsCurrentPlayerWithBye.Text = string.Format("Pair vs. Bye Player: {0} ({1} pts)", (object)current.FullNameWithId, (object)current.Points); } } break; } } } this.radioREOByeLoss.Enabled = true; this.radioREOByeWin.Enabled = true; this.radioREORePairings.Enabled = true; byRound.SortByPoints(); for (int index = this.CurrentMatches.Count - 1; index >= 0; --index) { if (this.CurrentMatches[index].Points > this.currentPlayer.Tie1_Wins) { this.CurrentMatches.RemoveAt(index); } } Random random = new Random(); for (int pointCount = 0; pointCount <= this.currentPlayer.Tie1_Wins; ++pointCount) { if (this.CurrentMatches.GetByPoints(this.CurrentTournament.CurrentRound, pointCount).Count == 0) { ITournMatchArray byPoints = this.CurrentTournament.Matches.GetByPoints(this.CurrentTournament.CurrentRound, pointCount); if (byPoints.Count > 0) { this.CurrentMatches.AddMatch(byPoints[random.Next(byPoints.Count - 1)]); } } } this.CurrentMatches.SortByPoints(); foreach (ITournMatch currentMatch in (IEnumerable <ITournMatch>) this.CurrentMatches) { this.listCurrentPairings.Items.Add((object)string.Format("#{0}: {1} ({2} pts) vs {3} ({4} pts)", (object)(currentMatch.Table + this.CurrentTournament.TableOffset), (object)currentMatch.Players[0].FullNameWithId, (object)currentMatch.Players[0].Tie1_Wins, (object)currentMatch.Players[1].FullNameWithId, (object)currentMatch.Players[1].Tie1_Wins)); } this.PendingMatches.Clear(); ITournPlayer player1 = this.currentPlayer; foreach (ITournMatch currentMatch in (IEnumerable <ITournMatch>) this.CurrentMatches) { TournMatch tournMatch = new TournMatch(currentMatch); this.PendingMatches.AddMatch((ITournMatch)tournMatch); ITournPlayer currentPlayer = this.currentPlayer; ITournPlayer player2 = !tournMatch.Players[0].IsBye ? (!tournMatch.Players[1].IsBye ? (tournMatch.Players[0].Tie1_Wins <= tournMatch.Players[1].Tie1_Wins ? (tournMatch.Players[0].Tie1_Wins >= tournMatch.Players[1].Tie1_Wins ? tournMatch.Players[random.Next(tournMatch.Players.Count - 1)] : tournMatch.Players[0]) : tournMatch.Players[1]) : tournMatch.Players[1]) : tournMatch.Players[0]; tournMatch.Players.RemovePlayer(player2); tournMatch.Players.AddPlayer(player1); tournMatch.Winner = Player.BYE_ID; tournMatch.Status = TournMatchResult.Incomplete; player1 = player2; } if (!player1.IsBye) { ITournMatch blankMatch = this.CreateBlankMatch(); blankMatch.Players.AddPlayer(player1); blankMatch.Players.AddPlayer((ITournPlayer) new TournPlayer((IPlayer)Player.ByePlayer)); blankMatch.Winner = player1.ID; blankMatch.Status = TournMatchResult.Winner; this.PendingMatches.AddMatch(blankMatch); } foreach (ITournMatch pendingMatch in (List <ITournMatch>) this.PendingMatches) { this.listNewPairings.Items.Add((object)string.Format("#{0}: {1} ({2} pts) vs {3} ({4} pts)", (object)(pendingMatch.Table + this.CurrentTournament.TableOffset), (object)pendingMatch.Players[0].FullNameWithId, (object)pendingMatch.Players[0].Tie1_Wins, (object)pendingMatch.Players[1].FullNameWithId, (object)pendingMatch.Players[1].Tie1_Wins)); } this.chkPrintNewResultSlips.Enabled = true; } } }
private void btnApplyChanges_Click(object sender, EventArgs e) { this.currentPlayer.DropRound = 0; this.currentPlayer.DropReason = CutType.Active; if (this.radioREOByeLoss.Checked) { ITournMatch blankMatch = this.CreateBlankMatch(); blankMatch.Players.AddPlayer(this.currentPlayer); blankMatch.Players.AddPlayer((ITournPlayer) new TournPlayer((IPlayer)Player.ByePlayer)); blankMatch.Winner = Player.BYE_ID; blankMatch.Status = TournMatchResult.Winner; this.PendingMatches.Clear(); this.NewMatches.AddMatch(blankMatch); } else if (this.radioREOByeWin.Checked) { ITournMatch blankMatch = this.CreateBlankMatch(); blankMatch.Players.AddPlayer(this.currentPlayer); blankMatch.Players.AddPlayer((ITournPlayer) new TournPlayer((IPlayer)Player.ByePlayer)); blankMatch.Winner = this.currentPlayer.ID; blankMatch.Status = TournMatchResult.Winner; this.PendingMatches.Clear(); this.NewMatches.AddMatch(blankMatch); } else if (this.radioREORePairings.Checked) { this.NewMatches.Append((ITournMatchArray)this.PendingMatches); this.PendingMatches.Clear(); } else if (this.radioREOSwapDrops.Checked) { int round = this.CurrentTournament.CurrentRound - 1; ITournMatchArray byPlayer1 = this.CurrentTournament.Matches.GetByPlayer(this.currentPlayer.ID); if (byPlayer1.Count == 0) { int num = (int)MessageBox.Show("Error"); return; } ITournMatchArray byRound1 = byPlayer1.GetByRound(round); if (byRound1.Count > 1) { int num = (int)MessageBox.Show("Error"); return; } ITournPlayer byId = this.CurrentTournament.Players.FindById(byRound1[0].GetOpponentId(this.currentPlayer.ID)); byId.DropRound = round; byId.DropReason = CutType.Drop; ITournMatchArray byPlayer2 = this.CurrentTournament.Matches.GetByPlayer(byId.ID); if (byPlayer2.Count == 0) { int num = (int)MessageBox.Show("Error"); return; } ITournMatchArray byRound2 = byPlayer2.GetByRound(this.CurrentTournament.CurrentRound); if (byRound2.Count > 1) { int num = (int)MessageBox.Show("Error"); return; } TournMatch tournMatch = new TournMatch(byRound2[0]); tournMatch.Players.RemovePlayer(byId); tournMatch.Players.AddPlayer(this.currentPlayer); tournMatch.Winner = Player.BYE_ID; tournMatch.Status = TournMatchResult.Incomplete; this.PendingMatches.Clear(); this.NewMatches.AddMatch((ITournMatch)tournMatch); } else if (this.radioREOVsCurrentPlayerWithBye.Checked) { this.playerVsBye.Players.SortByIDByesLast(); this.playerVsBye.Players.RemoveAt(this.playerVsBye.Players.Count - 1); this.playerVsBye.Players.AddPlayer(this.currentPlayer); this.playerVsBye.Winner = Player.BYE_ID; this.playerVsBye.Status = TournMatchResult.Incomplete; this.PendingMatches.Clear(); this.NewMatches.AddMatch(this.playerVsBye); } this.DialogResult = DialogResult.OK; }
public object GetStandings() { var roundToGrab = CurrentRound; if (roundToGrab <= 0) { return(null); } if (Matches.GetByRound(CurrentRound).Any(c => !c.ReportedResult)) { roundToGrab = CurrentRound - 1; if (roundToGrab <= 0) { return(null); } } var matches = Matches.GetByRound(1, roundToGrab); foreach (var player in Players) { player.Losses = 0; player.GameLosses = 0; player.Wins = 0; player.GameWins = 0; player.Ties = 0; } foreach (var match in matches) { var player1 = Players.FindById(match.Player1.PlayerId); ITournPlayer player2 = null; player1.GameWins += match.Player1Wins; if (match.Player2 != null) { player2 = Players.FindById(match.Player2.PlayerId); player2.GameWins += match.Player2Wins; player2.GameLosses += match.Player1Wins; player1.GameLosses += match.Player2Wins; } if (match.Player2 == null || match.Player1Wins > match.Player2Wins) { player1.Wins++; } else if (player2 != null && match.Player2Wins > match.Player1Wins) { player2.Wins++; } } foreach (var player in Players) { var opponents = matches.Where(p => p.Player2 != null && (p.Player1.PlayerId == player.PlayerId || p.Player2.PlayerId == player.PlayerId)) .Select(p => Players.FindById(new[] { p.Player1, p.Player2 }.Single(sp => sp.PlayerId != player.PlayerId).PlayerId)) .Distinct() .ToArray(); player.TieBreaker1 = (float)Math.Round((opponents.Select(o => Math.Max(0.33f, (float)o.Points / (3 * CurrentRound))).Sum() / opponents.Count()) * 100, 2); player.TieBreaker2 = (float)Math.Round(((float)player.GameWins / (player.GameWins + player.GameLosses)) * 100, 2); player.TieBreaker3 = (float)Math.Round((opponents.Select(o => Math.Max(0.33f, (float)o.GameWins / (o.GameWins + o.GameLosses))).Sum() / opponents.Count()) * 100, 2); if (float.IsNaN(player.TieBreaker1)) { player.TieBreaker1 = 33.33f; } if (float.IsNaN(player.TieBreaker2)) { player.TieBreaker2 = 33.33f; } if (float.IsNaN(player.TieBreaker3)) { player.TieBreaker3 = 33.33f; } } var i = 0; return(Players .OrderByDescending(p => p.Points) .ThenByDescending(p => p.TieBreaker1) .ThenByDescending(p => p.TieBreaker2) .ThenByDescending(p => p.TieBreaker3) .Select(p => new { Place = ++i, Player = p }).ToArray()); }
private void btnApplyChanges_Click(object sender, EventArgs e) { if (this.currentMatch == null) { int num1 = (int)MessageBox.Show("Invalid match"); } else { if (this.radioResultsPlayer1.Checked) { this.currentMatch.Winner = this.currentMatch.Players[0].ID; this.currentMatch.Status = TournMatchResult.Winner; } else if (this.radioResultsPlayer2.Checked) { this.currentMatch.Winner = this.currentMatch.Players[1].ID; this.currentMatch.Status = TournMatchResult.Winner; } else if (this.radioResultsDraw.Checked) { this.currentMatch.Winner = Player.BYE_ID; this.currentMatch.Status = TournMatchResult.Draw; } else if (this.radioResultsDoubleLoss.Checked) { this.currentMatch.Winner = Player.BYE_ID; this.currentMatch.Status = TournMatchResult.DoubleLoss; } else if (this.radioResultsUnreported.Checked) { this.currentMatch.Winner = Player.BYE_ID; this.currentMatch.Status = TournMatchResult.Incomplete; } this.currentTournament.ClearTies(); if (this.chkPlayerSwap.Checked && this.p1match != null && this.p2match != null) { ITournPlayer player1 = (ITournPlayer)null; ITournPlayer player2 = (ITournPlayer)null; for (int index = 0; index < this.p1match.Players.Count; ++index) { ITournPlayer player3 = this.p1match.Players[index]; if (this.currentMatch.Players.HasPlayer(player3.ID)) { player1 = player3; } } for (int index = 0; index < this.p2match.Players.Count; ++index) { ITournPlayer player3 = this.p2match.Players[index]; if (this.currentMatch.Players.HasPlayer(player3.ID)) { player2 = player3; } } if (player2 != null && player1 != null && player1.ID != player2.ID) { this.p1match.Players.RemovePlayer(player1); this.p2match.Players.RemovePlayer(player2); this.p1match.Players.AddPlayer(player2); this.p2match.Players.AddPlayer(player1); this.newMatches.AddMatch(this.p1match); this.newMatches.AddMatch(this.p2match); } } int num2 = (int)MessageBox.Show("Change Complete"); this.ResetForm(); } }
public int CompareRank(ITournPlayer other) { return(new TournPlayerSort_ByRank().Compare((ITournPlayer)this, other)); }
private void DialogNewPenalty_Load(object sender, EventArgs e) { if (this.CurrentTournament != null) { ITournPlayer[] array1 = new ITournPlayer[this.CurrentTournament.Players.Count]; this.CurrentTournament.Players.SortByLastname(); this.CurrentTournament.Players.CopyTo(array1, 0); this.ddlPlayers.Items.AddRange((object[])array1); if (!this.CurrentPenalty.Player.IsBye) { for (int index = 0; index < this.ddlPlayers.Items.Count; ++index) { if (((IPlayer)this.ddlPlayers.Items[index]).ID == this.CurrentPenalty.Player.ID) { this.ddlPlayers.SelectedIndex = index; break; } } } TournStaffArray tournStaffArray = new TournStaffArray(); foreach (TournStaff tournStaff in (IEnumerable <ITournStaff>) this.CurrentTournament.Staff) { if (tournStaff.Position == StaffPosition.Judge || tournStaff.Position == StaffPosition.JudgeTeamLead || (tournStaff.Position == StaffPosition.HeadJudge || tournStaff.Position == StaffPosition.AssistantHeadJudge)) { tournStaffArray.Add((ITournStaff)tournStaff); } } ITournStaff[] array2 = new ITournStaff[tournStaffArray.Count]; tournStaffArray.SortByLastname(); tournStaffArray.CopyTo(array2, 0); this.ddlJudges.Items.AddRange((object[])array2); if (!this.CurrentPenalty.Judge.IsBye) { for (int index = 0; index < this.ddlJudges.Items.Count; ++index) { if (((IPlayer)this.ddlJudges.Items[index]).ID == this.CurrentPenalty.Judge.ID) { this.ddlJudges.SelectedIndex = index; break; } } } } foreach (InfractionEnum inf in Enum.GetValues(typeof(InfractionEnum))) { this.ddlInfraction.Items.Add((object)new InfractionListItem(inf)); } if (this.CurrentPenalty.Infraction != InfractionEnum.None) { this.ddlInfraction.SelectedIndex = this.ddlInfraction.FindString(PenaltyClass.GetName(this.CurrentPenalty.Infraction)); } else { this.ddlInfraction.SelectedIndex = 0; } foreach (PenaltyEnum key in CommonEnumLists.PenaltyEnumNames.Keys) { ListItemPenaltyEnum listItemPenaltyEnum = new ListItemPenaltyEnum(key); this.ddlPenalty.Items.Add((object)listItemPenaltyEnum); if (listItemPenaltyEnum.Value == this.CurrentPenalty.Penalty) { this.ddlPenalty.SelectedItem = (object)listItemPenaltyEnum; } } this.txtNotes.Text = this.CurrentPenalty.Notes; this.txtRound.Text = this.CurrentPenalty.Round.ToString(); }