View difference between Paste ID: snkGnn8e and cRwp4LYa
SHOW: | | - or go back to the newest paste.
1
package;
2
3
import openfl.Lib;
4
import sys.db.Connection;
5
import sys.db.Sqlite;
6
7
/**
8
 * ...
9
 * @author Reka
10
 */
11
class Database 
12
{
13
	static var questionID:Int = 1;
14
	static var myAnswerContainer:Answer;
15
	
16
	public static function resetQuestionID()
17
	{
18
		questionID = 1;
19
	}
20
	
21
	/**
22
	 * Load the information of the next question, answer options and correct index.
23
	 * Also resets the timer variables.
24
	 */
25
	public static function loadQuestion()
26
	{
27
		var questionText:String = "";
28
		var answer1Text:String = "";
29
		var answer2Text:String = "";
30
		var answer3Text:String = "";
31
		var correctAnswer:Int = 1;
32
		
33
		var db = Sqlite.open("img/databass.db");
34
		var result = db.request("SELECT * FROM QnA WHERE QuestionID==" + questionID);
35
		for (row in result)
36
		{
37
			questionText = row.Question;
38
			answer1Text = row.Answer1;
39
			answer2Text = row.Answer2;
40
			if (row.Answer3 != null){
41
				answer3Text = row.Answer3;
42
			}
43
			correctAnswer = row.CorrectAnswer;
44
		}
45
		db.close();
46
		
47
		myAnswerContainer = new Answer(questionText, answer1Text, answer2Text, answer3Text, correctAnswer);		
48
		return myAnswerContainer;
49
	}
50
	
51
	/**
52
	 * Check the given answer against the correct answer.
53
	 * If correct answer, add points. Otherwise subtract.
54
	 * Whichever: update the score field and load the next question.
55
	 * 
56
	 * @param	fieldIndex The index of the answer given.
57
	 */
58
	public static function checkAnswer(fieldIndex:Int) 
59
	{
60
		var newQuestionID = 0;
61
		var db = Sqlite.open("img/databass.db");
62
		var result = db.request("SELECT * FROM QnA WHERE QuestionID==" + questionID);
63
		for (row in result)
64
		{
65
			if (fieldIndex == 1)
66
				newQuestionID = row.A1Next;
67
			else if (fieldIndex == 2)
68
				newQuestionID = row.A2Next;
69
			else if (fieldIndex == 3){
70
				if (row.A3Next != null){
71
					newQuestionID = row.A3Next;
72
				} else {
73
					return;
74
				}
75
				
76
			}
77
		}
78
		db.close();
79
		
80
		//scoreDisplay.text = Std.string(score);
81
		questionID = newQuestionID;
82
	}
83
	
84
	public static function PostScore(playerName:String, playerScore:Int)
85
	{
86
		var db = Sqlite.open("img/hallofame.db");
87
		db.request("INSERT INTO hallofame (Player,Score) VALUES ('" + playerName + "'," + Std.string(playerScore) + ")");
88
		db.close();
89
	}
90
	
91
	// Get the 10 highest scoring players from the leaderboard table in the database
92
	public static function GetScores()
93
	{
94
		var db = Sqlite.open("img/hallofame.db");
95
		var results = db.request("SELECT * FROM hallofame ORDER BY Score DESC limit 10");
96
		var entries:Array<Leaderboard> = new Array<Leaderboard>();
97
		for (row in results)
98
		{	
99
			var entry:Leaderboard = new Leaderboard(row.Player, row.Score);
100
			entries.push( entry );
101
		}
102
		db.close();
103
		return entries;
104
	}
105
}