public List <CRW_Question> GetCRW_QuestionByList(CRW_Level level) { List <CRW_Question> r = new List <CRW_Question>(); var list = TiKu.InitList(); Random random = new Random(); for (int index = 0; index < level.QuestionCount; index++) { int randomIndex = random.Next(TiKu.ListCount); var randTiKu = list[randomIndex]; CRW_Question toAdd = new CRW_Question(); toAdd.CRWTypeID = level.CRWTypeID; toAdd.No = index + 1; toAdd.Left = randTiKu.Left; toAdd.Symbol = randTiKu.Symbol; toAdd.Right = randTiKu.Right; toAdd.EqualsSymbol = randTiKu.EqualsSymbol; toAdd.Result = randTiKu.Result; toAdd.TTSMsg = "{0}{1}{2}".FormatWith(ToChineseNumber(toAdd.Left), ToChineseSymbol(toAdd.Symbol), ToChineseNumber(toAdd.Right)); toAdd.ChangeStatus(CRW_Question_Status.Remember); r.Add(toAdd); } return(r); }
/// <summary> /// 根据正确率 判断下一局的等级 /// </summary> public Tuple <CRW_Level, string> CalcLevel(CRW_Level level, List <CRW_Question> args) { // 语音 string ttsMsg = string.Empty; string levelChangeMsg = string.Empty; if (level == null) { throw new BusinessException("level is null"); } if (level.LevelNo <= 0) { throw new BusinessException("levelNo 少于 0"); } decimal correctPercentage = this.CheckCorrectPercentage(args); int tmpLevelNo = -9876; if (correctPercentage <= 65m) // 降级 { tmpLevelNo = level.LevelNo - 1; levelChangeMsg = "下降"; } else if (correctPercentage > 85m) // 升级 { tmpLevelNo = level.LevelNo + 1; levelChangeMsg = "上升"; } else // 等级不变 { tmpLevelNo = level.LevelNo; levelChangeMsg = "不变"; } if (tmpLevelNo <= 0) { tmpLevelNo = 1; } ttsMsg = "答题完毕, 正确率百分之{0}".FormatWith(CRWBll.ToChineseNumber(correctPercentage)); switch (levelChangeMsg) { case "上升": ttsMsg += "由于超过百分之{0}等级{1}".FormatWith(CRWBll.ToChineseNumber(85), levelChangeMsg); break; case "不变": ttsMsg += "由于是百分之{0}等级{1}".FormatWith(CRWBll.ToChineseNumber(correctPercentage), levelChangeMsg); break; case "下降": ttsMsg += "由于低于百分之{0}等级{1}".FormatWith(CRWBll.ToChineseNumber(65), levelChangeMsg); break; } return(new Tuple <CRW_Level, string>(new CRW_Level(tmpLevelNo, level.CRWTypeID), ttsMsg)); }
//void changeLevelForTest() //{ // this.ViewModel.CurrentIndex = null; // readLevel(); // calcQuestion(); //} private void readLevel() { CRWLog log = Client.Common.StaticInfo.InnerSQLiteDB.CRW_rLog(PageGamesList.Game_User, this.ViewModel.CRWTypeID); if (log.NextLevel.HasValue) { // var now = WebDateTime.Now; var now = DateTime.Now; var today = now.Date; var toAdd = new CRWLog() { UserID = log.UserID, CRWTypeID = this.ViewModel.CRWTypeID, Level = log.NextLevel.Value, DateValue = today.Ticks, DateDisplay = today.ToString("yyyy-MM-dd"), UpdateTimeValue = now.Ticks, UpdateTimeDisplay = now.ToString("yyyy-MM-dd HH:mm:ss.fff"), Percentage = null, NextLevel = null, UseTime = log.UseTime, UseTimeDisplay = log.UseTimeDisplay }; Client.Common.StaticInfo.InnerSQLiteDB.CRW_cLog(toAdd); // 再次获取 log = Client.Common.StaticInfo.InnerSQLiteDB.CRW_rLog(PageGamesList.Game_User, this.ViewModel.CRWTypeID); } CRW_Level level = new CRW_Level(log.Level, this.ViewModel.CRWTypeID); this.ViewModel.Level = level; #region 听力溯算 根据难度调整语速 if ( this.ViewModel.CRWTypeID == 2 && this.ViewModel.Level != null ) { App.TTS.SetSpeechRateSilent(this.ViewModel.Level.SpeechRate); } #endregion }
public Tuple <int, CRW_Question, CRW_Question> ReadNextQuestion(int?currentIndex, CRW_Level level, List <CRW_Question> questionList) { int index = 0; if (currentIndex.HasValue == false) { currentIndex = 0; } index = currentIndex.Value; CRW_Question toRemember = null; CRW_Question toAnswer = null; if (index <= level.RememberEndIndex) { toRemember = questionList[index]; toRemember.ChangeStatus(CRW_Question_Status.Remember); } if (index >= level.AnswerStartIndex && index <= level.MaxIndex) { toAnswer = questionList[index - level.SuDa]; toAnswer.ChangeStatus(CRW_Question_Status.Answer); } return(new Tuple <int, CRW_Question, CRW_Question> ( index + 1, toRemember, toAnswer )); }