Exemple #1
0
        private AvailablePlayer FindBestPlayerForPosition(Point2 GridPos, List <AvailablePlayer> avail)
        {
            PlayerAdapter    pa = new PlayerAdapter();
            FormationAdapter fa = new FormationAdapter();

            SuitablePlayerInfo suit = fa.SuitablePlayerPositions(GridPos);
            AvailablePlayer    best = null;

            foreach (PlayerPosition pos in suit.Positions)
            {
                foreach (PlayerPositionSide side in suit.Sides)
                {
                    best = (from ap in avail
                            where ap.Side == side && ap.Pos == pos
                            select ap).FirstOrDefault();

                    if (best != null)
                    {
                        break;
                    }
                }

                if (best != null)
                {
                    break;
                }
            }

            if (best == null)
            {
                best = (from ap in avail
                        orderby ap.Rating descending
                        select ap).FirstOrDefault();
            }

            return(best);
        }
Exemple #2
0
        public SuitablePlayerInfo SuitablePlayerPositions(int x, int y)
        {
            List <PlayerPosition>     BestPos  = new List <PlayerPosition>();
            List <PlayerPositionSide> BestSide = new List <PlayerPositionSide>();

            switch (y)
            {
            case 0:
                BestPos.Add(PlayerPosition.Goalkeeper);
                break;

            case 1:
                BestPos.Add(PlayerPosition.Defender);
                break;

            case 2:
                BestPos.Add(PlayerPosition.Defender);
                BestPos.Add(PlayerPosition.Midfielder);
                break;

            case 3:
                BestPos.Add(PlayerPosition.Midfielder);
                BestPos.Add(PlayerPosition.Midfielder);
                break;

            case 4:
                BestPos.Add(PlayerPosition.Midfielder);
                BestPos.Add(PlayerPosition.Attacker);
                break;

            case 5:
                BestPos.Add(PlayerPosition.Attacker);
                break;

            case 6:
                BestPos.Add(PlayerPosition.Striker);
                break;

            default:
                BestPos.Add(PlayerPosition.None);
                break;
            }

            switch (x)
            {
            case 0:
                BestSide.Add(PlayerPositionSide.Left);
                break;

            case 1:
                BestSide.Add(PlayerPositionSide.Centre);
                BestSide.Add(PlayerPositionSide.Left);
                break;

            case 2:
                BestSide.Add(PlayerPositionSide.Centre);
                break;

            case 3:
                BestSide.Add(PlayerPositionSide.Centre);
                BestSide.Add(PlayerPositionSide.Right);
                break;

            case 4:
                BestSide.Add(PlayerPositionSide.Right);
                break;
            }

            SuitablePlayerInfo retVal = new SuitablePlayerInfo();

            retVal.Positions = BestPos;
            retVal.Sides     = BestSide;

            return(retVal);
        }