From daa1e4eeaaa1df43fd95bdb5aed59c602d2c14b7 Mon Sep 17 00:00:00 2001 From: Patrick Davison Date: Thu, 24 Jan 2013 00:52:59 -0800 Subject: Some code relating to testing an API. --- api/app.php | 591 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 591 insertions(+) create mode 100644 api/app.php (limited to 'api/app.php') diff --git a/api/app.php b/api/app.php new file mode 100644 index 0000000..806e4ae --- /dev/null +++ b/api/app.php @@ -0,0 +1,591 @@ +tiles); +//echo "---
"; + +//print_r(getJsonData($myNewMap)); + + +if ($_GET['r'] == 'scores') { + + //echo 'getting...'; + $scores = getScoresB(1156); + echo json_encode($scores); +} +exit; + + + +echo json_encode($myNewMap); + +//By Wrikken +function getJsonData($obj){ + $var = get_object_vars($obj); + foreach($var as &$value) { + if(is_object($value) && method_exists($value,'getJsonData')) { + $value = $value->getJsonData(); + } + } + return $var; +} + + +exit; + +//Conditions for effectiveness. + +//Yes: +echo ((20 & 4) == 4); +echo "
"; +//Yes: +echo ((4 & 20) == 4); +echo "
"; +//No: +echo ((4 & 20) == 20); +echo "
"; +//No: +echo ((16 & 4) == 4); +echo "
"; +//Yes: +echo ((37 & 4) == 4); +echo "
"; + + + + + +$format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)' + . ' %3$s (%4$2d = %4$04b)' . "\n"; + +echo << $top) + continue; + if ($i <= $bottom) + continue; + } + + if ($wallEmblem == '') + $wallEmblem = 'blank.png'; + + $cdate = $row['cdate']; + $cdate = date("g:i A (T)", strtotime($cdate)); + + $scoredDate = strtotime($row['cdate']); + $secondsSinceScored = strtotime("now") - $scoredDate ; + + //Alternate background colors + $background = '#262631'; + if ($i % 2 == 1) + $background = '#20202a'; + + if ($userPosition == $i) { + $background = '#343c57'; + $foundUser = true; + } + + $medal = 'none'; + if ($moves == $bestMoves) + $medal = 'silver'; + if ($i == 1) + $medal = 'gold'; + + // if is blind map. + if ($isBlindMap AND $myBestMoves < $moves) + $row['moves'] = '???'; + + $output['users'][$i] = $row; + $output['users'][$i]['rank'] = $i; + $output['users'][$i]['scoredDate'] = $cdate; + $output['users'][$i]['secondsSinceScored'] = $secondsSinceScored; + $output['users'][$i]['background'] = $background; + $output['users'][$i]['medal'] = $medal; + $output['users'][$i]['isUser'] = $userPosition == $i; + //$output['users'][$i]['debug'] = "Bestmoves: $bestMoves moves: $moves"; + } // END WHILE + + if ($foundUser) { + $userPage = ceil(($userPosition / $pageDivide)); + $output['userPage'] = $userPage; + $output['userPosition'] = $userPosition; + } + + $output['pageCount'] = ceil(($i / $pageDivide)); + + if ($prevPage > 0) { + $navi .= " << "; + $navi .= " < "; + } else { + $navi .= " << "; + $navi .= " <"; + } + for ($x = 1; $x <= $pageCount; $x++) { + if ($x < $pageNumber - 3 OR $x > $pageNumber + 3) + continue; + if ($x == $pageNumber) + $navi .= " $x "; + elseif ($userPage == $x) + $navi .= " $x "; + else + $navi .= " $x "; + } + if ($nextPage <= $pageCount) { + $navi .= " > "; + $navi .= " >> "; + } + + $output['users'] = array_values($output['users']); + + return $output; +} + + + + + + + + + + + + + + + + + + +$prep['name'] = 'Active'; +for($i = 1; $i <= 4; $i++) { + + $map = MapOfTheDay($i); + $mapid = $map['id']; + + $data['name'] = $map['map'][0][6]; + $data['id'] = $map['id']; + $data['tiles'] = convertMapTiles($map['map']); + $prep['levels'][] = $data; +} + +// $past['name'] = 'Past Maps'; +// for($i = 2; $i <= 4; $i++) { + + //$map = MapOfTheDay($i); + + // $pastMap = pastMap(1, $i); + // $mapid = $pastMap; + // $mapcode = getMapCode($mapID); + // $map = GenerateMapByCode($mapcode); + + // $mapid = $map['id']; + + // $data['name'] = $map['map'][0][6]; + // $data['id'] = $map['id']; + // $data['tiles'] = convertMapTiles($map['map']); + // $past['levels'][] = $data; +// } + + +$json['action'] = 'getLevelSets'; +$json['response'] = 'ok'; +$json['data']['levelSetsResponse']['sets'][] = $prep; +$json['data']['levelSetsResponse']['sets'][] = $past; + + +$encoded = json_encode($json); +die($encoded); + + +function convertMapTiles($map) { + $r = ''; + for($i = 1; $i < count($map); $i++) { + if ($i !== 1) + $r .= ','; + for($j = 0; $j < count($map[$i]); $j++) { + switch($map[$i][$j]) { + case 'o': $r .= '00'; break; + case 's': $r .= '02'; break; + //Multipath: + case 'S': $r .= '99'; break; + //Path 1 and Path 2 allow-only rocks. + case 'X': + break; + case 'x': + break; + + case 'f': $r .= '03';break; + case 't': $r .= '50';break; + case 'u': $r .= '60';break; + case 'm': $r .= '51';break; + case 'n': $r .= '61';break; + case 'g': $r .= '52';break; + case 'h': $r .= '63';break; + case 'i': $r .= '54';break; + case 'j': $r .= '64';break; + case 'k': $r .= '55';break; + case 'l': $r .= '65';break; + + case 'a': $r .= '40';break; + case 'b': $r .= '41';break; + case 'c': $r .= '42';break; + case 'd': $r .= '43';break; + case 'e': $r .= '44';break; + case 'r': $r .= '00';break; + //Visually distinct rocks: + case 'R': $r .= '00';break; + case 'q': $r .= '00';break; + + //Technically shouldn't ever be used to display a wall... + case 'w': $r .= '01';break; + } + } + } + return $r; +} + + +function translatemap($mapMatrix, $mapID) { + + + $mapdata['height'] = $mapMatrix[0][0]; + $mapdata['width'] = $mapMatrix[0][1]; + $waypoints = $mapMatrix[0][2]; + $mapdata['rocks'] = $mapMatrix[0][3]; + $walls = $mapMatrix[0][4]; + $mapdata['teleports'] = $mapMatrix[0][5]; + + $r .= ""; + $r .= "\n "; + $r .= "\n $mapID"; + $r .= "\n $walls"; + $r .= "\n $waypoints"; + $r .= "\n "; + + + $r .= "\n "; + $r .= "\n "; + for ($i = 1; $i < count($mapMatrix); $i++) { + + $r .= "\n "; + for ($j = 0; $j < count($mapMatrix[$i]); $j++) { + + switch($mapMatrix[$i][$j]) { + case 's': $r .= "02 "; break; + case 'f': $r .= "03 "; break; + + case 't': $r .= "50 "; break; + case 'u': $r .= "61 "; break; + //TP2 + case 'm': $r .= "51 "; break; + case 'n': $r .= "62 "; break; + //TP3 + case 'g': $r .= "52 "; break; + case 'h': $r .= "63 "; break; + //TP4 + case 'i': $r .= "53 "; break; + case 'j': $r .= "64 "; break; + //TP5 + case 'k': $r .= "54 "; break; + case 'l': $r .= "65 "; break; + + case 'a': $r .= "40 "; break; + case 'b': $r .= "41 "; break; + case 'c': $r .= "42 "; break; + case 'd': $r .= "43 "; break; + case 'e': $r .= "44 "; break; + + case 'r': $r .= "00 "; break; //rock + case 'w': $r .= "01 "; break; //wall + //default: $r .= "".$index.""; + default: $r .= "10 "; + //default: $r .= "".$mapMatrix[$i][$j].""; + } + } + $r .= ""; + } + $r .= "\n "; + $r .= "\n "; + $r .= "\n"; + return $r; +} + + + + + + + + + +// encode array $json to JSON string + +//echo "working..."; + +if ($_GET['act'] == "test") { + +//header('Content-Type: text/xml'); +header("Content-Type: text/plain"); + +if ($_POST['XMLRequest']) { + $string = $_POST['XMLRequest']; +} else { + $string = ' + + + + 5 + FiftyToo + 50 + + +'; +} + +$xml = simplexml_load_string($string); + +//echo $xml->APIRequest->SubmitScore->MapID; +//print_r ($xml); + + + + +$score = $xml->APIRequest[0]->SubmitScore[0]->Score; +$username = $xml->APIRequest[0]->SubmitScore[0]->Username; + +//echo $xml->getName() . "
"; +// foreach($xml->children() as $child) { +// echo $child->getName() . ": " . $child . "
"; +// } + + +//$score = 50; +$previousScore = 49; +$rank = 1; + +//Begin XML Response +$w = new XMLWriter(); +$w->openMemory(); +$w->startDocument('1.0','UTF-8'); +$w->startElement("BrainMazeAPI"); + $w->writeAttribute("version", "0.1"); + $w->startElement("APIResponse"); + $w->startElement("SubmitScore"); + $w->writeAttribute("result", "SUCCESS"); + + $w->startElement("rank"); + $w->text($rank); + $w->endElement(); + + $w->startElement("update"); + $w->text('true'); + $w->endElement(); + + $w->startElement("UsernameUsed"); + $w->text($username); + $w->endElement(); + + $w->startElement("SubmittedScore"); + $w->text($score); + $w->endElement(); + + $w->startElement("PreviousHighScore"); + $w->text($previousScore); + $w->endElement(); + + $w->endElement(); + $w->endElement(); +$w->endElement(); +echo $w->outputMemory(true); + +} + + + +if ($_GET['act'] == "submit") { +header('Content-Type: text/xml'); +echo ' + + + + 5 + 50 + 49 + + +'; + +} + + +$xml = ' + + + + 5 + FiftyToo + 50 + + + + + + + + + + 5 + 50 + 49 + + +'; + + + + +if ($_GET['act'] == "getmap") { + + $maptype = $_GET['maptype'] + 0; + if (!is_int($maptype)) + return; + if ($maptype > 4) + return; + if ($maptype < 1) + return; + + $motd = MapOfTheDay($maptype); + $map = $motd['map']; + $mapID = $motd['id']; + + //print_r($map); + + echo translatemap($map, $mapID); + +} + +?> -- cgit v1.2.3