public static GuessFirst NewGame(int season) { GuessFirst gf = new GuessFirst(); gf.gameId = ""; gf.questionCount = 10; gf.questions = GuessFistQuestion.GetQuestionsRandomly(gf.questionCount, season); return(gf); }
public static GuessFistQuestion[] GetQuestionsRandomly(int questionCount, int season) { string sql = " select * from QuickGuessList where ";// QuickGuessList_season = " + season.ToString(); if (season == 0) { sql = sql + " QuickGuessList_season >1 and QuickGuessList_season < 7 "; } else { sql = sql + " QuickGuessList_season = " + season.ToString(); } SqlDataAdapter da = new SqlDataAdapter(sql, System.Configuration.ConfigurationManager.AppSettings["constr"].Trim()); DataTable dt = new DataTable(); da.Fill(dt); da.Dispose(); Random rnd = new Random(DateTime.Now.Millisecond); GuessFistQuestion[] gfqArr = new GuessFistQuestion[questionCount]; for (int i = 0; i < questionCount && i < dt.Rows.Count; i++) { int curIndex = rnd.Next(0, dt.Rows.Count); try { gfqArr[i] = new GuessFistQuestion(); DataRow dr = dt.Rows[curIndex]; gfqArr[i].id = int.Parse(dr["QuickGuessList_id"].ToString()); gfqArr[i].answer = dr["QuickGuessList_answer"].ToString().Trim(); gfqArr[i].answercount = dr["QuickGuessList_answer"].ToString().Trim().Length; gfqArr[i].prompt = new string[4]; gfqArr[i].prompt[0] = dr["QuickGuessList_memo1"].ToString().Trim(); gfqArr[i].prompt[1] = dr["QuickGuessList_memo2"].ToString().Trim(); gfqArr[i].prompt[2] = dr["QuickGuessList_memo3"].ToString().Trim(); gfqArr[i].prompt[3] = dr["QuickGuessList_memo4"].ToString().Trim(); gfqArr[i].promptimg = dr["QuickGuessList_memoimg"].ToString().Trim(); gfqArr[i].question = dr["QuickGuessList_question"].ToString().Trim(); string optionStr = dr["QuickGuessList_options"].ToString().Trim(); if (optionStr.Trim().Equals("")) { optionStr = dr["QuickGuessList_answer"].ToString().Trim(); gfqArr[i].options = new char[24]; for (int j = 0; j < optionStr.Length; j++) { gfqArr[i].options[j] = optionStr.Substring(j, 1).ToCharArray()[0]; } for (int j = 0; j < 24 - optionStr.Trim().Length; j++) { gfqArr[i].options[j + optionStr.Length] = '测'; } } else { gfqArr[i].options = GetOptions(gfqArr[i].answer, ((dr["QuickGuessList_options"].ToString().Trim().Length >= 22) ? dr["QuickGuessList_options"].ToString().Trim() : dr["QuickGuessList_options"].ToString().Trim() + dr["QuickGuessList_memo4"].ToString().Trim()), 24).ToCharArray(); } dt.Rows.RemoveAt(curIndex); } catch { i--; Thread.Sleep(1000); } } return(gfqArr); }
public static GuessFistQuestion[] GetQuestionsRandomly(int questionCount, int season) { string sql = " select * from QuickGuessList where ";// QuickGuessList_season = " + season.ToString(); if (season == 0) { sql = sql + " QuickGuessList_season >1 and QuickGuessList_season < 7 "; } else { sql = sql + " QuickGuessList_season = " + season.ToString(); } SqlDataAdapter da = new SqlDataAdapter(sql, System.Configuration.ConfigurationManager.AppSettings["constr"].Trim()); DataTable dt = new DataTable(); da.Fill(dt); da.Dispose(); Random rnd = new Random(DateTime.Now.Millisecond); GuessFistQuestion[] gfqArr = new GuessFistQuestion[questionCount]; for (int i = 0; i < questionCount && i < dt.Rows.Count ; i++) { int curIndex = rnd.Next(0, dt.Rows.Count); try { gfqArr[i] = new GuessFistQuestion(); DataRow dr = dt.Rows[curIndex]; gfqArr[i].id = int.Parse(dr["QuickGuessList_id"].ToString()); gfqArr[i].answer = dr["QuickGuessList_answer"].ToString().Trim(); gfqArr[i].answercount = dr["QuickGuessList_answer"].ToString().Trim().Length; gfqArr[i].prompt = new string[4]; gfqArr[i].prompt[0] = dr["QuickGuessList_memo1"].ToString().Trim(); gfqArr[i].prompt[1] = dr["QuickGuessList_memo2"].ToString().Trim(); gfqArr[i].prompt[2] = dr["QuickGuessList_memo3"].ToString().Trim(); gfqArr[i].prompt[3] = dr["QuickGuessList_memo4"].ToString().Trim(); gfqArr[i].promptimg = dr["QuickGuessList_memoimg"].ToString().Trim(); gfqArr[i].question = dr["QuickGuessList_question"].ToString().Trim(); string optionStr = dr["QuickGuessList_options"].ToString().Trim(); if (optionStr.Trim().Equals("")) { optionStr = dr["QuickGuessList_answer"].ToString().Trim(); gfqArr[i].options = new char[24]; for (int j = 0; j < optionStr.Length; j++) { gfqArr[i].options[j] = optionStr.Substring(j, 1).ToCharArray()[0]; } for (int j = 0; j < 24 - optionStr.Trim().Length; j++) { gfqArr[i].options[j + optionStr.Length] = '测'; } } else { gfqArr[i].options = GetOptions(gfqArr[i].answer, ((dr["QuickGuessList_options"].ToString().Trim().Length >= 22) ? dr["QuickGuessList_options"].ToString().Trim() : dr["QuickGuessList_options"].ToString().Trim() + dr["QuickGuessList_memo4"].ToString().Trim()), 24).ToCharArray(); } dt.Rows.RemoveAt(curIndex); } catch { i--; Thread.Sleep(1000); } } return gfqArr; }