public static List <PlayerPackage> Reshuffle(List <PlayerPackage> ListOfPlayers) { if (ListOfPlayers == null) { return(null); //Skinuti kasnije } List <PlayerPackage> coppiedListOfPlayers = new List <PlayerPackage>(ListOfPlayers); List <PlayerPackage> listOfMatches = new List <PlayerPackage>(); int j = 0; System.Random random = new System.Random(System.DateTime.Now.Millisecond); PlayerPackage player = coppiedListOfPlayers[0]; if (coppiedListOfPlayers.Count == 2) { return(coppiedListOfPlayers); } while (coppiedListOfPlayers.Count > 0) { PlayerPackage enemy; PlayerPackage lastEnemy; coppiedListOfPlayers.Remove(player); if (_previousListOfMatches.Count > 0) { if (_previousListOfMatches.Contains(player)) { j = _previousListOfMatches.IndexOf(player); } if (_previousListOfMatches.Count == j + 1) { j = -1; } lastEnemy = _previousListOfMatches[j + 1]; if (coppiedListOfPlayers.Contains(lastEnemy)) { coppiedListOfPlayers.Remove(lastEnemy); enemy = coppiedListOfPlayers[random.Next(coppiedListOfPlayers.Count)]; coppiedListOfPlayers.Add(lastEnemy); } else { if (coppiedListOfPlayers.Count == 0) { listOfMatches.Add(player); continue; } enemy = coppiedListOfPlayers[random.Next(coppiedListOfPlayers.Count)]; } } else { return(ListOfPlayers); } listOfMatches.Add(player); player = enemy; } return(listOfMatches); }
public void MoveUnit(string playerUsername, FigurePackage unit) { PlayerPackage player = MatchManager.PlayerWithUsername(playerUsername); FigurePackage figure = player.Figures.Find(f => { return(f.NewRow == unit.OriginalRow && f.NewColumn == unit.OriginalColumn); }); player.Figures.Remove(figure); if (unit.NewRow != -1) { player.Figures.Add(unit); } }
public void RegisterPlayer(PlayerPackage myself) { MatchManager.RegisterPlayer(myself); }