diff --git a/.idea/.idea.QuestionSystem/.idea/vcs.xml b/.idea/.idea.QuestionSystem/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/.idea.QuestionSystem/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 2795a82..5a64716 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -4073,7 +4073,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1043.1398, y: -29.695} + m_AnchoredPosition: {x: 1236.3799, y: -27.195} m_SizeDelta: {x: 168.2402, y: 59.39} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &349522703 @@ -4680,7 +4680,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u6211\u7684\u5224\u65AD\u9898" + m_Text: "\u5355\u9009\u5224\u65AD\u9898" --- !u!222 &418911811 CanvasRenderer: m_ObjectHideFlags: 0 @@ -8540,7 +8540,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u60A8\u8FD8\u6709(1)\u9053\u9898\u672A\u7B54,\u8BF7\u95EE\u786E\u8BA4\u4EA4\u5377\u5417?\n" + m_Text: "\u60A8\u8FD8\u6709(1)\u9053\u9898\u672A\u7B54,\u8BF7\u95EE\u662F\u5426\u786E\u8BA4\u4EA4\u5377\u5417?\n" --- !u!222 &796212002 CanvasRenderer: m_ObjectHideFlags: 0 @@ -13689,7 +13689,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u786E\u8BA4" + m_Text: "\u662F" --- !u!222 &1309113134 CanvasRenderer: m_ObjectHideFlags: 0 @@ -15279,7 +15279,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 844.89954, y: -29.695} + m_AnchoredPosition: {x: 1038.1396, y: -27.195} m_SizeDelta: {x: 168.2402, y: 59.39} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1419101592 @@ -15435,7 +15435,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u53D6\u6D88" + m_Text: "\u5426" --- !u!222 &1424250650 CanvasRenderer: m_ObjectHideFlags: 0 @@ -15698,7 +15698,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1475178707 RectTransform: m_ObjectHideFlags: 0 @@ -15717,7 +15717,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1241.38, y: -29.695} + m_AnchoredPosition: {x: 1236.38, y: -27.195} m_SizeDelta: {x: 168.2402, y: 59.39} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1475178708 @@ -17505,7 +17505,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "2\u9898" + m_Text: "1\u9898" --- !u!222 &1643417209 CanvasRenderer: m_ObjectHideFlags: 0 @@ -18969,7 +18969,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u6211\u7684\u5224\u65AD\u9898" + m_Text: "\u5355\u9009\u9009\u62E9\u9898" --- !u!222 &1822718783 CanvasRenderer: m_ObjectHideFlags: 0 @@ -20027,9 +20027,9 @@ MonoBehaviour: m_EditorClassIdentifier: m_Padding: m_Left: 0 - m_Right: 0 + m_Right: 5 m_Top: 0 - m_Bottom: 0 + m_Bottom: 5 m_ChildAlignment: 5 m_Spacing: 30 m_ChildForceExpandWidth: 0 @@ -20863,7 +20863,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u6211\u7684\u5224\u65AD\u9898" + m_Text: "\u591A\u9009\u9009\u62E9\u9898" --- !u!222 &2020752203 CanvasRenderer: m_ObjectHideFlags: 0 diff --git a/Assets/Script/Event/EventArgs/QuestionSureEventArgs.cs b/Assets/Script/Event/EventArgs/QuestionSureEventArgs.cs index a6ff7c8..8aebf8d 100644 --- a/Assets/Script/Event/EventArgs/QuestionSureEventArgs.cs +++ b/Assets/Script/Event/EventArgs/QuestionSureEventArgs.cs @@ -4,12 +4,14 @@ { public static readonly int EventId = typeof(QuestionSureEventArgs).GetHashCode(); public override int Id => EventId; + public bool isTrue { get; set; } public int index; - public QuestionSureEventArgs(int index) + public QuestionSureEventArgs(int index, bool isTrue) { this.index = index; + this.isTrue = isTrue; } } } \ No newline at end of file diff --git a/Assets/Script/Event/EventArgs/Right_QuestionItemStopInputEventArgs.cs b/Assets/Script/Event/EventArgs/Right_QuestionItemStopInputEventArgs.cs new file mode 100644 index 0000000..8dbd608 --- /dev/null +++ b/Assets/Script/Event/EventArgs/Right_QuestionItemStopInputEventArgs.cs @@ -0,0 +1,15 @@ +namespace ZGameFramework +{ + public class Right_QuestionItemStopInputEventArgs : GameEventArgs + { + public static readonly int EventId = typeof(Right_QuestionItemStopInputEventArgs).GetHashCode(); + public override int Id => EventId; + + public int index; + + public Right_QuestionItemStopInputEventArgs(int index) + { + this.index = index; + } + } +} \ No newline at end of file diff --git a/Assets/Script/Event/EventArgs/Right_QuestionItemStopInputEventArgs.cs.meta b/Assets/Script/Event/EventArgs/Right_QuestionItemStopInputEventArgs.cs.meta new file mode 100644 index 0000000..b9adf92 --- /dev/null +++ b/Assets/Script/Event/EventArgs/Right_QuestionItemStopInputEventArgs.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 54485189c8734db8bd8027302cb78a07 +timeCreated: 1703549993 \ No newline at end of file diff --git a/Assets/Script/Excel/ExcelManager.cs b/Assets/Script/Excel/ExcelManager.cs index cfdd57d..b3f400b 100644 --- a/Assets/Script/Excel/ExcelManager.cs +++ b/Assets/Script/Excel/ExcelManager.cs @@ -1,5 +1,10 @@ +using System; using System.Collections; using System.Collections.Generic; +using System.IO; +using System.Text; +using OfficeOpenXml; +using Script.Excel; using Script.UI; using UnityEngine; using UnityEngine.UI; @@ -30,7 +35,7 @@ public class ExcelManager : SingleManager _cData = new TureOrFalse_QuestionBank_C_Data(cData); var dData = ReadExcel.SelectDTable("QuestionBank_D"); _dData = new MultipleChoice_QuestionBank_D_Data(dData); - + var payerData = ReadExcel.SelectPlayerTable("PlayerData"); _playerData = new Player_Data(payerData); @@ -41,6 +46,110 @@ public class ExcelManager : SingleManager { return _aData.RandomGet(false); } + + + #region 存入内容并导出Excel文件 + + public void SaveAndExp(SaveExcelData data) // 目前弃用了 + { + string path = Application.streamingAssetsPath + "/程序输出数据" + DateTime.Now.Ticks + ".xlsx"; + FileStream fs = new FileStream(path, FileMode.OpenOrCreate); + using (var pck = new ExcelPackage(fs)) + { + var sheet = pck.Workbook.Worksheets.Add("Sheet1"); + + for (int i = 0; i < data.hands.Length; i++) + { + sheet.SetValue(1, i + 2, data.hands[i]); + } + + for (var i = 0; i < data.infos.Count; i++) + { + for (var j = 0; j < data.infos[i].strings.Length; j++) + { + //第0行、列留白 + // sheet.Cells[i + 2, j + 2].Value = data.infos[i].strings[j]; + + sheet.SetValue(i + 2, j + 2, data.infos[i].strings[j]); + } + } + + pck.Save(); + } + + fs.Dispose(); + } + + public void SaveAndExpIndex(SaveDataInfo info, int index) + { + string path = Application.streamingAssetsPath + "/程序输出数据" + DateTime.Now.Ticks + ".xlsx"; + FileStream fs = new FileStream(path, FileMode.OpenOrCreate); + using (var pck = new ExcelPackage(fs)) + { + var sheet = pck.Workbook.Worksheets.Add("Sheet1"); + + if (index == 0) + { + string[] hands = new[] { "选手ID", "赛项", "科目", "第一题", "第二题", "第三题", "第四题", "第五题", "分数", "正确数量", "错误数量", "未答数量", "正确率", "用时" }; + for (int i = 0; i < hands.Length; i++) + { + sheet.SetValue(1, i + 2, hands[i]); + } + } + + // for (var j = 0; j < info.strings.Length; j++) + // { + // //第0行、列留白 + // // sheet.Cells[i + 2, j + 2].Value = data.infos[i].strings[j]; + // + // sheet.SetValue(index + 2, j + 2, info.strings[j]); + // } + int j = 0; + sheet.SetValue(index + 2, j + 2, info.id); + sheet.SetValue(index + 2, j + 3, info.title); + sheet.SetValue(index + 2, j + 4, info.subject); + int num = 0; + foreach (var infoAnswerData in info.answerDatas) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("题目:"); + sb.AppendLine(infoAnswerData.title); + sb.AppendLine("选项:"); + foreach (var option in infoAnswerData.options) + { + sb.AppendLine(option); + } + + sb.AppendLine("正确答案:"); + foreach (var answer in infoAnswerData.answers) + { + sb.AppendLine(answer); + } + + sb.AppendLine("回答结果:"); + foreach (var result in infoAnswerData.result) + { + sb.AppendLine(result); + } + + sheet.SetValue(index + 2, num + j + 5, sb.ToString()); + num++; + } + + sheet.SetValue(index + 2, j + 10, info.score); + sheet.SetValue(index + 2, j + 11, info.trueCount); + sheet.SetValue(index + 2, j + 12, info.falseCount); + sheet.SetValue(index + 2, j + 13, info.nullCount); + sheet.SetValue(index + 2, j + 14, info.accuracy); + sheet.SetValue(index + 2, j + 15, info.time); + + pck.Save(); + } + + fs.Dispose(); + } + + #endregion } //模拟数据写入 \ No newline at end of file diff --git a/Assets/Script/Excel/SaveDataInfo.cs b/Assets/Script/Excel/SaveDataInfo.cs new file mode 100644 index 0000000..6da31b9 --- /dev/null +++ b/Assets/Script/Excel/SaveDataInfo.cs @@ -0,0 +1,83 @@ +using System.Collections.Generic; + +namespace Script.Excel +{ + public class SaveDataInfo + { + public string id; + public string title; + public string subject; + public List answerDatas = new List(); + public string score; + public string trueCount; + public string falseCount; + public string nullCount; + public string accuracy; + public string time; + + public class AnswerData + { + public string title; + public string[] options; + public string[] answers; + public string[] result; + } + } + + public class SaveData + { + private Dictionary _saveDataInfos = new Dictionary(); + + public int Count => _saveDataInfos.Count; + + public SaveDataInfo AddInfo(int id, string title, string subject) + { + var saveDataInfo = new SaveDataInfo(); + saveDataInfo.id = id.ToString(); + saveDataInfo.title = title; + saveDataInfo.subject = subject; + _saveDataInfos.Add(id, saveDataInfo); + return saveDataInfo; + } + + public void AddAnswer(int id, string title, string[] options, string[] answers) + { + if (_saveDataInfos.TryGetValue(id, out var info)) + { + var answerData = new SaveDataInfo.AnswerData(); + answerData.title = title; + answerData.options = options; + answerData.answers = answers; + info.answerDatas.Add(answerData); + } + } + + public void AddResult(int id, int index, string[] result) + { + if (_saveDataInfos.TryGetValue(id, out var info)) + { + info.answerDatas[index].result = result; + } + } + + public void SetScoreAndOther(int id, string score, string trueCount, string falseCount, string nullCount, string accuracy) + { + if (_saveDataInfos.TryGetValue(id, out var info)) + { + info.score = score; + info.trueCount = trueCount; + info.falseCount = falseCount; + info.nullCount = nullCount; + info.accuracy = accuracy; + } + } + + public void SetTime(int id, string time) + { + if (_saveDataInfos.TryGetValue(id, out var info)) + { + info.time = time; + } + } + } +} \ No newline at end of file diff --git a/Assets/Script/Excel/SaveDataInfo.cs.meta b/Assets/Script/Excel/SaveDataInfo.cs.meta new file mode 100644 index 0000000..f629d6d --- /dev/null +++ b/Assets/Script/Excel/SaveDataInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 09c728e9add04ee6854376faa88e60a5 +timeCreated: 1703518125 \ No newline at end of file diff --git a/Assets/Script/Excel/SaveExcelData.cs b/Assets/Script/Excel/SaveExcelData.cs new file mode 100644 index 0000000..8424f6c --- /dev/null +++ b/Assets/Script/Excel/SaveExcelData.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; + +public class SaveExcelData +{ + public class SaveExcelDataInfo + { + public string[] strings; + + public SaveExcelDataInfo(string[] str) + { + strings = str; + } + } + + public List infos; + public string[] hands; + + public SaveExcelData() + { + hands = new[] { "选手ID", "选手(如没有内容属于正常情况)", "团型", "文化元素" }; + this.infos = new List(); + } + + public void AddInfoData(string id, string name, string team, string culture) + { + infos.Add(new SaveExcelDataInfo(new[] { id, name, team, culture })); + } +} \ No newline at end of file diff --git a/Assets/Script/Excel/SaveExcelData.cs.meta b/Assets/Script/Excel/SaveExcelData.cs.meta new file mode 100644 index 0000000..9f097a3 --- /dev/null +++ b/Assets/Script/Excel/SaveExcelData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a9b4fad1359c4ce59d49c4d44fd36bc2 +timeCreated: 1703554598 \ No newline at end of file diff --git a/Assets/Script/File/GlobalManager.cs b/Assets/Script/File/GlobalManager.cs index 979e757..766f173 100644 --- a/Assets/Script/File/GlobalManager.cs +++ b/Assets/Script/File/GlobalManager.cs @@ -1,9 +1,50 @@ -using Script.UI; +using Script.Excel; +using Script.UI; namespace Script { public class GlobalManager : SingleManager { - public SummaryInfo summaryInfo; + // public SummaryInfo summaryInfo;// 不参与数据存储 + + private SaveData saveData; + private SaveDataInfo currentInfo; + + public SaveDataInfo CurrentInfo => currentInfo; + public int Count => saveData.Count; + + public GlobalManager() + { + saveData = new SaveData(); + } + + public void AddInfo(int id, string title, string subject) + { + currentInfo = saveData.AddInfo(id, title, subject); + } + + public void AddCurrentAnswer(string title, string[] options, string[] answers) + { + var id = int.Parse(currentInfo.id); + saveData.AddAnswer(id, title, options, answers); + } + + public void AddCurrentResult(int index, string[] result) + { + var id = int.Parse(currentInfo.id); + saveData.AddResult(id, index, result); + } + + public void SetCurrentScoreAndOther(string score, string trueCount, string falseCount, string nullCount, string accuracy) + { + var id = int.Parse(currentInfo.id); + saveData.SetScoreAndOther(id, score, trueCount, falseCount, nullCount, accuracy); + } + + public void SetTime(string time) + { + var id = int.Parse(currentInfo.id); + saveData.SetTime(id, time); + } } } \ No newline at end of file diff --git a/Assets/Script/UI/Item/CountDownItem.cs b/Assets/Script/UI/Item/CountDownItem.cs index a9a8acd..56cd8f7 100644 --- a/Assets/Script/UI/Item/CountDownItem.cs +++ b/Assets/Script/UI/Item/CountDownItem.cs @@ -54,7 +54,9 @@ namespace Script.UI private void OnEnd() { Debug.Log("倒计时结束"); - GlobalManager.Instance.summaryInfo.time = TimeSpan.FromSeconds(_time); + var fromSeconds = TimeSpan.FromSeconds(_time); + var time = fromSeconds.ToCustomString(); + GlobalManager.Instance.SetTime(time); var panelBase = UIManager.Instance.GetPanel(PanelType.Answering); var answeringPanel = panelBase as AnsweringPanel; answeringPanel.SaveData(); @@ -87,7 +89,9 @@ namespace Script.UI { _timer.Dispose(); isCountDown = false; - GlobalManager.Instance.summaryInfo.time = TimeSpan.FromSeconds(_time); + var fromSeconds = TimeSpan.FromSeconds(_time); + var time = fromSeconds.ToCustomString(); + GlobalManager.Instance.SetTime(time); } } } diff --git a/Assets/Script/UI/Item/Right_QuestionItem.cs b/Assets/Script/UI/Item/Right_QuestionItem.cs index a9fa2ed..9a5f1e3 100644 --- a/Assets/Script/UI/Item/Right_QuestionItem.cs +++ b/Assets/Script/UI/Item/Right_QuestionItem.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Text; using UnityEngine; using UnityEngine.UI; using ZGameFramework; @@ -17,6 +18,8 @@ namespace Script.UI [SerializeField] private Button btn_Submit; [SerializeField] private ToggleGroup _toggleGroup; + private List toggles = new List(); + private string title; private string[] options; private string[] answers; @@ -35,6 +38,17 @@ namespace Script.UI btn_Next.onClick.AddListener(ClickNext); btn_Submit.onClick.AddListener(ClickSubmit); gameObject.SetActive(false); + btn_Submit.gameObject.SetActive(false); + EventManager.Instance.Subscribe(Right_QuestionItemStopInputEventArgs.EventId, Right_QuestionItemStopInputEvent); + } + + private void Right_QuestionItemStopInputEvent(object sender, GameEventArgs e) + { + var args = e as Right_QuestionItemStopInputEventArgs; + if (args.index == currentIndex) + { + // answerData.StopSetData(); + } } private void OnDestroy() @@ -42,6 +56,7 @@ namespace Script.UI btn_Last.onClick.RemoveListener(ClickLase); btn_Next.onClick.RemoveListener(ClickNext); btn_Submit.onClick.RemoveListener(ClickSubmit); + EventManager.Instance.Unsubscribe(Right_QuestionItemStopInputEventArgs.EventId, Right_QuestionItemStopInputEvent); } public void SetData(int currentIndex, string right_Title, string title, string[] options, string[] answers, Action last, Action next) @@ -143,6 +158,7 @@ namespace Script.UI { var go = GameObject.Instantiate(tog_Option_Item.gameObject, tog_Option_Item.transform.parent); toggleItemList.Add(go); + toggles.Add(go.GetComponent()); } } @@ -167,9 +183,30 @@ namespace Script.UI private void RightToggleChanged(bool isTrue, string str) { - if (isTrue) + answerData.SetInfoData(str, isTrue); + // if (isTrue) + CheckIsAnswer(); + } + + /// + /// 检查是否回答了 + /// + private void CheckIsAnswer() + { + bool isNull = true; + foreach (var toggle in toggles) { - answerData.SetInfoData(str); + if (toggle.isOn) + { + isNull = false; + } + } + + EventManager.Instance.FireNow(this, new QuestionSureEventArgs(currentIndex, !isNull)); + if (!isNull) + { + _toggleGroup.allowSwitchOff = false; + answerData.StopSetData(); } } @@ -187,7 +224,7 @@ namespace Script.UI gameObject.SetActive(false); } - private void ClickSubmit() + private void ClickSubmit() // 弃用 { bool isTrue = false; foreach (var go in toggleItemList) @@ -197,7 +234,7 @@ namespace Script.UI isTrue = true; } } - + if (!isTrue) return; // var resultType = GetResult(); @@ -225,7 +262,7 @@ namespace Script.UI answerData.StopSetData(); btn_Submit.interactable = false; - EventManager.Instance.FireNow(this, new QuestionSureEventArgs(currentIndex)); + // EventManager.Instance.FireNow(this, new QuestionSureEventArgs(currentIndex)); } /// @@ -234,6 +271,17 @@ namespace Script.UI /// public ResultType GetResult() { + List list = new List(); + foreach (var toggle in toggles) + { + if (toggle.isOn) + { + list.Add(toggle.name); + } + } + + GlobalManager.Instance.AddCurrentResult(currentIndex, list.ToArray()); + return answerData.GetDataResult(); } } @@ -262,7 +310,7 @@ namespace Script.UI } } - public bool SetInfoData(string str) + public bool SetInfoData(string str, bool isTrue) { if (IsCanSet) { @@ -270,7 +318,7 @@ namespace Script.UI { if (adInfo.answer == str) { - adInfo.result = true; + adInfo.result = isTrue; return true; } } @@ -296,7 +344,6 @@ namespace Script.UI public ResultType GetDataResult() { if (isCanSet) return ResultType.未答; - foreach (var adInfo in datas) { if (!adInfo.result) diff --git a/Assets/Script/UI/Panel/AnsweringPanel.cs b/Assets/Script/UI/Panel/AnsweringPanel.cs index 62f78ae..4a174db 100644 --- a/Assets/Script/UI/Panel/AnsweringPanel.cs +++ b/Assets/Script/UI/Panel/AnsweringPanel.cs @@ -42,7 +42,10 @@ namespace Script.UI private void QuestionSureEvent(object sender, GameEventArgs e) { var args = e as QuestionSureEventArgs; - _toggles[args.index].transform.Find("Background").GetComponent().color = answeredColor; + if (args.isTrue) + _toggles[args.index].transform.Find("Background").GetComponent().color = answeredColor; + else + _toggles[args.index].transform.Find("Background").GetComponent().color = unansweredColor; } public override void Open() @@ -71,6 +74,7 @@ namespace Script.UI ShowIndexQuestion, ShowIndexQuestion ); + GlobalManager.Instance.AddCurrentAnswer(_aDataInfos[0].topic,_aDataInfos[0].options,_aDataInfos[0].answer); _rightQuestionItems[1].SetData( 1, @@ -81,6 +85,7 @@ namespace Script.UI ShowIndexQuestion, ShowIndexQuestion ); + GlobalManager.Instance.AddCurrentAnswer(_bDataInfos[0].topic,_bDataInfos[0].options,_bDataInfos[0].answer); _rightQuestionItems[2].SetData( 2, @@ -91,6 +96,7 @@ namespace Script.UI ShowIndexQuestion, ShowIndexQuestion ); + GlobalManager.Instance.AddCurrentAnswer(_cDataInfos[0].topic,_cDataInfos[0].options,_cDataInfos[0].answer); _rightQuestionItems[3].SetData( 3, @@ -101,6 +107,7 @@ namespace Script.UI ShowIndexQuestion, ShowIndexQuestion ); + GlobalManager.Instance.AddCurrentAnswer(_cDataInfos[1].topic,_cDataInfos[1].options,_cDataInfos[1].answer); _rightQuestionItems[4].SetData( 4, @@ -111,9 +118,10 @@ namespace Script.UI ShowIndexQuestion, ShowIndexQuestion ); + GlobalManager.Instance.AddCurrentAnswer(_dDataInfos[0].topic,_dDataInfos[0].options,_dDataInfos[0].answer); // - txt_ID.text = GlobalManager.Instance.summaryInfo.id; + txt_ID.text = GlobalManager.Instance.CurrentInfo.id; SetLeftStart(); ShowIndexQuestion(0); @@ -228,11 +236,12 @@ namespace Script.UI Debug.Log($"{score}-{trueCount}-{falseCount}-{nullCount}-{count}%"); - GlobalManager.Instance.summaryInfo.score = score; - GlobalManager.Instance.summaryInfo.trueCount = trueCount; - GlobalManager.Instance.summaryInfo.falseCount = falseCount; - GlobalManager.Instance.summaryInfo.nullCount = nullCount; - GlobalManager.Instance.summaryInfo.accuracy = $"{count}%"; + // GlobalManager.Instance.summaryInfo.score = score; + // GlobalManager.Instance.summaryInfo.trueCount = trueCount; + // GlobalManager.Instance.summaryInfo.falseCount = falseCount; + // GlobalManager.Instance.summaryInfo.nullCount = nullCount; + // GlobalManager.Instance.summaryInfo.accuracy = $"{count}%"; + GlobalManager.Instance.SetCurrentScoreAndOther(score.ToString(),trueCount.ToString(),falseCount.ToString(),nullCount.ToString(),$"{count}%"); } } } \ No newline at end of file diff --git a/Assets/Script/UI/Panel/HomePanel.cs b/Assets/Script/UI/Panel/HomePanel.cs index 3928aab..9a6245d 100644 --- a/Assets/Script/UI/Panel/HomePanel.cs +++ b/Assets/Script/UI/Panel/HomePanel.cs @@ -43,11 +43,12 @@ namespace Script.UI } txt_ID.text = dataInfo.id; - var info = new SummaryInfo(); - info.id = dataInfo.id; - info.title = FileManager.Instance.GetTitle.title; - info.subject = FileManager.Instance.GetTitle.subject; - GlobalManager.Instance.summaryInfo = info; + // var info = new SummaryInfo(); + // info.id = dataInfo.id; + // info.title = FileManager.Instance.GetTitle.title; + // info.subject = FileManager.Instance.GetTitle.subject; + // GlobalManager.Instance.summaryInfo = info; + GlobalManager.Instance.AddInfo(int.Parse(dataInfo.id), FileManager.Instance.GetTitle.title, FileManager.Instance.GetTitle.subject); } private void ClickEnter() diff --git a/Assets/Script/UI/Panel/ScrollPanel.cs b/Assets/Script/UI/Panel/ScrollPanel.cs index 05ce325..04fef71 100644 --- a/Assets/Script/UI/Panel/ScrollPanel.cs +++ b/Assets/Script/UI/Panel/ScrollPanel.cs @@ -38,8 +38,8 @@ namespace Script.UI base.ResetPanelData(); UpdateText(); - txt_ID.text = GlobalManager.Instance.summaryInfo.id; - txt_Subject.text = GlobalManager.Instance.summaryInfo.subject; + txt_ID.text = GlobalManager.Instance.CurrentInfo.id; + txt_Subject.text = GlobalManager.Instance.CurrentInfo.subject; } private void UpdateText() diff --git a/Assets/Script/UI/Panel/SummaryPanel.cs b/Assets/Script/UI/Panel/SummaryPanel.cs index ec0f9a9..90e97cf 100644 --- a/Assets/Script/UI/Panel/SummaryPanel.cs +++ b/Assets/Script/UI/Panel/SummaryPanel.cs @@ -50,14 +50,14 @@ namespace Script.UI private void SaveData() { - var info = GlobalManager.Instance.summaryInfo; + var info = GlobalManager.Instance.CurrentInfo; txt_Score.text = info.score.ToString(); txt_True.text = info.trueCount.ToString(); txt_False.text = info.falseCount.ToString(); txt_Null.text = info.nullCount.ToString(); txt_Accuracy.text = info.accuracy; - txt_Time.text = info.time.ToCustomString(); + txt_Time.text = info.time; StringBuilder sb = new StringBuilder(); sb.AppendLine($"选手ID:{info.id}"); @@ -70,6 +70,7 @@ namespace Script.UI sb.AppendLine($"正确率:{txt_Accuracy.text}"); sb.AppendLine($"用时:{txt_Time.text}"); FileManager.Instance.SavePlayerData(sb.ToString()); + ExcelManager.Instance.SaveAndExpIndex(GlobalManager.Instance.CurrentInfo, GlobalManager.Instance.Count - 1); } } } \ No newline at end of file diff --git a/Assets/Script/UI/Panel/TipsPanel.cs b/Assets/Script/UI/Panel/TipsPanel.cs index 9e2fdf7..5c81c37 100644 --- a/Assets/Script/UI/Panel/TipsPanel.cs +++ b/Assets/Script/UI/Panel/TipsPanel.cs @@ -32,15 +32,30 @@ namespace Script.UI var answeringPanel = UIManager.Instance.GetPanel(PanelType.Answering) as AnsweringPanel; if (answeringPanel != null) answeringPanel.Pause(); - var count = GlobalManager.Instance.summaryInfo.nullCount; - if (count == 0) - txt_Content.text = $"请问确认交卷吗?"; + var count = GlobalManager.Instance.CurrentInfo.nullCount; + var c = int.Parse(count); + if (c == 0) + txt_Content.text = $"请问是否确认交卷吗?"; else - txt_Content.text = $"您还有({count})道题未答,请问确认交卷吗?"; + txt_Content.text = $"您还有({c})道题未答,请问是否确认交卷吗?"; + } + + private int index = 0; + + public void ResetIndex() + { + index = 0; } private void ClickSure() { + ++index; + if (index < 3) + { + Close(); + return; + } + var panelBase = UIManager.Instance.GetPanel(PanelType.Answering); var answeringPanel = panelBase as AnsweringPanel; if (answeringPanel != null) answeringPanel.SaveData(); diff --git a/Assets/StreamingAssets/Excel/QuestionBank_A.xlsx b/Assets/StreamingAssets/Excel/QuestionBank_A.xlsx index 52ec4a2..b2b5ed1 100644 Binary files a/Assets/StreamingAssets/Excel/QuestionBank_A.xlsx and b/Assets/StreamingAssets/Excel/QuestionBank_A.xlsx differ diff --git a/Assets/StreamingAssets/Excel/QuestionBank_B.xlsx b/Assets/StreamingAssets/Excel/QuestionBank_B.xlsx index 1439356..449c1b2 100644 Binary files a/Assets/StreamingAssets/Excel/QuestionBank_B.xlsx and b/Assets/StreamingAssets/Excel/QuestionBank_B.xlsx differ diff --git a/Assets/StreamingAssets/Excel/QuestionBank_C.xlsx b/Assets/StreamingAssets/Excel/QuestionBank_C.xlsx index 06bbb7b..d20fc67 100644 Binary files a/Assets/StreamingAssets/Excel/QuestionBank_C.xlsx and b/Assets/StreamingAssets/Excel/QuestionBank_C.xlsx differ diff --git a/Assets/StreamingAssets/Excel/QuestionBank_D.xlsx b/Assets/StreamingAssets/Excel/QuestionBank_D.xlsx index d8ff9d1..25b5677 100644 Binary files a/Assets/StreamingAssets/Excel/QuestionBank_D.xlsx and b/Assets/StreamingAssets/Excel/QuestionBank_D.xlsx differ diff --git a/Assets/StreamingAssets/data1767394938.txt b/Assets/StreamingAssets/data1767394938.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Assets/StreamingAssets/data1767394938.txt.meta b/Assets/StreamingAssets/data1767394938.txt.meta deleted file mode 100644 index 13c1fde..0000000 --- a/Assets/StreamingAssets/data1767394938.txt.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: db1d563e83d344c4bbbd49488aeb3046 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: