【发布时间】:2011-02-17 04:32:00
【问题描述】:
这更像是一个数学问题而不是编程问题,但它仍然包含一些编程。
这个程序从 IMDB 网站上的用户列表中抓取信息,并且应该显示所有输入列表中最受欢迎的名人。这行得通,只是显示不准确的结果。
这就是我所拥有的:
public List<Star[]> stars = new List<Star[]>();
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Processing...";
stars.Add(ParseList(textBox1.Text));
label1.Text = "Waiting.";
treeView1.Nodes.Clear();
List<Star> strs = new List<Star>();
foreach (Star[] stlst in stars)
{
foreach (Star s in stlst)
{
bool inalrdy = false;
int index = 0;
for (int i = 0; i < strs.Count; i++)
{
if (s.Name == strs[i].Name)
{
inalrdy = true;
index = i;
break;
}
}
if (inalrdy)
{
strs[index].Points += s.Points;
}
else
{
strs.Add(s);
}
}
}
foreach (Star s in strs)
{
treeView1.Nodes.Add(s.Points + ". " + s.Name);
}
}
即使没有相同的玩家,我该怎么做才能准确地对他们进行排名?
这对我来说非常重要,如果能得到答复,我将不胜感激。
【问题讨论】:
-
在这个例子中,你在哪里声明变量s?
-
所以你想要的是某种系统,可以跟踪谁击败/输给了其他所有玩家。我假设如果 a 击败 b 那么 b 在另一个结果中不能击败 a。
-
s 应该是 p,不小心改了。
-
这应该使用所有游戏的排名数据并创建准确的排行榜。
-
如果 plrs 是 List
那么你应该有 foreach (Player p in plrs) 而不是 foreach (Player[] pllst in plrs)