Exemple #1
0
        /// <summary>
        /// Getitems the specified identifier.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns></returns>
        public ActionResult getitem(int id)
        {
            int   totalpages = 1, pagesize = 50, recordcount = 0;
            Array data = null, arrdata1 = null, arrdata2 = null;
            var   question = new QuestionObject();
            var   url      = string.Empty;

            try
            {
                if (id != 0)
                {
                    question = _exam.GetItems(string.Format("questions/{0}?order=desc&sort=activity&site=stackoverflow&filter=!b0OfNINZfha_h*", id));
                    data     = question.items.ToArray();
                }
                responseStatus = "OK";
            }
            catch (Exception ex)
            {
                if (String.IsNullOrEmpty(ex.Message))
                {
                    responseStatus = "ERROR";
                }
                responseText = ex.Message;
            }
            return(Json(new
            {
                pagesize,
                totalpages,
                recordcount,
                page,
                status = responseStatus,
                message = responseText,
                data
            }));
        }
Exemple #2
0
    void Proceed(int buttonId)
    {
        CheckAnswerValue(first, second);
        if (currentQuestion % 3 == 0)
        {
            Invoke("DoEndingSpeech", 5);
        }
        else
        {
            handler.GetQuestionType(selectedQuestion);
            if (selectedQuestion != questionObjects[questionObjects.Count - 1])
            {
                for (int i = 0; i < questionObjects.Count; i++)
                {
                    if (questionObjects[i] == selectedQuestion)
                    {
                        selectedQuestion = questionObjects[i + 1];
                        break;
                    }
                }
            }

            nextQuestion.gameObject.SetActive(true);
            currentQuestion++;
        }
    }
Exemple #3
0
        /// <summary>
        /// 获取指定目录下图片文件及文件夹
        /// </summary>
        /// <param name="theDir">指定目录</param>
        /// <param name="Rn">用于迭加的传入值,一般为空</param>
        /// <returns></returns>
        public static List <QuestionObject> ListTreeShowFileDir(string BasePath, DirectoryInfo theDir, List <QuestionObject> Rn) //递归目录文件
        {
            DirectoryInfo[] subDirectories = theDir.GetDirectories();                                                            //获得目录
            foreach (DirectoryInfo dirinfo in subDirectories)
            {
                QuestionObject qodir = new QuestionObject();
                qodir.Filename = dirinfo.FullName.Substring(dirinfo.FullName.IndexOf(BasePath)).Replace("\\", "/");
                qodir.Filetype = "dir";
                qodir.Name     = dirinfo.Name;
                Rn.Add(qodir);
            }

            FileInfo[] fileInfo = theDir.GetFiles();//目录下的文件
            foreach (FileInfo fInfo in fileInfo)
            {
                if (Web.Model.PublicModel.UpLoadFileImage.IndexOf(GetPostfixStr1(fInfo.Name)) != -1)
                {
                    QuestionObject qofile = new QuestionObject();
                    qofile.Filename = fInfo.FullName.Substring(fInfo.FullName.IndexOf(BasePath)).Replace("\\", "/");
                    qofile.Filetype = "file";
                    qofile.Name     = fInfo.Name;
                    Rn.Add(qofile);
                }
            }
            return(Rn);
        }
Exemple #4
0
        public override IWorldObject Clone()
        {
            QuestionObject res = new QuestionObject(Word);

            res.Copy(this);
            return(res);
        }
Exemple #5
0
    private QuestionObject CreateQuestionObject(List <string> QuestionLines, List <string> alternatives, List <int> correctAlternatives)
    {
        QuestionObject QuestionObj = new QuestionObject();

        foreach (string s in alternatives)
        {
            QuestionObj.Alternatives.Add(new Alternative {
                Text = s
            });
        }
        int i = 0;

        foreach (string ql in QuestionLines)
        {
            if (ql.Contains("{0}"))
            {
                QuestionObj.QuestionLines.Add(new QuestionLine {
                    Text = ql,
                    CorrectAlternative = QuestionObj.Alternatives[correctAlternatives[i]]
                });
                i++;
            }
            else
            {
                QuestionObj.QuestionLines.Add(new QuestionLine {
                    Text = ql,
                    CorrectAlternative = null
                });
            }
        }
        return(QuestionObj);
    }
Exemple #6
0
    // Funktion zum Einlesen der Fragen inklusive 4 Antwortmöglichkeiten und einer korrekten Antwort aus der XML-Datei. Es wird in ein Fragenobjekt umgewandelt und in einem Array gespeichert
    public static void parseXmlFile(string xmlData)
    {
        XmlDocument xmlDoc = new XmlDocument();

        xmlDoc.Load(new StringReader(xmlData));
        arraySize     = 0;
        questionArray = new QuestionObject[100];
        string      xmlPathPattern = "//QuestionCollection/Question";
        XmlNodeList myNodeList     = xmlDoc.SelectNodes(xmlPathPattern);

        foreach (XmlNode node in myNodeList)
        {
            XmlNode        questionText     = node.FirstChild;
            XmlNode        answer1          = questionText.NextSibling;
            XmlNode        answer2          = answer1.NextSibling;
            XmlNode        answer3          = answer2.NextSibling;
            XmlNode        answer4          = answer3.NextSibling;
            XmlNode        correctAnswer    = answer4.NextSibling;
            string         questionTextStr  = questionText.InnerXml;
            string         answer1Str       = answer1.InnerXml;
            string         answer2Str       = answer2.InnerXml;
            string         answer3Str       = answer3.InnerXml;
            string         answer4Str       = answer4.InnerXml;
            string         correctAnswerStr = correctAnswer.InnerXml;
            QuestionObject question         = new QuestionObject(questionTextStr, answer1Str, answer2Str, answer3Str, answer4Str, correctAnswerStr);
            questionArray[arraySize] = question;
            Debug.Log(question.question + question.answer1);
            Debug.Log(questionArray[arraySize].question + questionArray[arraySize].answer1 + questionArray[arraySize].answer2 + questionArray[arraySize].answer3 + questionArray[arraySize].answer4 + questionArray[arraySize].correctAnswer);
            arraySize++;
        }
        Debug.Log("Arraysize:" + arraySize);
    }
Exemple #7
0
    void ManageQuestion(PlayerObject.TurnStatus _turnStatus)
    {
        switch (_turnStatus)
        {
        case PlayerObject.TurnStatus.Answering:
            if (_currentQuestion == null)
            {
                int index = rand.Next(0, _questionList.Count - 1);
                _currentQuestion = _questionList[index];
                _questionList.RemoveAt(index);
                _countQuestionAnswered += 1;
            }
            break;

        case PlayerObject.TurnStatus.QuestionBreakInteract:
            if (_currentQuestion == null)
            {
                int index = rand.Next(0, _questionList.Count - 1);
                _currentQuestion = _questionList[index];
                _questionList.RemoveAt(index);
                _countQuestionAnswered += 1;
            }
            break;
        }
    }
Exemple #8
0
        public void NewQuestion(string title, string question, string answer)
        {
            var newQuestion = new QuestionObject {
                Title = title, Question = question, Answer = answer
            };

            _fileHandler.WriteToJson(newQuestion);
        }
Exemple #9
0
    protected void UpdateQuestion()
    {
        QuestionObject QO = this.GetGoodQuestion();

        this.lastQuestion = QO;
        questionObject.SendMessage("SetUp", QO);
        List <QuestionObject> questionObjects = new List <QuestionObject>();
    }
Exemple #10
0
 void SetUp(QuestionObject curr)
 {
     this.rightAnswer    = new Answer(curr.right, curr.rightResult);
     this.leftAnswer     = new Answer(curr.left, curr.leftResult);
     this.rightText.text = curr.rightChoice;
     this.leftText.text  = curr.leftChoice;
     this.question.text  = curr.question;
 }
Exemple #11
0
 public void StartGame(int id)
 {
     president.sprite        = presidents[id];
     selectedQuestion        = questionObjects[0];
     clickCounter            = selectedQuestion.requiredAnswers;
     question.text           = selectedQuestion.question;
     startGameCanvas.enabled = false;
     mainCanvas.enabled      = true;
 }
Exemple #12
0
 public override void LoadQuestion(Question question)
 {
     Question = question;
     QuestionDescription.text = question.QuestionText;
     QObject = question.GetQuestionObject();
     LoadQuestionLines(QObject.QuestionLines);
     AlternativeController.ClearAlternatives();
     AlternativeController.CreateAlternative(QObject.Alternatives);
 }
        private void ButtonEditQuestion_Click(object sender, RoutedEventArgs e)
        {
            var answer       = _textUtility.ConvertRichTextBoxToString(rtbAnswerBox);
            var editQuestion = new QuestionObject
            {
                Title = tbQuestionTitle.Text, Question = tblQuestionDetails.Text, Answer = answer
            };

            _jsonController.EditQuestion(editQuestion);
        }
    protected override QuestionObject GetQuestionObject(int year)
    {
        QuestionObject potential = this.allPossibleQuestions[Random.Range(0, allPossibleQuestions.Count)];

        while (potential.question == this.lastQuestion.question)
        {
            potential = this.allPossibleQuestions[Random.Range(0, this.allPossibleQuestions.Count)];
        }
        this.lastQuestion = potential;
        return(potential);
    }
        public void EditQuestion(QuestionObject question)
        {
            var questions = LoadQuestions();

            questions.RemoveAll(x => x.Title == question.Title);
            var jsonData = JsonConvert.SerializeObject(questions);

            File.WriteAllText(JsonPath, jsonData);

            WriteToJson(question);
        }
Exemple #16
0
    protected void BasicSetUp(QuestionObject QO)
    {
        this.yearVal   = 1849;
        this.year.text = "" + this.yearVal;
        this.hider.SetActive(false);
        PlayerPrefs.SetString("Deported", "not yet");

        this.lastQuestion = QO;
        questionObject.SendMessage("SetUp", QO);
        Effect ltEffect = new Effect(30, 30, 10);

        player.SendMessage("ApplyLongTermEffect", ltEffect);
    }
    // Use this for initialization
    void Start()
    {
        Effect nothing = new Effect(0, 0, 0);

        QuestionObject QO = new QuestionObject(nothing, nothing, "You arive in California! When you heard about the gold you decided to travel to America to try to strike it rich. You took out a credit agreement to pay for your passage and managed to buy a claim and hope to find opportunity in this new land",
                                               "Welcome",
                                               "Welcome",
                                               "You have arrived. Time to find your fortune!", "" +
                                               "You have arrived. Time to find your fortune!");

        this.BasicSetUp(QO);
        this.level     = 2;
        this.questions = new ImmigrantQuestions();
    }
Exemple #18
0
    public void Start()
    {
        Effect nothing = new Effect(0, 0, 0);

        QuestionObject QO = new QuestionObject(nothing, nothing,
                                               "You arive in California! When you heard about the gold out west you knew it was your ticket to improve your family's life. You left your wife behind and made the grueling trip west. Now you are here and have your claim and equipment layed out.",
                                               "Welcome", "Welcome",
                                               "You have arrived. Time to find your fortune!",
                                               "You have arrived. Time to find your fortune!");

        this.BasicSetUp(QO);
        this.level = 1;
        questions  = new WhiteQuestions();
    }
Exemple #19
0
    public override void LoadQuestion(Question question)
    {
        Question = question;
        if (question == null)        //Temp fix, must be better lol :p
        {
            return;
        }
        QuestionDescription.text = question.QuestionText;
        QObject = question.GetQuestionObject();
        LoadQuestionLines(QObject.QuestionLines);

        //QuestionText.text = question.QuestionText;
        AlternativeController.ClearAlternatives();
        AlternativeController.CreateAlternative(QObject.Alternatives);
    }
Exemple #20
0
        public void WriteToJson(QuestionObject newQuestion)
        {
            var list = LoadQuestions();

            if (CheckIfQuestionExist(list, newQuestion.Title))
            {
                MessageBox.Show("Question exist");
                return;
            }

            list.Add(newQuestion);
            var jsonData = JsonConvert.SerializeObject(list);

            File.WriteAllText(JsonPath, jsonData);
        }
Exemple #21
0
    // Use this for initialization
    void Awake()
    {
        custom_controller = this;
        foodController    = GetComponent <FoodController> ();
        AlphabetChoices   = new List <GameObject> ();
        AlphabetChoices.Add(aAnswer);
        AlphabetChoices.Add(bAnswer);
        AlphabetChoices.Add(cAnswer);
        AlphabetChoices.Add(dAnswer);
        CustomCoin = data.CustomFood;
//		CustomQuestions = new List<QuestionObject> (GetComponent<CreateCustomQuestions> ().CustomQuestions);
//		print(DataManager.control.questions.questions);
        if (DataManager.control == null)
        {
            CustomQuestions = new List <QuestionObject> (GetComponent <CreateCustomQuestions> ().CustomQuestions);
            print("why:  " + DataManager.control);
        }
        else
        {
            if (DataManager.control.questions.questions != null)
            {
                if (DataManager.control.questions.questions.Count == 0 || DataManager.control.questions.questions.Count == 1)
                {
                    CustomQuestions = new List <QuestionObject> (GetComponent <CreateCustomQuestions> ().CustomQuestions);
                }
                else
                {
                    for (int i = 0; i < DataManager.control.questions.questions.Count; i++)
                    {
                        QuestionObject temp = new QuestionObject();
                        temp.Restore(DataManager.control.questions.questions [i]);
                        CustomQuestions.Add(temp);
                    }
                }
            }
            else
            {
                CustomQuestions = new List <QuestionObject> (GetComponent <CreateCustomQuestions> ().CustomQuestions);
            }

//			print (DataManager.control);
        }
    }
Exemple #22
0
        public async static Task <QuestionsObject> GetQuestionsObject(string path)
        {
            dynamic dynQuestionsObj = await GetResultFromURL(path);

            QuestionsObject questionsObj = new QuestionsObject();

            questionsObj.Count = dynQuestionsObj.count;

            ObservableCollection <QuestionObject> questions = new ObservableCollection <QuestionObject>();

            foreach (var question in dynQuestionsObj.questions)
            {
                questions.Add(QuestionObject.fromDynamic(question));
            }

            questionsObj.Questions = questions;

            return(questionsObj);
        }
Exemple #23
0
    public void EditQuestion(Question question)
    {
        Question       = question;
        SettingStuffUp = true;
        ResetSettings();
        QuestionObject qObj = question.GetQuestionObject();

        foreach (Alternative alternative in qObj.Alternatives)
        {
            Admin_AlternativeTemplate altTemplate = Instantiate(AlternativeLinePrefab, AlternativeParent, false).GetComponent <Admin_AlternativeTemplate>();
            AlternativeTexts.Add(alternative.Text);
            altTemplate.AlternativeText.text = alternative.Text;
            AlternativeLineList.Add(altTemplate.gameObject);
            altTemplate.gameObject.SetActive(true);
        }
        foreach (QuestionLine questionLine in qObj.QuestionLines)
        {
            Admin_QuestionLineTemplate qLine = Instantiate(QuestionLinePrefab, QuestionLineParent, false).GetComponent <Admin_QuestionLineTemplate>();
            qLine.LineText.text = questionLine.Text;
            qLine.CorrectAlternativeDropdown.ClearOptions();
            foreach (string s in AlternativeTexts)
            {
                qLine.CorrectAlternativeDropdown.options.Add(new Dropdown.OptionData {
                    text = s
                });
            }
            qLine.CorrectAlternativeDropdown.value = AlternativeTexts.IndexOf(questionLine.CorrectAlternative.Text);
            CorrectAlternativeDropdownList.Add(qLine.CorrectAlternativeDropdown.GetComponent <Dropdown>());
            qLine.gameObject.SetActive(true);
            QuestionLineList.Add(qLine.gameObject);
        }
        AlternativeButtonHolder.SetAsLastSibling();
        QuestionButtonHolder.SetAsLastSibling();
        QuestionTextInput.text = question.QuestionText;
        //WARNING: Need fix for non singlular category searches (only capeable of working with a single category atm)
        CategoryDropdown.value = CategoryDropdown.options.FindIndex(i => i.text.Equals(question.CategoryList[0].Name));
        CategoryDropdown.RefreshShownValue();
        DifficultyDropdown.value = DifficultyDropdown.options.FindIndex(i => i.text.Equals(question.Weight.ToString()));
        DifficultyDropdown.RefreshShownValue();
        ActiveToggle.isOn = Convert.ToBoolean(Question.Active);
        SettingStuffUp    = false;
    }
Exemple #24
0
        /// <summary>
        /// Gets the items.
        /// </summary>
        /// <param name="search">The search.</param>
        /// <param name="page">The page.</param>
        /// <returns></returns>
        public ActionResult getItems(string search = "", int page = 1)
        {
            int   totalpages = 1, pagesize = 50, recordcount = 0;
            Array data   = null;
            var   result = new QuestionObject();
            var   url    = string.Empty;

            try
            {
                url = !string.IsNullOrEmpty(search)? String.Format("search?page={0}&pagesize={1}&order=desc&sort=creation&intitle={2}&site=stackoverflow&filter=!-*f(6rc.bgwz", page, pagesize, search):
                      String.Format("questions?page={0}&pagesize={1}&order=desc&sort=creation&site=stackoverflow&filter=!-*f(6rc.bgwz", page, pagesize);
                result = _exam.GetItems(url);
                if (result.total != 0)
                {
                    recordcount = result.total;

                    totalpages = (int)Math.Ceiling(((float)recordcount / (float)pagesize));
                    page       = page < 1 ? 1 : page;
                    page       = page > totalpages ? totalpages : page;
                }
                data           = result.items.ToArray();
                responseStatus = "OK";
            }
            catch (Exception ex)
            {
                if (String.IsNullOrEmpty(ex.Message))
                {
                    responseStatus = "ERROR";
                }
                responseText = ex.Message;
            }
            return(Json(new
            {
                pagesize,
                totalpages,
                recordcount,
                page,
                status = responseStatus,
                message = responseText,
                data = data
            }));
        }
Exemple #25
0
 /// <summary>
 /// 获取指定目录下所有文件
 /// </summary>
 /// <param name="theDir">指定目录</param>
 /// <param name="Rn">用于迭加的传入值,一般为空</param>
 /// <returns></returns>
 public static List <QuestionObject> ListTreeShowFile(string BasePath, DirectoryInfo theDir, List <QuestionObject> Rn) //递归目录文件
 {
     DirectoryInfo[] subDirectories = theDir.GetDirectories();                                                         //获得目录
     foreach (DirectoryInfo dirinfo in subDirectories)
     {
         FileInfo[] fileInfo = dirinfo.GetFiles();//目录下的文件
         foreach (FileInfo fInfo in fileInfo)
         {
             if (Web.Model.PublicModel.UpLoadFileType.IndexOf(GetPostfixStr1(fInfo.Name)) != -1)
             {
                 QuestionObject qo = new QuestionObject();
                 qo.Filename = fInfo.FullName.Substring(fInfo.FullName.IndexOf(BasePath));
                 qo.Filename = qo.Filename.Replace("\\", "/");
                 Rn.Add(qo);
             }
         }
         Rn = ListTreeShowFile(BasePath, dirinfo, Rn);
     }
     return(Rn);
 }
Exemple #26
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        QuestionObject script = target as QuestionObject;

        if (GUILayout.Button("Build Object"))
        {
            script.pageList = new List <GameObject>();
            Transform[] array = script.gameObject.GetComponentsInChildren <Transform>(true);

            for (int i = 0; i < array.Length; i++)
            {
                if (array[i].name.Contains("Page"))
                {
                    script.pageList.Add(array[i].gameObject);
                }
            }
        }
    }
Exemple #27
0
    private Question CreateQuestion(string QuestionText, List <string> QuestionLines, List <string> alternatives, List <int> correctAlternatives, int weight)
    {
        Question Question = new Question {
            QuestionText = QuestionText,
            Weight       = weight
        };

        QuestionObject QuestionObj = new QuestionObject();

        foreach (string s in alternatives)
        {
            QuestionObj.Alternatives.Add(new Alternative {
                Text = s
            });
        }
        int i = 0;

        foreach (string ql in QuestionLines)
        {
            if (ql.Contains("{0}"))
            {
                QuestionObj.QuestionLines.Add(new QuestionLine {
                    Text = ql,
                    CorrectAlternative = QuestionObj.Alternatives[correctAlternatives[i]]
                });
                i++;
            }
            else
            {
                QuestionObj.QuestionLines.Add(new QuestionLine {
                    Text = ql,
                    CorrectAlternative = null
                });
            }
            Question.QuestionObject = JsonUtility.ToJson(QuestionObj, false);
        }
        return(Question);
    }
Exemple #28
0
    void loadQuestions()
    {
        string        question   = "Are you happy?";
        List <string> noanswers  = new List <string>();
        List <string> yesanswers = new List <string>();

        yesanswers.Add("Yes");
        yesanswers.Add("No");
        QuestionObject quest1 = new QuestionObject(question, yesanswers, noanswers);

        questionList.Add(quest1);

        question  = "School is important. Did you go today?";
        noanswers = new List <string>();
        noanswers.Add("No");
        yesanswers = new List <string>();
        yesanswers.Add("Yes");
        quest1 = new QuestionObject(question, yesanswers, noanswers);
        questionList.Add(quest1);

        question  = "Goals are important. Did you meet your goal for today?";
        noanswers = new List <string>();
        noanswers.Add("No");
        yesanswers = new List <string>();
        yesanswers.Add("Yes");
        quest1 = new QuestionObject(question, yesanswers, noanswers);
        questionList.Add(quest1);

        question  = "Friends and family can help us. How many can you name?";
        noanswers = new List <string>();
        noanswers.Add("0");
        yesanswers = new List <string>();
        yesanswers.Add("1-2");
        yesanswers.Add("2-5");
        yesanswers.Add("More than 5");
        quest1 = new QuestionObject(question, yesanswers, noanswers);
        questionList.Add(quest1);
    }
Exemple #29
0
    // 問題の選択
    public void ChoiceQuestion()
    {
        // データ数でランダム
        int choiceNum = UnityEngine.Random.Range(0, csvData.Count);

        questionObj = new QuestionObject(choiceNum);

        // 選択された問題から問題形式の取得と問題文、答えのセット
        int    questionFormatNum = Int32.Parse(csvData[choiceNum][0]);
        string questionText      = generator.QuestionFormatSwicher(questionFormatNum, csvData[choiceNum][1]);

        questionObj.questionText = questionText;
        questionObj.answerText   = csvData[choiceNum][2];
        //Debug.Log ("question:" + questionText);

        // 選択肢のセット
        int[] indexsRange = questionObj.SelectRange();
        for (int i = 0; i < indexsRange.Length; i++)
        {
            questionObj.choices[i] = csvData[indexsRange[i]][2];
            //Debug.Log ("choice" + i + ":" + choiceTexts[i]);
        }
    }
Exemple #30
0
    private QuestionObject CreateQuestionObject()
    {
        List <Alternative> alternatives = new List <Alternative>();

        foreach (string alternative in AlternativeTexts)
        {
            alternatives.Add(new Alternative {
                Text = alternative
            });
        }
        alternatives.RemoveAt(0);
        List <QuestionLine> questionLines = new List <QuestionLine>();

        foreach (GameObject questionLine in QuestionLineList)
        {
            Dropdown     correctAlternativeDropdown = questionLine.transform.GetChild(1).GetComponent <Dropdown>();
            QuestionLine ql = new QuestionLine {
                Text = questionLine.transform.GetChild(0).GetComponent <InputField>().text
            };
            //print(correctAlternativeDropdown.value + " : " + alternatives[correctAlternativeDropdown.value].Text);
            if (correctAlternativeDropdown.value == 0)
            {
                ql.CorrectAlternative = null;
            }
            else
            {
                ql.CorrectAlternative = alternatives[correctAlternativeDropdown.value - 1];
            }
            questionLines.Add(ql);
        }
        QuestionObject qObj = new QuestionObject {
            Alternatives  = alternatives,
            QuestionLines = questionLines
        };

        return(qObj);
    }
 void ManageQuestion(PlayerObject.TurnStatus _turnStatus)
 {
     switch (_turnStatus)
     {
         case PlayerObject.TurnStatus.Answering:
             if (_currentQuestion == null)
             {
                 int index = rand.Next(0, _questionList.Count - 1);
                 _currentQuestion = _questionList[index];
                 _questionList.RemoveAt(index);
                 _countQuestionAnswered += 1;
             }
             break;
         case PlayerObject.TurnStatus.QuestionBreakInteract:
             if (_currentQuestion == null)
             {
                 int index = rand.Next(0, _questionList.Count - 1);
                 _currentQuestion = _questionList[index];
                 _questionList.RemoveAt(index);
                 _countQuestionAnswered += 1;
             }
         break;
     }
 }
    void OnGUI()
    {
        if (!this.enabled) return;
        if (skin != null) if (GUI.skin != skin) GUI.skin = skin;
        if (_pObject.state == PlayerObject.PlayerState.Dead) return;

            ShowVictory();
            ShowCombo();
            ShowQuestionBreak();

        switch (_pObject._turnStatus)
        {
            case PlayerObject.TurnStatus.Idle:
                if (_countCorrectAnswer >= questionBreak) _countCorrectAnswer = 0;
                _pObject.state = PlayerObject.PlayerState.Normal;
            break;

            case PlayerObject.TurnStatus.Answering:

                if (_currentQuestion == null) return;
                _currentQuestion.promptFx();
                startx = Mathf.Lerp(startx, endx, Time.fixedDeltaTime * 3);
                cw = Mathf.Lerp(cw, w, Time.fixedDeltaTime * 3);
                ch = Mathf.Lerp(ch, h, Time.fixedDeltaTime * 3);
                GUI.Box(new Rect(0, 0, cw, ch), _currentQuestion.question);
                for (int x = 0; x < _currentQuestion.answers.Length; x++)
                {
                    if (left != null) GUI.DrawTexture(new Rect(10 + startx + (startx / 2 * x) + (Screen.width * 0.6f) / _currentQuestion.answers.Length, Screen.height * 0.2f + ((Screen.height * 0.1f * x) + 10) + 13 * x, (Screen.width * 0.05f), Screen.height * 0.1f), left);
                    if (GUI.Button(new Rect(startx + (startx / 2 * x), Screen.height * 0.2f + ((Screen.height * 0.1f * x) + 10) + 13 * x, (Screen.width * 0.6f) / _currentQuestion.answers.Length, Screen.height * 0.1f), _currentQuestion.answers[x]))
                    {
                        if (_currentQuestion.checkAnswer(x))
                        {
                            _pObject._turnStatus = PlayerObject.TurnStatus.Answered;
                            startx = -Screen.width * 0.6f;
                             AnswerResult.SetActive(true);
                            isCorrect = true;
                            isShowing = true;
                            _currentQuestion = null;
                            StartCoroutine(ToggleAnswerResult());
                            _countCorrectAnswer += 1;
                            if(!_pObject.useSpecial)
                            currentQb++;
                            if (combo < _pObject.maxCombo && !_pObject.useSpecial)
                            {
                                combo++;
                            }
                            return;
                        }
                        else
                        {
                            _pObject._turnStatus = PlayerObject.TurnStatus.Idle;
                            _currentQuestion = null;
                            startx = -Screen.width * 0.6f;
                            AnswerResult.SetActive(true);
                            isCorrect = false;
                            isShowing = true;
                            combo = 0;
                            StartCoroutine(ToggleAnswerResult());
                            return;
                        }
                    }
                }
                break;
            case PlayerObject.TurnStatus.QuestionBreakInteract:
                if (_currentQuestion == null) return;
                //Time Limit
                if (timer > 0) timer -= Time.fixedDeltaTime;
                else _pObject._turnStatus = PlayerObject.TurnStatus.Idle;
                //End Time Limit
                _currentQuestion.promptFx();
                startx = questionBreakPos.x = Mathf.Lerp(questionBreakPos.x, questionBreakPos.width, Time.fixedDeltaTime * 3);
                cw = Mathf.Lerp(cw, w, Time.fixedDeltaTime * 3);
                ch = Mathf.Lerp(ch, h, Time.fixedDeltaTime * 3);
                GUI.Box(new Rect(0, 0, cw, ch), _currentQuestion.question);
                for (int x = 0; x < _currentQuestion.answers.Length; x++)
                {
                    if (GUI.Button(new Rect(startx - ((Screen.width * 0.6f) / _currentQuestion.answers.Length / 2 * x), Screen.height * 0.2f + ((Screen.height * 0.1f * x) + 10) + 13 * x, (Screen.width * 0.6f) / _currentQuestion.answers.Length, Screen.height * 0.1f), _currentQuestion.answers[x]))
                    {
                        if (_currentQuestion.checkAnswer(x))
                        {
                            startx = -Screen.width * 0.6f;
                            AnswerResult.SetActive(true);
                            isCorrect = true;
                            isShowing = true;
                            _currentQuestion = null;
                            StartCoroutine(ToggleAnswerResult());
                            _countCorrectAnswer += 1;
                            _pObject._turnStatus = PlayerObject.TurnStatus.QuestionBreakAttack;
                            timer = questionBreakWindow + 0.5f;
                            return;
                        }
                        else
                        {
                            _pObject._turnStatus = PlayerObject.TurnStatus.Idle;
                            _currentQuestion = null;
                            startx = -Screen.width * 0.6f;
                            AnswerResult.SetActive(true);
                            isCorrect = false;
                            isShowing = true;
                            combo = 0;
                            StartCoroutine(ToggleAnswerResult());
                            return;
                        }
                    }
                }
                break;
            case PlayerObject.TurnStatus.MoveBack:
                if (combo == _pObject.maxCombo)
                {
                    combo = 0;
                    _pObject.useSpecial = true;
                }
                if (currentQb == questionBreak)
                {
                    _pObject.state = PlayerObject.PlayerState.Breaking;
                    _pObject._turnStatus = PlayerObject.TurnStatus.QuestionBreakSetup;
                    timer = questionBreakWindow;
                    currentQb = 0;
                }
                break;

        }
    }