Работа со списком List<> - C#
Формулировка задачи:
Здравствуйте! Есть задание реализовать футбольный матч. Есть класс с именем и возрастом игрока
Есть класс в котором в зависимости от возраста игрока генерируется его уровень игры
Помогите сделать класс Team реализующий список добавленных игроков в основной программе посредством List<Player>, что бы можно было суммировать их командный уровень игры а потом сравнить для определения результата, а то я чет совсем запутался.
Пока что он у меня может только выводить уровень игры команды, да и то сравнить две команды не удается
Вот тут есть еще класс Game
ну и основная программа
namespace FoothballGame
{
abstract class Person
{
protected string abstractName;
protected int abstractAge;
}
}class Player:Person
{
int lvl;
public Player(string name, int age)
{
abstractName = name;
abstractAge = age;
}
public int Player_LVL()
{
Random r=new Random();
for (int i = 0; i < 5; i++)
if (abstractAge < 30) lvl = r.Next(20, 70);
else lvl = r.Next(30, 50);
return lvl;
}
public string Name{get { return abstractName;}}
public int Age {get { return abstractAge;}}
}class Team
{
public int getTeamLvl(List<Player> players)
{
int lvl = 0;
foreach (Player pl in players)
{
lvl += pl.Player_LVL();
}
return lvl;
}
} class Game
{
public string Winner(int firstTeam, int secondTeam)
{
if (firstTeam > secondTeam) return "Победил Шахтер!";
else return "Металист чемпион!";
}
}class Program
{
static void Main(string[] args)
{
List<Player>sostav1=new List<Player>();
List<Player> sostav2 = new List<Player>();
Team masterLevel = new Team();
Console.WriteLine("Шахтер");
sostav1.Add(new Player("Shevchenko", 32));
sostav1.Add(new Player("Voronin", 29));
foreach (Player player in sostav1)
{
Console.Write(player.Name + " ");
Console.Write(player.Age + " ");
Console.WriteLine("Rank playing: " + player.Player_LVL());
}
Console.WriteLine("Уровень игры первой команды "+masterLevel.getTeamLvl(sostav1));
Console.WriteLine();
Console.ReadKey();
Console.WriteLine("Металист");
sostav2.Add(new Player("Petrenko", 25));
sostav2.Add(new Player("Ivanov", 33));
foreach (Player player in sostav2)
{
Console.Write(player.Name + " ");
Console.Write(player.Age + " ");
Console.WriteLine("Rank playing: " + player.Player_LVL());
}
Console.WriteLine("Уровень игры второй команды " + masterLevel.getTeamLvl(sostav2));
Console.ReadKey();
Game rezult = new Game();
Console.WriteLine(rezult.Winner(masterLevel.getTeamLvl(sostav1), masterLevel.getTeamLvl(sostav2)));
Console.ReadKey();
}Решение задачи: «Работа со списком List<>»
textual
Листинг программы
class Team
{
string team_name;
string trainerName;
List<Player> Players=new List<Player>();
int team_level;
Trainer trainer;
public Team(string team_name, string trainername, List<Player>players)
{
trainerName = trainername;
trainer=new Trainer(trainername);
this.team_name = team_name;
Players = players;
int i = 0;
Console.WriteLine("Team "+Team_name);
foreach (Player player in players)
{
i++;
Console.Write(i+". "+player.Name + " Age: "+player.Age+"\n Personal level: "+player.Player_LVL());
Console.WriteLine();
team_level+= player.Player_LVL();
}
Console.WriteLine("Their treaner is: "+trainer.TrainerName+"He is "+trainer.Trainer_Age()+". Hes expirience in trainning costs: "+trainer.TrainLevel());
team_level *= trainer.TrainLevel();
Thread.Sleep(100);
}
public int Team_level
{get { return team_level;}}
public string Team_name
{ get { return team_name; } }
public string TrainerName
{get { return trainerName; } }
}