合并更新

parent e96ed1de
...@@ -12,7 +12,8 @@ namespace Lottery ...@@ -12,7 +12,8 @@ namespace Lottery
try try
{ {
Ping ping = new Ping(); Ping ping = new Ping();
PingReply reply = ping.Send("www.baidu.com"); //PingReply reply = ping.Send("www.baidu.com");
PingReply reply = ping.Send("www.random.org");
ping.Dispose(); ping.Dispose();
return reply.Status == IPStatus.Success; return reply.Status == IPStatus.Success;
} }
......
...@@ -45,30 +45,35 @@ namespace Lottery ...@@ -45,30 +45,35 @@ namespace Lottery
IReadOnlyList<int> randoms = RandomOrg.GetRandomsAsync(persons.Count).Result; IReadOnlyList<int> randoms = RandomOrg.GetRandomsAsync(persons.Count).Result;
//生成人员排序随机数 //生成人员排序随机数
IReadOnlyList<int> indexRandoms = RandomOrg.GetIntRandomsAsync(persons.Count).Result; IReadOnlyList<int> indexRandoms = RandomOrg.GetIntRandomsAsync(persons.Count).Result;
Random updateRandom = new Random();
if (indexRandoms != null) if (indexRandoms != null)
{ {
//计分方式1:根据返回的随机数加金币 for (int j = 0; j < indexRandoms.Count; j++)
//计分方式2:看命
//计分方式3:随机加上一个人的金币,看能否逆袭
//其他方式:可在下方对NewGrade属性进行操作
persons[j].NewGrade += (randoms[j] +
//(Math.Abs(persons[j].GetHashCode() << 1) % persons.Count) +
persons[randoms[j] - 1].OldGrade);
if (i == 3 && persons[j].BaseGrade > 0)
{ {
//计分方式1:根据返回的随机数加金币 //计分方式1:根据返回的随机数加金币
//计分方式2:看命 //计分方式2:看命
//计分方式3:随即加上一个人的金币,看能否逆袭 //计分方式3:随即加上一个人的金币,看能否逆袭
//其他方式:可在下方对NewGrade属性进行操作 //其他方式:可在下方对NewGrade属性进行操作
int index = indexRandoms[j]; if (i > 1)
persons[j].NewGrade += (randoms[index] + {
(Math.Abs(persons[index].GetHashCode() << 1) % persons.Count) + // 计分方式3:bug——第二轮发金币时越排在前面的人获取到的上上一轮的NewGrade可能性越大,越排在后面的人获取到上轮NewGrade
persons[randoms[index] - 1].OldGrade); // 解决策略->当前面的人抽取到前面已更新的OldGrade则照旧;若抽到后面的人,则增加一次计分方式1操作以此弥补差值
int randomIndex = randoms[j] - 1 >= j ? updateRandom.Next(j) : randoms[j] - 1;
if (i == 3 && persons[index].BaseGrade > 0) int randomValue = randomIndex == 0 ? randoms[j] : persons[randomIndex].OldGrade;
persons[j].NewGrade += (randoms[j] +
// (Math.Abs(persons[j].GetHashCode() << 1) % persons.Count) +
randomValue);
}
else
{ {
persons[index].NewGrade += Person.GetRandomBaseGrade(persons[index].BaseGrade); int index = indexRandoms[j];
persons[j].NewGrade += (randoms[index] +
//(Math.Abs(persons[index].GetHashCode() << 1) % persons.Count) +
persons[randoms[index] - 1].OldGrade);
}
if (i == 3 && persons[j].BaseGrade > 0)
{
persons[j].NewGrade += Person.GetRandomBaseGrade(persons[j].BaseGrade);
} }
} }
} }
...@@ -76,13 +81,26 @@ namespace Lottery ...@@ -76,13 +81,26 @@ namespace Lottery
{ {
for (int j = 0; j < persons.Count; j++) for (int j = 0; j < persons.Count; j++)
{ {
//计分方式1:根据返回的随机数加金币 if (i > 1)
//计分方式2:看命 {
//计分方式3:随即加上一个人的金币,看能否逆袭 // 计分方式3:bug——第二轮发金币时越排在前面的人获取到的上上一轮的NewGrade可能性越大,越排在后面的人获取到上轮NewGrade
//其他方式:可在下方对NewGrade属性进行操作 // 解决策略->当前面的人抽取到前面已更新的OldGrade则照旧;若抽到后面的人,则增加一次计分方式1操作以此弥补差值
persons[j].NewGrade += (randoms[j] + int randomIndex = randoms[j] - 1 >= j ? updateRandom.Next(j) : randoms[j] - 1;
(Math.Abs(persons[j].GetHashCode() << 1) % persons.Count) + int randomValue = randomIndex == 0 ? randoms[j] : persons[randomIndex].OldGrade;
persons[randoms[j] - 1].OldGrade); persons[j].NewGrade += (randoms[j] +
// (Math.Abs(persons[j].GetHashCode() << 1) % persons.Count) +
randomValue);
}
else
{
//计分方式1:根据返回的随机数加金币
//计分方式2:看命
//计分方式3:随即加上一个人的金币,看能否逆袭
//其他方式:可在下方对NewGrade属性进行操作
persons[j].NewGrade += (randoms[j] +
//(Math.Abs(persons[j].GetHashCode() << 1) % persons.Count) +
persons[randoms[j] - 1].OldGrade);
}
if (i == 3 && persons[j].BaseGrade > 0) if (i == 3 && persons[j].BaseGrade > 0)
{ {
......
...@@ -48,7 +48,7 @@ namespace Lottery ...@@ -48,7 +48,7 @@ namespace Lottery
using (HttpClient httpClient = new HttpClient()) using (HttpClient httpClient = new HttpClient())
{ {
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3936.0 Safari/537.36 Edg/79.0.301.2"); httpClient.DefaultRequestHeaders.TryAddWithoutValidation("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3936.0 Safari/537.36 Edg/79.0.301.2");
var resp = await httpClient.GetAsync($"https://www.random.org/integer-sets/?sets=1&num={length}&min=0&max={length-1}&commas=on&order=random&format=plain&rnd=new"); var resp = await httpClient.GetAsync($"https://www.random.org/integer-sets/?sets=1&num={length}&min=0&max={length}&commas=on&order=random&format=plain&rnd=new");
if (resp.IsSuccessStatusCode) if (resp.IsSuccessStatusCode)
{ {
string content = await resp.Content.ReadAsStringAsync(); string content = await resp.Content.ReadAsStringAsync();
...@@ -60,8 +60,7 @@ namespace Lottery ...@@ -60,8 +60,7 @@ namespace Lottery
{ {
} }
var r = new Random(length); return null;
return Enumerable.Range(0, length).Select(p => r.Next(1, length + 1)).ToList();
} }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment