【问题标题】:Swapping data in arrays交换数组中的数据
【发布时间】:2016-12-03 01:13:38
【问题描述】:

我为积分制作了 Twitch 机器人,我现在需要 !top10 命令,我让它读取我的 points.ini 文件,如果包含我用来在 usernamesTop10 和 pointsTop10 数组中存储点数和用户名的 channelName。

我现在需要循环浏览整个文档并比较点数,然后如果 newUser 有更多点数,则交换点数和用户名。

这些是步骤:

1) 获取文件中的第一个用户名。
2) 获得该用户的积分。
3) 在各自的数组中记录两者。
4) 获取下一个用户名。
5) 获得该用户的积分。
6) 比较点与整个数组并在它们所在的点插入 比上一个人得分多,比下一个人得分少 person 重复步骤 4 到 6 直到文件结束

这里是代码:http://pastebin.com/PztMj9Nw(我无法通过这里,不知道为什么)

还没有完成,请问您能帮我吗?我猜我没那么聪明……

在此先感谢,感谢您的帮助!

【问题讨论】:

  • 请阅读How to Ask 并使用Tour,它至少会让您更了解 SO 的工作原理
  • 为什么要用文本文件保存分数?我觉得json会好很多。

标签: c# arrays compare points twitch


【解决方案1】:

也许从设计的角度来看一些帮助可能会有所帮助。

我假设您将当前的前 10 名存储在某个数组中?

如果是这样,您应该访问前 10 个数组并找到得分最低的用户。跟踪这个值。假设我们将此变量称为“阈值”。

  • 要更新前 10 名,请在每个用户上循环调用 GetPoints 文件。如果您发现一个用户的点数 > 阈值,则将最低的用户踢出前 10 名,并用这个新用户替换他们。请务必更新您的新阈值。

  • 重复此操作,直到您找不到任何得分超过您的阈值的用户。

  • 此外,如果您想保持前 10 名的顺序,您可以实现一个简单的排序算法。

【讨论】:

  • 是的,我存储在字符串 usernamesTop10 和 int pointsTop10 数组中,我怎样才能将最低用户踢出 top10?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 2016-12-17
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多