Hi
yesratday, i posted a question about List
I got an answer from Ricardo Rigutini. He suggested to use a class and only one List instead of three. I tried his suggestion but i'm stuck when i have to give points to the winner of each match (points[i] += 3;). I wonder to do that without other List.
I show you the code so far ... Thansk for help.
using System;
using System.Collections.Generic;
using System.Linq;
class Oef16
{
private class TeamScore
{
public string TeamName { get; set; }
public int Score { get; set; }
public TeamScore(string name)
{
TeamName = name;
}
public override string ToString()
{
if (Score < 10)
return "0" + Score + " " + TeamName;
else
return Score + " " + TeamName;
}
}
public static void Main()
{
int match;
Random rand = new Random();
List
{ new TeamScore("team A"), new TeamScore("team B"), new TeamScore("team C")};
List
for (int i = 0; i < teams.Count; i++)
points.Add(0);
for (int i = 0; i <= teams.Count - 1; i++)
{
for (int j = i + 1; j <= teams.Count - 1; j++)
{
match = rand.Next(1, 4); // 1 = team A wins, 2 = team B wins, 3 = even
switch (match)
{
case 1:
points[i] += 3;
break;
case 2:
points[j] += 3;
break;
default:
points[i] += 1;
points[j] += 1;
break;
}
}
Console.ReadLine();
}
int m = points.Max();
int p = points.IndexOf(m);
Console.WriteLine("Final ranking: the winner is " + teams[p] + " with " + points[p] + " points.");
List
for (int i = 0; i < teams.Count; i++)
teampoint.Add(" ");
for (int i = 0; i <= teams.Count - 1; i++)
{
if (points[i] < 10)
teampoint[i] = "0" + points[i] + " " + teams[i];
else
teampoint[i] = points[i] + " " + teams[i];
}
teams = teams.OrderBy(x => x.Score).ToList();
teams.Reverse();
foreach (string i in teampoint)
Console.WriteLine(i);
}
Riccardo RigutiniPosted Jun 19, 2022, 12:28 PM
Valerie MeunierPosted Jun 19, 2022, 2:17 PM