//gold $changeLog[] = "<li><span class='label label-warning'>Gold Coins</span>:<b>+<span class='text-success'>{$gcRw}</span></b></li>"; for ($i = 0; $i < sizeof($skills); $i++) { setScore($skills[$i], $userID, getScore($skills[$i], $userID) + $scoreIncr); $changeLog[] = "<li>" . getStatInfo($skills[$i], 'display_name') . ":<b> +{$scoreIncr}</b> Confidence points</li>"; } //$changeLog[] = "<li>Overall Player Confidence:<b>+$confCorrGain</b> Confidence points</span></li>"; //$changeLog[] = "<li>Quiz Mode:<b> +$skillCorrGain</b> Confidence points</span></li>"; //$changeLog[] = "<li>Streak Bonus: <b>+$streakBonus</b> Confidence points</span></li>"; //------------------INCREMENT GENERAL SKILLS $result = "<span style='color:green;'>CORRECT!</span>"; } elseif ($wordIDGuess != $answerID) { $correct = false; setStat('conf', $userID, getStat('conf', $userID) - $confWrongPen); //overall conf stat setSkill($progressVoc, $userID, getSkill($progressVoc, $userID) - $skillWrongPen); //cvset prog skill setStat('gold', $userID, getStat('gold', $userID) - $gcPen); //gold incrUserDeckStat('stats_incorrect', $cvset, $vstyle, $userID); for ($i = 0; $i < sizeof($skills); $i++) { setStat($skills[$i], $userID, getScore($skills[$i], $userID) - $scoreDecr); $changeLog[] = "<li>" . getStatInfo($skills[$i], 'display_name') . ": <span class='text-danger'>-{$scoreDecr} Confidence points</span></li>"; } $_SESSION['streak'] = 0; } //Update Statistics //insertFlashcardResults($user_id,$deck_id,$word_id,$word_lv,$vstyle_id,$correct,$time_taken); //****************************************************** //****CHECK IF PLAYER LEVELED UP & PREPARE DISPLAY VARIABLES*** //******************************************** $lvUp = setLevelUp($userID, 'quiz');
<small><small><a href="http://www.JPVocab.com/player.php?player=<?php echo $user['username']; ?> &report=flashcardrank">Flashcard Ranking</a>: <?php echo ordinal(getUserFCardRank($user['id'])); ?> </small> </td> <td> <small>Currently Practicing <a href="<?php echo getDeckFullUrl(getSkill('cvset', $user['id'])); ?> "> <?php echo getDeckInfo(getSkill('cvset', $user['id']), 'display_name'); ?> </a></small> </td> </tr> <tr><td colspan="2"><small><b><?php echo getStat('ttldks', $user['id']); ?> </b> Decks owned</small></td></tr> <tr><td colspan="2"><small><b><?php echo getStat('ttlpvstyl', $user['id']); ?> </b> Quiz Modes owned</small></td></tr> </table>
include_once $_SERVER['DOCUMENT_ROOT'] . "/stats.php"; $abcAr = array("A.", "B.", "C.", "D.", "E."); $cvset = getSkill('cvset', $userID); $vstyle = getSkill('vStyle', $userID); $vstyleDisp = $vstyle == "kanjiRE" ? "<span class='text-success'><b>Easy</b></span>: <small><i>Introduce Word</i></small>" : ($vstyle == "kanjiE" ? "<span class='text-warning'><b>Medium</b></span>: <small><i>Learn Kanji Meaning</i></small>" : ($vstyle == "kanjiH" ? "<span class='text-danger'><b>Hard</b></span>: <small><i>Learn Kanji Reading</i></small>" : ($vstyle == "audioR" ? "<span class='text-info'><b>Audio Card</b></span>: <small><i>Learn Spelling</i></small>" : ($vstyle == "audioE" ? "<span class='text-info'><b>Audio Card</b></span>: <small><i>Learn English</i></small>" : "")))); //----------------------------ASSIGN USER'S DECK VSTYLE LEVELS //----------------------------------------------Japanese $mxDkLv = getDeckInfo($cvset, 'levels'); $vstyleLv = getSkill($cvset . '_' . $vstyle . '_lv', $userID); $vsLvEZ = getDeckInfo($cvset, 'kanjiRE') ? getSkill($cvset . '_kanjiRE_lv', $userID) : '∞'; $vsLvMed = getDeckInfo($cvset, 'kanjiE') ? getSkill($cvset . '_kanjiE_lv', $userID) : '∞'; $vsLvHard = getDeckInfo($cvset, 'kanjiH') ? getSkill($cvset . '_kanjiH_lv', $userID) : '∞'; //----------------------------------------------Audio $vsLvAEZ = getDeckInfo($cvset, 'audioR') ? getSkill($cvset . '_audioR_lv', $userID) : '∞'; $vsLvAMed = getDeckInfo($cvset, 'audioE') ? getSkill($cvset . '_audioE_lv', $userID) : '∞'; $vsLvAHard = getDeckInfo($cvset, 'audioK') ? getSkill($cvset . '_audioH_lv', $userID) : '∞'; $abcAr = array("A.", "B.", "C.", "D.", "E."); //Vstyle Background Option if ($vstyle == 'kanjiRE') { $vstyleBG = "success"; } elseif ($vstyle == 'kanjiH') { $vstyleBG = "danger"; } elseif ($vstyle == 'kanjiE') { $vstyleBG = "warning"; } else { if ($vstyle == 'audioR') { $vstyleBG = 'info'; } } //Left column variables $cvsetDisplay = getDeckInfo($cvset, "display_name");
$answerChoices[$rand]['id'] = $answerID; $answerChoices[$rand][$element] = $answer; //print_r($answerChoices); //Finalized Variables Used in kanjiRE.php $question = $vstyle == 'audioR' || $vstyle == 'audioK' ? getWordInfo('audio_filename', $questionID, $questionFromBank) : getWord($questionID, $questionFromBank); if (isSentencesDeck(getVocStat('cvset', $userID)) == '1') { $sentences = getSentences($questionID); } else { $sentences = False; } } elseif (getSkill('vStyle', $userID) == 'engK' || getSkill('vStyle', $userID) == 'engKR') { //*************************************************************************************************** //*************************************English<-->Kanji+Hiragana; Hiragana*************************** //*************************************************************************************************** //$choiceQ = 5; $questionFromBank = 'etest'; $answerFromBank = 'jtest'; //get word $questionID = getQuizWordID($userID, getSkill('vStyle', $userID)); //echo "newQuesID is: $questionID <br />"; $question = getWord($questionID, $questionFromBank); $answerID = getAnswerIDVocab($questionID, $questionFromBank); $answer = getWord($answerID, $answerFromBank); //get random words in HIRAGANA $answerChoices = getRandomWords($choiceQ, $answerFromBank, $answerID, $userID, 'word'); //need to get hiragana, not kanji //hide answer within choices $rand = rand(0, $choiceQ - 1); $answerChoices[$rand] = $answer; list($choice1, $choice2, $choice3, $choice4, $choice5) = $answerChoices; }
//setOwnershipDeck('minna',$userID);//sets ownership of deck(adds this deck to users' user_decks); initializesdeck_lv, deck_progress, deck_prog_max setOwnershipDeck('minna', $userID); //sets ownership of deck(adds this deck to users' user_decks); initializesdeck_lv, deck_progress, deck_prog_max setSkill('cvset', $userID, 'minna'); setSkill('vstyle', $userID, 'kanjiRE'); // CREATE THEIR SESSIONS AND COOKIES $_SESSION['username'] = $u; $_SESSION['prevID'] = 1; $_SESSION['guestInit'] = true; } /******************************************************************************************************************/ require_once 'words.php'; require_once 'stats.php'; require_once 'config.php'; $userID = getUserID($u); $cvset = getSkill('cvset', $userID); $userDeckIds = getUserDecks(getUserID($u)); $currentConf = getStat('conf', $userID); $maxconf = getStat('maxconf', $userID); $currConfPerc = $currentConf / $maxconf * 100; $_SESSION['streak'] = 0; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="robots" content="NOODP"> <meta name="description" content="Japanese Flashcards. Many decks. Many styles. - jpvocab.com">
$_SESSION['streak'] = 0; $result = "<span style='color:#E15119'>WRONG..</span>"; } $changeLog[] = "</ul></div>"; //******************************************************************************* //********CHECK IF PLAYER LEVELED UP & PREPARE DISPLAY VARIABLES***************** //******************************************************************************* $lvUp = setLevelUp($userID, 'quiz'); //change lv's if needed //Prepare Summary of Guess Results (correct/incorrect) for User Display $previousQ = "<span style='color:green;'>" . getWord($_POST['questionID'], $questionFromBank) . "</span>"; if (getSkill('vStyle', $userID) == 'kanjiH') { $previousA = "<span style='color:green;'>" . getReading($answerID, $answerFromBank) . "</span>"; } else { $previousA = "<span style='color:green;'>" . getWord($answerID, $answerFromBank) . "</span>"; } $origQ = getWord($_POST['questionID'], $questionFromBank); $lv = getStat('lv', $userID); $currentConf = getStat('conf', $userID); $maxconf = getStat('maxconf', $userID); $currConfPerc = $currentConf / $maxconf * 100; $vsLv = getSkill($cvset . '_' . $vstyle . '_lv', $userID); $vsProg = getSkill($cvset . '_' . $vstyle . '_prog', $userID); $vsProgMax = getSkill($cvset . '_' . $vstyle . '_prog_max', $userID); } include '../display_mc.php'; ?>
<?php //Defining Variables $vstyleDescr = getVstyleInfo($vstyle, 'vstyle_description'); $progPerc = round(100 * (getSkill($cvset . '_' . $vstyle . '_prog', $userID) / getSkill($cvset . '_' . $vstyle . '_prog_max', $userID)), 0); error_log("progPerc {$progPerc}"); $percentLeft = 100 - $progPerc; if ($vstyle == 'kanjiRE') { $progStyle = 'progress-bar-success'; } elseif ($vstyle == 'kanjiE') { $progStyle = 'progress-bar-warning'; } elseif ($vstyle == 'kanjiH') { $progStyle = 'progress-bar-danger'; } ?> <div class="progress progress-striped " id="quizProgBar"> <div class="progress-bar active <?php echo $progStyle; ?> " role="progressbar" aria-valuenow="<?php echo $progPerc; ?> " aria-valuemin="0" aria-valuemax="100" style="min-width:2em; width: <?php echo $progPerc; ?> %;"> <?php echo $progPerc; ?> % Completed </div>
function renderDefense($char_data) { $rating = getRating($char_data[UNIT_FIELD_LEVEL]); $skill = getSkill(SKILL_DEFENSE, $char_data); $defRating = $char_data[PLAYER_FIELD_DEFENSE_RATING]; $RatingAdd = $defRating / GetRatingCoefficient($rating, CR_DEFENSE_SKILL); $Buff = $skill[4] + $skill[5] + intval($RatingAdd); $effectiveStat = $skill[2] + $Buff; $defensePercent = DODGE_PARRY_BLOCK_PERCENT_PER_DEFENSE * ($effectiveStat - $char_data[UNIT_FIELD_LEVEL] * 5); $defensePercent = max($defensePercent, 0); createTopTable(); printf("<TR><TD class=head>Defense %d</TD></TR>", $effectiveStat); printf("<TR><TD>Defense Rating %d (+%d Defense)<br>", $defRating, $RatingAdd); printf("Increases chance to Dodge, Block and Parry by %.2f%%<br>", $defensePercent); printf("Decreases chance to be hit and critically hit by %.2f%%</TD></TR>", $defensePercent); $valueClass = "normStat"; if ($Buff < 0) { $valueClass = "negStat"; } else { if ($Buff > 0) { $valueClass = "posStat"; } } createEndTable($valueClass, $effectiveStat); }
<?php session_start(); header('Content-Type: text/html; charset=utf-8'); include_once "../include/check_login.php"; //if($user_ok == false){header("location: ../logout.php");} include_once '../stats.php'; $userId = getUserID(preg_replace('#[^a-z0-9]#i', '', $_SESSION['username'])); setSkill('cvset', $userId, getDeckShortName($_POST['deckId'], '')); setSkill('vStyle', $userId, $_POST['vStyle']); if (getSkill('cvset', $userId) != getDeckInfoFromId($_POST['deckId'], 'short_name') || getSkill('vStyle', $userId) != $_POST['vStyle']) { echo "sent id " . $_POST['deckId'] . "</br>" . getDeckShortName($_POST['deckId'], ''); echo getSkill('cvset', $userId) . "</br>"; echo getSkill('vStyle', $userId) . "</br>"; } else { echo "change_success"; }
function getFIBAdjWordChoicesFill($answers, $choiceQ, $userID, $table, $customize) { include 'config.php'; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql'); mysql_select_db($dbname); $cvset = getSkill('cvset', $userID); $vsLv = getSkill($cvset . '_lv', $userID); $answersQ = count($answers); for ($i = 0; $i < $answersQ; $i++) { $where_arr[$i] = "choice !='" . $answers[$i] . "'"; } if ($customize == '') { $query = sprintf("SELECT distinct choice FROM %s WHERE " . implode(' AND ', $where_arr) . "ORDER BY RAND() LIMIT {$choiceQ}", mysql_real_escape_string($table), mysql_real_escape_string($cvset), mysql_real_escape_string($vsLv)); $result = mysql_query($query) or die('Error at getFIBAdjWordChoicesFill1: </br>SQL msg: ' . mysql_error()); } else { $query = sprintf("SELECT distinct choice FROM %s WHERE {$customize} AND " . implode(' AND ', $where_arr) . " ORDER BY RAND() LIMIT {$choiceQ}", mysql_real_escape_string($table), mysql_real_escape_string($cvset), mysql_real_escape_string($vsLv)); $result = mysql_query($query) or die('Error at getFIBAdjWordChoicesFill2: </br>SQL msg: ' . mysql_error()); } $i = 0; while ($row = mysql_fetch_array($result)) { $value[$i] = $row['choice']; $i++; } $numbers = array_rand(range(0, count($value) - 1), $answersQ); if ($answersQ > 1) { for ($i = 0; $i < $answersQ; $i++) { $j = $numbers[$i]; $value[$j] = $answers[$i]; } } else { $value[$numbers] = $answers[0]; } return $value; }
function setLevelUp($userID, $ref) { //$ref could be quiz, fib, particles other drills $confMultiplier = 10; $wordsperlv = 40; $minPracNewWords = 2; $minPracOldWords = 1; $curConf = getStat('conf', $userID); //overall conf stat $curLv = getStat('lv', $userID); $maxConf = getStat('maxconf', $userID); //If Assigning Skills Based on Type Usage, then Find Adjust Skill Appropriately if ($ref == 'quiz' || 'particle') { //cvset details $cvset = getSkill('cvset', $userID); $vstyle = getSkill('vstyle', $userID); $skillLv = getSkill($cvset . '_' . $vstyle . '_lv', $userID); $skillProg = getSkill($cvset . '_' . $vstyle . '_prog', $userID); $skillProgMax = getSkill($cvset . '_' . $vstyle . '_prog_max', $userID); //calc if prog >prog_max $confChange = getLevelChange($curConf, $curLv, $maxConf); //overall conf sat $skillChange = getLevelChange($skillProg, $skillLv, $skillProgMax); //cvset skill //Adjust Level's Appropriately For Overall Confidence Lv, and Current Skill Lv if ($confChange == 'same' && $skillChange == 'same') { //no change return false; } elseif ($confChange == 'reset') { setStat('Confidence', $userID, 0, 'stat'); } elseif ($skillChange == 'reset') { setSkill($cvset . '_' . $vstyle . '_prog', $userID, 0); } elseif ($confChange != 'same') { if ($confChange == 'up') { setStat('lv', $userID, $curLv + 1, 'stat'); setStat('Confidence', $userID, 0, 'stat'); $newMaxConf = $wordsperlv * $confMultiplier + 10 * $curLv; //$newMaxConf = ($wordsperlv*3*$confMultiplier)+(2*$confMultiplier*((($curLv+1)*$confMultiplier)*$wordsperlv)); //new words 3 times, old words 2 times setStat('maxconf', $userID, $newMaxConf, 'stat'); } elseif ($confChange == 'down') { // setStat('lv', $userID, $curLv - 1, 'stat'); //$newMaxConf = ($wordsperlv*3*$confMultiplier)+(2*$confMultiplier*((($curLv)*$confMultiplier)*$wordsperlv)); //new words 3 times, old words 2 times $newMaxConf = $wordsperlv * $confMultiplier + 10 * $curLv; setStat('maxconf', $userID, $newMaxConf, 'stat'); setStat('conf', $userID, $newMaxConf + $curConf, 'stat'); } } elseif ($skillChange != 'same') { if ($skillChange == 'up') { if ($skillLv >= getDeckInfo($cvset, 'levels')) { //Check if their deck is at max level //set lv to max and lower cvset conf to max setSkill($cvset . '_' . $vstyle . '_lv', $userID, getDeckInfo($cvset, 'levels')); setSkill($cvset . '_' . $vstyle . '_prog', $userID, $skillProgMax); return False; } else { $newProgMax = $wordsperlv * $minPracNewWords + $minPracOldWords * (($skillLv + 1) * $wordsperlv); //new words 3 times, old words 2 times setSkill($cvset . '_' . $vstyle . '_lv', $userID, $skillLv + 1); //for new vStyle leveling-> $cvset . '_'.$vStyle.'_lv' setSkill($cvset . '_' . $vstyle . '_prog', $userID, 0); setSkill($cvset . '_' . $vstyle . '_prog_max', $userID, $newProgMax); } } elseif ($skillChange == 'down') { $newProgMax = $wordsperlv * $minPracNewWords + $minPracOldWords * ($skillLv * $wordsperlv); setSkill($cvset . '_' . $vstyle . '_lv', $userID, $skillLv - 1); setSkill($cvset . '_' . $vstyle . '_prog', $userID, $newProgMax + $skillProg); setSkill($cvset . '_' . $vstyle . '_prog_max', $userID, $newProgMax); } } return true; } //end quiz lvup return true; }
} /******************************************************************************************************************/ $username = $_GET['player']; require_once 'config.php'; require_once 'stats.php'; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql'); mysql_select_db($dbname); $pid = getUserID($_GET['player']); $atk = getStat('atk', $pid); $mag = getStat('mag', $pid); $def = getStat('def', $pid); $gc = getStat('gc', $pid); $confidence = getStat('conf', $pid); $maxconf = getStat('maxconf', $pid); $lv = getStat('lv', $pid); $cvDN = getDeckInfo(getSkill('cvset', $pid), 'display_name'); $currentHP = getStat('curhp', $pid); $maximumHP = getStat('maxhp', $pid); $setHP = getStat('sethp', $pid); $ttldks = getStat('ttldks', $pid); $ttlpvstyl = getStat('ttlpvstyl', $pid); $sumcfc = getStat('sumcfc', $pid); $sumckanjiRE = getStat('sumckanjiRE', $pid); $sumckanjiE = getStat('sumckanjiE', $pid); $sumckanjiH = getStat('sumckanjiH', $pid); $sumcaudioR = getStat('sumcaudioR', $pid); $vocabulary = round(getScore('vocabulary', $pid), 2); $listening = round(getScore('listening', $pid), 2); $kanji = round(getScore('kanji', $pid), 2); $ttldks = countUserDecks($pid); $pDecks = getUserDecks($pid);
<td><?php echo date("F jS \\, Y", strtotime(getUserDetail(getUserID($_GET['player']), 'signup'))); ?> </td> </tr> <tr> <td>Approximate JLPT</td> <td>N<?php echo getUserDetail(getUserID($_GET['player']), 'jlpt'); ?> </td> </tr> <tr> <td style="vertical-align: middle;">Last practiced Flashcard Deck:</td> <td style="vertical-align: middle;"><a href="<?php echo getDeckFullUrl(getSkill('cvset', $pid)); ?> "><?php echo $cvDN; ?> </a></td> </tr> <tr> <td style="vertical-align: middle;">Gold Coins</td> <td style="vertical-align: middle;"><?php echo $gc; ?> </td> </tr> <!--<tr>
// If own this decks KanjiRE $clvAudR = getSkill($sDeck . '_audioR_lv', $pid); $percAudR = $clvAudR == 1 ? 0 : round($clvAudR / $deckMxLv * 100, 0); $finAudR = $percAudR == 100 ? "success sparkley" : ($percAudR <= 25 && $percAudR != 0 ? "warning" : ($percAudR == 0 ? "danger" : "")); //Style it based off their progress } if ($ownsAudE == TRUE) { // If own this decks KanjiRE $clvAudE = getSkill($sDeck . '_audioE_lv', $pid); $percAudE = $clvAudE == 1 ? 0 : round($clvAudE / $deckMxLv * 100, 0); $finAudE = $percAudE == 100 ? "success sparkley" : ($percAudE <= 25 && $percAudE != 0 ? "warning" : ($percAudE == 0 ? "danger" : "")); //Style it based off their progress } if ($ownsAudK == TRUE) { // If own this decks KanjiRE $clvAudK = getSkill($sDeck . '_audioK_lv', $pid); $percAudK = $clvAudK == 1 ? 0 : round($clvAudK / $deckMxLv * 100, 0); $finAudK = $percAudK == 100 ? "success sparkley" : ($percAudK <= 25 && $percAudK != 0 ? "warning" : ($percAudK == 0 ? "danger" : "")); //Style it based off their progress } ?> <tr class="text-center"> <td class="text-left col-xs-4" style="vertical-align:middle;"><a href="<?php echo getDeckFullUrl($key); ?> "><?php echo $key; ?> </a></td><?php //Easy if ($ownsRE == TRUE) {
<?php //session_start(); global $previousQ; global $previousA; global $result; include_once $_SERVER['DOCUMENT_ROOT'] . "/stats.php"; $abcAr = array("A.", "B.", "C.", "D.", "E."); $cvset = getSkill('cvset', $userID); $vstyle = getSkill('vstyle', $userID); //Assign decks vstyle levels $mxDkLv = getDeckInfo($cvset, 'levels'); $vsLvEZ = getSkill($cvset . '_KanjiRE_lv', $userID); if ($cvset != 'hirkat' && $cvset != 'katakana') { $vsLvMed = getSkill($cvset . '_kanjiE_lv', $userID); $vsLvHard = getSkill($cvset . '_kanjiH_lv', $userID); } $abcAr = array("A.", "B.", "C.", "D.", "E."); //Vstyle Background Option if ($vstyle == 'kanjiRE') { $vstyleBG = "success"; } elseif ($vstyle == 'kanjiH') { $vstyleBG = "danger"; } elseif ($vstyle == 'kanjiE') { $vstyleBG = "warning"; } //Left column variables $cvsetDisplay = getDeckInfo($cvset, "display_name"); $cvsetPic = getDeckInfo($cvset, "picture"); $affiliIdStr = getDeckInfo($cvset, 'affiliates_str'); $affiliIdArr = explode(",", $affiliIdStr, -1);