T201704041219
This commit is contained in:
96
answer.php
96
answer.php
@@ -6,58 +6,58 @@
|
||||
* Time: 14:00
|
||||
*/
|
||||
|
||||
require_once('includes.inc.php');
|
||||
$data = '';
|
||||
$error = 0;
|
||||
$uid = isset($_GET['uid']) ? $_GET['uid'] : '';
|
||||
$time = isset($_GET['time']) ? $_GET['time'] : '';
|
||||
$time = (($time === '0') || ($time && gettype(+$time) == 'integer')) ? +$_GET['time'] : 0;
|
||||
$db = new Database();
|
||||
$chosen_answer = isset($_GET['answer']) ? $_GET['answer'] : '';
|
||||
$chosen_answer = (($chosen_answer === '0') || ($chosen_answer && gettype(+$chosen_answer) == 'integer')) ? +$_GET['answer'] : -1;
|
||||
require_once('includes.inc.php');
|
||||
$data = '';
|
||||
$error = 0;
|
||||
$uid = isset($_GET['uid']) ? $_GET['uid'] : '';
|
||||
$time = isset($_GET['time']) ? $_GET['time'] : '';
|
||||
$time = (($time === '0') || ($time && gettype(+$time) == 'integer')) ? +$_GET['time'] : 0;
|
||||
$db = new Database();
|
||||
$chosen_answer = isset($_GET['answer']) ? $_GET['answer'] : '';
|
||||
$chosen_answer = (($chosen_answer === '0') || ($chosen_answer && gettype(+$chosen_answer) == 'integer')) ? +$_GET['answer'] : -1;
|
||||
|
||||
function calculate_points($time) {
|
||||
$points = $time < 2000 ? 100 : 141.1421 - 0.02842916 * $time + 0.000004132312 * pow($time, 2)
|
||||
- 3.432331e-10 * pow($time, 3) + 1.391508e-14 * pow($time, 4) - 2.166078e-19 * pow($time, 5);
|
||||
$points = $points < 10 ? 10 : intval($points);
|
||||
return $points;
|
||||
}
|
||||
function calculate_points($time) {
|
||||
$points = $time < 2000 ? 100 : 141.1421 - 0.02842916 * $time + 0.000004132312 * pow($time, 2)
|
||||
- 3.432331e-10 * pow($time, 3) + 1.391508e-14 * pow($time, 4) - 2.166078e-19 * pow($time, 5);
|
||||
$points = $points < 10 ? 10 : intval($points);
|
||||
return $points;
|
||||
}
|
||||
|
||||
$correct_answer = $db->query('SELECT "current_right_answer" FROM "Games" WHERE "ID" = $1', array($uid))
|
||||
['data'][0]['current_right_answer'];
|
||||
$correct = $correct_answer == $chosen_answer ? true : false;
|
||||
$score = $correct_answer == $chosen_answer ? calculate_points($time) : 0;
|
||||
if($uid == '') {
|
||||
$error = 13101;
|
||||
} else if($time == 0) {
|
||||
$error = 13102;
|
||||
} else if($chosen_answer == -1) {
|
||||
$error = 13103;
|
||||
} else if($db->query('SELECT EXISTS (SELECT 1 FROM "Games" WHERE "ID" = $1)', array($uid))
|
||||
['data'][0]['exists'] == 'f') {
|
||||
$error = 13104;
|
||||
$correct_answer = $db->query('SELECT "current_right_answer" FROM "Games" WHERE "ID" = $1', array($uid))
|
||||
['data'][0]['current_right_answer'];
|
||||
$correct = $correct_answer == $chosen_answer ? true : false;
|
||||
$score = $correct_answer == $chosen_answer ? calculate_points($time) : 0;
|
||||
if($uid == '') {
|
||||
$error = 13101;
|
||||
} else if($time == 0) {
|
||||
$error = 13102;
|
||||
} else if($chosen_answer == -1) {
|
||||
$error = 13103;
|
||||
} else if($db->query('SELECT EXISTS (SELECT 1 FROM "Games" WHERE "ID" = $1)', array($uid))
|
||||
['data'][0]['exists'] == 'f') {
|
||||
$error = 13104;
|
||||
} else {
|
||||
$old_points = $db->query('SELECT "current_score" FROM "Games" WHERE "ID" = $1', array($uid))
|
||||
['data'][0]['current_score'];
|
||||
$new_points = $old_points + $score;
|
||||
$db->query('UPDATE "Games" SET "current_score" = $1 WHERE "ID" = $2', array($new_points, $uid));
|
||||
$results = array('correct' => $correct, 'score' => $score);
|
||||
$old_time = $db->query('SELECT "total_time" FROM "Games" WHERE "ID" = $1', array($uid))
|
||||
['data'][0]['total_time'];
|
||||
$new_time = $old_time + $time;
|
||||
$db->query('UPDATE "Games" SET "total_time" = $1 WHERE "ID" = $2', array($new_time, $uid));
|
||||
if($db->query('SELECT EXISTS (SELECT 1 FROM "GamesQuestions" WHERE "Games_ID" = $1)',array($uid))
|
||||
['data'][0]['exists'] == 't') {
|
||||
$next_question = Question::get_next_question($db, $uid);
|
||||
$data = array('results' => $results, 'next' => $next_question);
|
||||
} else {
|
||||
$old_points = $db->query('SELECT "current_score" FROM "Games" WHERE "ID" = $1', array($uid))
|
||||
['data'][0]['current_score'];
|
||||
$new_points = $old_points + $score;
|
||||
$db->query('UPDATE "Games" SET "current_score" = $1 WHERE "ID" = $2', array($new_points, $uid));
|
||||
$results = array('correct' => $correct, 'score' => $score);
|
||||
$old_time = $db->query('SELECT "total_time" FROM "Games" WHERE "ID" = $1', array($uid))
|
||||
['data'][0]['total_time'];
|
||||
$new_time = $old_time + $time;
|
||||
$db->query('UPDATE "Games" SET "total_time" = $1 WHERE "ID" = $2', array($new_time, $uid));
|
||||
if($db->query('SELECT EXISTS (SELECT 1 FROM "GamesQuestions" WHERE "Games_ID" = $1)',array($uid))
|
||||
['data'][0]['exists'] == 't') {
|
||||
$next_question = Question::get_next_question($db, $uid);
|
||||
$data = array('results' => $results, 'next' => $next_question);
|
||||
} else {
|
||||
$end = array('score' => $new_points, 'time' => $new_time);
|
||||
$data = array('results' => $results, 'end' => $end);
|
||||
$db->query('DELETE FROM "Games" WHERE "ID" = $1', array($uid));
|
||||
}
|
||||
$end = array('score' => $new_points, 'time' => $new_time);
|
||||
$data = array('results' => $results, 'end' => $end);
|
||||
$db->query('DELETE FROM "Games" WHERE "ID" = $1', array($uid));
|
||||
}
|
||||
}
|
||||
|
||||
$response = Database::create_response($data, $error);
|
||||
print_r($response);
|
||||
$response = Database::create_response($data, $error);
|
||||
print_r($response);
|
||||
|
||||
?>
|
||||
15
categories.php
Normal file
15
categories.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: leanderschmedemann
|
||||
* Date: 04/04/2017
|
||||
* Time: 12:14
|
||||
*/
|
||||
|
||||
require_once('includes.inc.php');
|
||||
$db = new Database();
|
||||
|
||||
$categories = $db->query('SELECT "ID", "name" FROM "Categories"')['data'];
|
||||
print_r($categories);
|
||||
|
||||
?>
|
||||
38
register.php
38
register.php
@@ -6,27 +6,27 @@
|
||||
* Time: 10:23
|
||||
*/
|
||||
|
||||
require_once('includes.inc.php');
|
||||
define('PATTERN', '/^[a-zA-Z0-9 ]{6,20}$/');
|
||||
$data = '';
|
||||
$error = 0;
|
||||
$name = isset($_GET['name']) ? $_GET['name'] : '';
|
||||
$uid = md5(uniqid(rand(), true));
|
||||
$db = new Database();
|
||||
require_once('includes.inc.php');
|
||||
define('PATTERN', '/^[a-zA-Z0-9 ]{6,20}$/');
|
||||
$data = '';
|
||||
$error = 0;
|
||||
$name = isset($_GET['name']) ? $_GET['name'] : '';
|
||||
$uid = md5(uniqid(rand(), true));
|
||||
$db = new Database();
|
||||
|
||||
if(preg_match(PATTERN, $name) != 1) {
|
||||
$error = 11101;
|
||||
if(preg_match(PATTERN, $name) != 1) {
|
||||
$error = 11101;
|
||||
} else {
|
||||
// Create user.
|
||||
$db->query('INSERT INTO "Users" ("ID", "name") VALUES ($1, $2)', array($uid, $name));
|
||||
// Create error if user to create already exists.
|
||||
if(preg_match('/violates unique constraint "Users_name_unique"/', pg_last_error()) == 1) {
|
||||
$error = 11102;
|
||||
} else {
|
||||
// Create user.
|
||||
$db->query('INSERT INTO "Users" ("ID", "name") VALUES ($1, $2)', array($uid, $name));
|
||||
// Create error if user to create already exists.
|
||||
if(preg_match('/violates unique constraint "Users_name_unique"/', pg_last_error()) == 1) {
|
||||
$error = 11102;
|
||||
} else {
|
||||
$data = array('uid' => $uid, 'name' => $name);
|
||||
}
|
||||
$data = array('uid' => $uid, 'name' => $name);
|
||||
}
|
||||
$response = Database::create_response($data, $error);
|
||||
print $response;
|
||||
}
|
||||
$response = Database::create_response($data, $error);
|
||||
print $response;
|
||||
|
||||
?>
|
||||
38
rename.php
38
rename.php
@@ -6,27 +6,27 @@
|
||||
* Time: 12:07
|
||||
*/
|
||||
|
||||
require_once('includes.inc.php');
|
||||
define('PATTERN', '/^[a-zA-Z0-9 ]{6,20}$/');
|
||||
$data = '';
|
||||
$error = 0;
|
||||
$name = isset($_GET['name']) ? $_GET['name'] : '';
|
||||
$uid = md5(uniqid(rand(), true));
|
||||
$db = new Database();
|
||||
require_once('includes.inc.php');
|
||||
define('PATTERN', '/^[a-zA-Z0-9 ]{6,20}$/');
|
||||
$data = '';
|
||||
$error = 0;
|
||||
$name = isset($_GET['name']) ? $_GET['name'] : '';
|
||||
$uid = md5(uniqid(rand(), true));
|
||||
$db = new Database();
|
||||
|
||||
if(preg_match(PATTERN, $name) != 1) {
|
||||
$error = 14101;
|
||||
if(preg_match(PATTERN, $name) != 1) {
|
||||
$error = 14101;
|
||||
} else {
|
||||
// Create user.
|
||||
$db->query('UPDATE "Users" SET "name" = $1 WHERE "ID" = $2', array($name, $uid));
|
||||
// Create error if user to create already exists.
|
||||
if(preg_match('/violates unique constraint "Users_name_unique"/', pg_last_error()) == 1) {
|
||||
$error = 14102;
|
||||
} else {
|
||||
// Create user.
|
||||
$db->query('UPDATE "Users" SET "name" = $1 WHERE "ID" = $2', array($name, $uid));
|
||||
// Create error if user to create already exists.
|
||||
if(preg_match('/violates unique constraint "Users_name_unique"/', pg_last_error()) == 1) {
|
||||
$error = 14102;
|
||||
} else {
|
||||
$data = array('uid' => $uid, 'name' => $name);
|
||||
}
|
||||
$data = array('uid' => $uid, 'name' => $name);
|
||||
}
|
||||
$response = Database::create_response($data, $error);
|
||||
print $response;
|
||||
}
|
||||
$response = Database::create_response($data, $error);
|
||||
print $response;
|
||||
|
||||
?>
|
||||
84
start.php
84
start.php
@@ -6,51 +6,51 @@
|
||||
* Time: 14:07
|
||||
*/
|
||||
|
||||
require_once('includes.inc.php');
|
||||
$data = '';
|
||||
$error = 0;
|
||||
$values = null;
|
||||
$uid = isset($_GET['uid']) ? $_GET['uid'] : '';
|
||||
$length = isset($_GET['length']) ? $_GET['length'] : '';
|
||||
$length = (($length === '0') || ($length && gettype(+$length) == 'integer')) ? +$_GET['length'] : 10;
|
||||
$db = new Database();
|
||||
$questions_count = $db->query('SELECT COUNT(*) FROM "Questions"')['data'][0]['count'];
|
||||
require_once('includes.inc.php');
|
||||
$data = '';
|
||||
$error = 0;
|
||||
$values = null;
|
||||
$uid = isset($_GET['uid']) ? $_GET['uid'] : '';
|
||||
$length = isset($_GET['length']) ? $_GET['length'] : '';
|
||||
$length = (($length === '0') || ($length && gettype(+$length) == 'integer')) ? +$_GET['length'] : 10;
|
||||
$db = new Database();
|
||||
$questions_count = $db->query('SELECT COUNT(*) FROM "Questions"')['data'][0]['count'];
|
||||
|
||||
// Return $count random, non repeating numbers in range from $min to $max.
|
||||
function random_numbers($min, $max, $count){
|
||||
$numbers = range($min, $max);
|
||||
shuffle($numbers);
|
||||
return array_slice($numbers, 0, $count-1);
|
||||
// Return $count random, non repeating numbers in range from $min to $max.
|
||||
function random_numbers($min, $max, $count){
|
||||
$numbers = range($min, $max);
|
||||
shuffle($numbers);
|
||||
return array_slice($numbers, 0, $count-1);
|
||||
}
|
||||
|
||||
if($uid == '') {
|
||||
$error = 12101;
|
||||
} else if($length == 0) {
|
||||
$error = 12102;
|
||||
} else if($length > $questions_count) {
|
||||
$error = 12103;
|
||||
$values = array($questions_count);
|
||||
} else {
|
||||
// Delete existing game for user.
|
||||
if($db->query('SELECT EXISTS (SELECT 1 FROM "Games" WHERE "ID" = $1)', array($uid))['data'][0]['exists'] == 't') {
|
||||
$db->query('DELETE FROM "Games" WHERE "ID" = $1', array($uid));
|
||||
}
|
||||
|
||||
if($uid == '') {
|
||||
$error = 12101;
|
||||
} else if($length == 0) {
|
||||
$error = 12102;
|
||||
} else if($length > $questions_count) {
|
||||
$error = 12103;
|
||||
$values = array($questions_count);
|
||||
} else {
|
||||
// Delete existing game for user.
|
||||
if($db->query('SELECT EXISTS (SELECT 1 FROM "Games" WHERE "ID" = $1)', array($uid))['data'][0]['exists'] == 't') {
|
||||
$db->query('DELETE FROM "Games" WHERE "ID" = $1', array($uid));
|
||||
}
|
||||
// Create new game for user.
|
||||
$db->query('INSERT INTO "Games" ("ID") VALUES ($1)', array($uid));
|
||||
if(preg_match('/violates foreign key constraint "Games_ID_fkey"/', pg_last_error()) == 1) {
|
||||
$error = 12104;
|
||||
}
|
||||
// Find questions for new game and insert into table.
|
||||
$questions = random_numbers(0, $questions_count-1, $length);
|
||||
foreach($questions as $question) {
|
||||
$q = $db->query('SELECT "ID" FROM "Questions" OFFSET $1 LIMIT 1', array($question))['data'][0]['ID'];
|
||||
$db->query('INSERT INTO "GamesQuestions" ("Games_ID", "Questions_ID") VALUES ($1, $2)', array($uid, $q));
|
||||
}
|
||||
// Create new game for user.
|
||||
$db->query('INSERT INTO "Games" ("ID") VALUES ($1)', array($uid));
|
||||
if(preg_match('/violates foreign key constraint "Games_ID_fkey"/', pg_last_error()) == 1) {
|
||||
$error = 12104;
|
||||
}
|
||||
// Find questions for new game and insert into table.
|
||||
$questions = random_numbers(0, $questions_count-1, $length);
|
||||
foreach($questions as $question) {
|
||||
$q = $db->query('SELECT "ID" FROM "Questions" OFFSET $1 LIMIT 1', array($question))['data'][0]['ID'];
|
||||
$db->query('INSERT INTO "GamesQuestions" ("Games_ID", "Questions_ID") VALUES ($1, $2)', array($uid, $q));
|
||||
}
|
||||
}
|
||||
|
||||
$next_question = Question::get_next_question($db, $uid);
|
||||
$data = array('next' => $next_question);
|
||||
$next_question = Question::get_next_question($db, $uid);
|
||||
$data = array('next' => $next_question);
|
||||
|
||||
$response = Database::create_response($data, $error, $values);
|
||||
print_r($response);
|
||||
$response = Database::create_response($data, $error, $values);
|
||||
print_r($response);
|
||||
?>
|
||||
Reference in New Issue
Block a user