// 去掉一些不合今日的事件 private ActivityData filter(ActivityData activities) { // 周末的话,只留下 weekend = true 的事件 if (isWeekend()) { ActivityData result = new ActivityData(); result.Data = new List<Activity>(); for (var i = 0; i < activities.Data.Count; i++) { if (activities.Data[i].Weekend) { result.Data.Add(activities.Data[i]); } } return result; } return activities; }
// 从 activities 中随机挑选 size 个 private ActivityData pickRandomActivity(ActivityData activities, int size) { var picked_events = pickRandom(activities, size); return picked_events; }
private void Parse(ActivityData activities) { for (int i = 0; i < activities.Data.Count; ++i) { var name = activities.Data[i].Name; if (name.IndexOf(@"%v") != -1) { activities.Data[i].Name = name.Replace(@"%v", datar.varNames[random(iday, 12) % datar.varNames.Count]); } if (name.IndexOf(@"%t") != -1) { activities.Data[i].Name = name.Replace(@"%t", datar.tools[random(iday, 11) % datar.tools.Count]); } if (name.IndexOf(@"%l") != -1) { activities.Data[i].Name = name.Replace(@"%l", (random(iday, 12) % 247 + 30).ToString()); } } }
private void PickSpecials(ActivityData activities) { for (var i = 0; i < datar.specials.Count; i++) { var special = datar.specials[i]; if (iday == toIDay(special.Date)) { ActivityDesc d = new ActivityDesc(special.Name, special.Desc); if (special.Type == "good") { goodList.Add(d); } else { badList.Add(d); } } } }
// 从数组中随机挑选 size 个 private ActivityData pickRandom(ActivityData array, int size) { ActivityData result = new ActivityData(); result.Data = new List<Activity>(); for (var i = 0; i < array.Data.Count; i++) { result.Data.Add(array.Data[i]); } for (var j = 0; j < array.Data.Count - size; j++) { var index = random(iday, j) % result.Data.Count; result.Data.RemoveAt(index); } return result; }