/// <summary> /// 重新开始 /// </summary> /// <param name="token">Hash 客户端信息</param> /// <returns>Hash 结果信息</returns> public static Hash Restart(Hash token) { ClientData.Restart(token.ToInt("clientId")); ClientDinosaurData.Restart(token.ToInt("clientId")); return(new Hash((int)CodeType.OK, "成功", ClientData.GetByClientId(token.ToInt("clientId")))); }
/// <summary> /// 答题结果 /// </summary> /// <param name="token">Hash 客户端信息</param> /// <param name="dinosaurId">int 题目编号</param> /// <param name="result">int 答题结果</param> /// <returns>Hash 结果信息</returns> public static Hash Answer(Hash token, int dinosaurId, int result) { if (ClientDinosaurData.Answer(token.ToInt("clientId"), dinosaurId, result) > 0) { ClientData.Answer(token.ToInt("clientId"), result); Hash data = ClientData.GetByClientId(token.ToInt("clientId")); Hash rank = ClientData.GetRank(data.ToInt("clientId"), data.ToInt("score")); data["position"] = rank.ToFloat("position"); return(new Hash((int)CodeType.OK, "成功", data)); } return(new Hash((int)CodeType.DataBaseUnknonw, "数据库操作失败")); }
/// <summary> /// 获取下一个题目 /// </summary> /// <param name="token">Hash 客户端信息</param> /// <returns>Hash 结果信息</returns> public static Hash Assign(Hash token) { Random random = new Random(); Hash data = ClientDinosaurData.Assign(token.ToInt("clientId")); HashCollection names = DinosaurData.AllName(0).ToHashCollection("data"); data["length"] = names.Count; data["duration"] = token.ToInt("duration"); data["score"] = token.ToInt("score"); data["cards"] = token.ToInt("cards"); data["status"] = token.ToInt("status"); int indexAt = random.Next(0, 4); if (data.ToInt("dinosaurId") > 0) { HashCollection options = new HashCollection(); // 剔除当前题目 for (int i = 0; i < names.Count; i++) { if (names[i].ToString("name") == data.ToString("name")) { names.RemoveAt(i); } } // 添加选项 for (int i = 0; i < 4; i++) { if (i == indexAt) { options.Add(new Hash("{\"name\":\"" + data.ToString("name") + "\"}")); } else { int index = random.Next(0, names.Count); options.Add(names[i]); names.RemoveAt(index); } } data["options"] = options; return(new Hash((int)CodeType.OK, "成功", data)); } return(new Hash((int)CodeType.OK, "所有题目都答完了", data)); }