Exemplo n.º 1
0
    public void LoadQuestions()
    {
        if (File.Exists(localQuestionXML))
        {
            XmlSerializer serializer = new XmlSerializer(typeof(QuestionDatabase));
            FileStream    stream     = new FileStream(localQuestionXML, FileMode.Open, FileAccess.ReadWrite);
            using (StreamReader _stream = new StreamReader(stream, Encoding.GetEncoding("UTF-8")))
            {
                questionDB = serializer.Deserialize(stream) as QuestionDatabase;
            }
            stream.Close();
        }
        else if (File.Exists(globalUnconfirmedQuestionXML))
        {
            XmlSerializer serializer = new XmlSerializer(typeof(QuestionDatabase));
            FileStream    stream     = new FileStream(globalUnconfirmedQuestionXML, FileMode.Open, FileAccess.ReadWrite);
            using (StreamReader _stream = new StreamReader(stream, Encoding.GetEncoding("UTF-8")))
            {
                questionDB = serializer.Deserialize(stream) as QuestionDatabase;
            }
            stream.Close();

            SaveQuestions(false);
        }
        else
        {
            SaveQuestions();
        }
    }
Exemplo n.º 2
0
        public void startManualTest()
        {
            Test            test            = initManualTest();
            QuestionManager questionManager = new QuestionManager();

            test.writeStartTime();
            QuestionDatabase handledDatabase = questionManager.manualStart(test);

            //questionManager.manualStart(test);
            finishTest(test, handledDatabase);
        }
Exemplo n.º 3
0
    /* ===========================
     * Question Database Class
     * ===========================
     * This class controls the start scene
     */
    public void Start()
    {
        // Always run the following in order

        // Imports questions to lists of strings from csv
        QuestionDatabase.ImportGame("Test");
        // Load all the strings into lists of Question Set Objects organized by categories
        Questions.LoadAllQuestions();

        FindObjectOfType <MusicManager>().Stop("Gameplay");
        FindObjectOfType <MusicManager>().Stop("ThemeSong");
        FindObjectOfType <MusicManager>().Play("ThemeSong");
    }
Exemplo n.º 4
0
    void OnEnable()
    {
        _questionDatabase = (QuestionDatabase)AssetDatabase.LoadAssetAtPath(kQuestionDataPath + "QuestionDatabase.asset", typeof(QuestionDatabase));

        if (_questionDatabase == null)
        {
            Directory.CreateDirectory(kQuestionDataPath);
            _questionDatabase = ScriptableObject.CreateInstance <QuestionDatabase>();
            AssetDatabase.CreateAsset(_questionDatabase, kQuestionDataPath + "QuestionDatabase.asset");
        }

        _listView   = new QuestionListView(_questionDatabase);
        _detailView = new QuestionDetailView(_questionDatabase);

        minSize = new UnityEngine.Vector2(1000, 600);
    }
Exemplo n.º 5
0
    public Question GetNewQuestion(string color, QuestionDatabase _qdb)
    {
        Question question;

        if (color.ToUpper() == "RED")
        {
            question = _qdb.GetQuestion(Category.RED);
        }
        else if (color.ToUpper() == "BLUE")
        {
            question = _qdb.GetQuestion(Category.BLUE);
        }
        else if (color.ToUpper() == "GREEN")
        {
            question = _qdb.GetQuestion(Category.GREEN);
        }
        else
        {
            question = _qdb.GetQuestion(Category.WHITE);
        }
        return(question);
    }
Exemplo n.º 6
0
 public static void LoadQuestions(QuestionDatabase database)
 {
     try {
         using(XmlReader reader = XmlReader.Create(database.FilePath)){
             reader.ReadToDescendant("QuestionGenerator");
             do {
                 QuestionGenerator generator = QuestionGenerator.CreateGeneratorFromXml(reader);
                 generator.m_database = database;
                 if(generator != null){
                     qEnumValid = false;
                     if(database.used) generators.Add(generator);
                     foreach(string tag in generator.m_tags){
                         tags[tag] = TagUsage.Some;
                         if(HasSubTag(tag)) tags[GetParentTag(tag)] = TagUsage.Some;
                     }
                 }
             } while(reader.ReadToNextSibling("QuestionGenerator"));
         }
     } catch {
         database.used = false;
         database.downloaded = false;
     }
 }
Exemplo n.º 7
0
 public void showResult(Test test, QuestionDatabase database)
 {
     Console.WriteLine("\nТест окончен.");
     Console.WriteLine("Сдающий: " + test.name);
     Console.WriteLine("Тема: " + test.topic);
     Console.WriteLine("Начат: " + test.startTestTime);
     Console.WriteLine("Закончен: " + test.finishTestTime);
     Console.WriteLine("Вопросов в тесте: " + test.numberQuestions);
     Console.WriteLine("Правильных ответов: " + test.rightAnswers);
     Console.WriteLine("Оценка: " + getMark(test.rightAnswers));
     if (test.numberQuestions == test.rightAnswers)
     {
         Console.WriteLine("Отлично!");
     }
     else
     {
         Console.Write("Ошибки допущены в следующих вопросах: ");
         foreach (var entry in test.wrongAnswers)
         {
             Console.Write(entry + " ");
         }
         Console.WriteLine();
         foreach (var entry in test.wrongAnswers)
         {
             LinkedList <Question>     questions = database.getQuestions();
             LinkedListNode <Question> firstNode = questions.First;
             for (LinkedListNode <Question> question = firstNode; question != null; question = question.Next)
             {
                 Question node = question.Value;
                 if (node.getId() == entry)
                 {
                     node.showRightAnswer();
                 }
             }
         }
     }
 }
Exemplo n.º 8
0
 public void finishTest(Test test, QuestionDatabase database)
 {
     test.writeFinishTime();
     showResult(test, database);
     logTest(test);
 }
Exemplo n.º 9
0
 public QuestionListView(QuestionDatabase questionDatabase)
 {
     _questionDatabase = questionDatabase;
 }
Exemplo n.º 10
0
 private static List<QuestionDatabase> LoadDatabasesFromStream(TextReader reader, bool isLocal)
 {
     List<QuestionDatabase> databases = new List<QuestionDatabase>();
     if(isLocal) globalFileIndex = int.Parse(reader.ReadLine());
     int databasesCount = int.Parse(reader.ReadLine());
     for(int n = 0; n < databasesCount; n++){
         QuestionDatabase database = new QuestionDatabase();
         database.name = reader.ReadLine();
         database.url = reader.ReadLine();
         if(isLocal){
             database.fileIndex = int.Parse(reader.ReadLine());
             database.used = bool.Parse(reader.ReadLine());
             database.downloaded = bool.Parse(reader.ReadLine());
         }
         databases.Add(database);
     }
     return databases;
 }
Exemplo n.º 11
0
 public QuestionDetailView(QuestionDatabase questionDatabase)
 {
     _questionDatabase = questionDatabase;
 }
Exemplo n.º 12
0
 public QuestionText(int index)
 {
     list     = Resources.LoadAll <Sprite>("Sprites");
     question = "Welcher ist der " + QuestionDatabase.getAnswer(index);
     answers  = GenerateQuestion(index);
 }
Exemplo n.º 13
0
 public GameData()
 {
     BiologData       = ResourcesExt.Load <BiologData>("Biolog/Database/BiologData_Converted");
     ItemDatabase     = ResourcesExt.Load <ItemDatabase>("Inventory/Database/InventoryDatabase");
     QuestionDatabase = ResourcesExt.Load <QuestionDatabase>("Questions/Database/QuestionDatabase");
 }
Exemplo n.º 14
0
 // Start is called before the first frame update
 void Start()
 {
     _qdb = new QuestionDatabase();
 }
Exemplo n.º 15
0
    public static IEnumerator TryToAddNewDatabase()
    {
        if(databases.Exists(db => db.url.Equals(newDatabaseUrl))){
            resultLog = "Current database already exists.";
            yield break;
        }

        loadingDatabases = true;
        progress = 0f;

        currentRequest = new WWW(QuestionDatabase.newDatabaseUrl);
        yield return currentRequest;
        if(currentRequest.error != null){
            resultLog = "ERROR: " + currentRequest.error;
        } else {
            QuestionDatabase newDatabase = new QuestionDatabase();
            newDatabase.name = Path.GetFileNameWithoutExtension(QuestionDatabase.newDatabaseUrl);
            newDatabase.url = QuestionDatabase.newDatabaseUrl;
            newDatabase.fileIndex = globalFileIndex;
            newDatabase.used = true;
            newDatabase.downloaded = true;

            StreamWriter writer = new StreamWriter(newDatabase.FilePath);
            writer.Write(currentRequest.text);
            writer.Close();

            QuestionsScript.LoadQuestions(newDatabase);
            if(newDatabase.downloaded){
                globalFileIndex++;
                databases.Add(newDatabase);
                resultLog = "Added new database successfully.";
                justLoadedDatabases = true;
            } else {
                resultLog = "The database file is not in a valid format.";
                File.Delete(newDatabase.FilePath);
            }
        }
        loadingDatabases = false;
    }
Exemplo n.º 16
0
 public QuestionPicture(int index)
 {
     list     = Resources.LoadAll <Sprite>("Sprites");
     question = list [index];
     answer   = QuestionDatabase.getAnswer(index);
 }