The details are as follows:
1. Overview of 2048 Game
"2048" is a popular digital game. The original version of 2048 was first released on github. The original author is Gabriele Cirulli. It is a new digital game developed based on the gameplay of "1024" and "Little 3 Legend".
Subsequently, various versions of 2048 appeared on various major platforms. The version ported to iOS by Ketchapp is the most popular, with about 10 million downloads now, and its name is exactly the same as the original version. The most famous of the derivative versions is the "2048 Hexagon" version, which has ranked among the top 200 board games in 81 countries around the world. The very popular Android version is "Challenge 2048", which has added two-player battles since version 2.0.0. The second, more special one is the 2048 Chinese Dynasty Edition. There is also a 2048 customized version, where you can define your own text and pictures. "2048" is a popular one on iOS.
HOW TO PLAY:Use yourarrow keys to move the tiles. When two tiles with the same number touch, theymerge into one!
NOTE:This site is the official version of 2048. You can play it on your phone via.All other apps or sites are derivatives or fakes, and should be used with caution.
Created by Gabriele Cirulli.Based on 1024 by Veewo Studioand conceptually similar to Threes by Ashe Vollmer.
The game rules are very simple. You can choose one of the up, down, left, or right directions to slide each time. Every time you slide, all the number squares will move closer to the sliding direction. The system will also randomly appear a number square in the blank space. The same Numbered squares will add up when they come close to each other and collide. The number cubes given by the system are either 2 or 4. Players have to find a way to make up the number cube "2048" in this small 16-frame range.
The screen of the game is very simple. At the beginning, most of the 16 squares are gray. When the player appears in the puzzle, the color will change. The overall style is very simple.
The gameplay rules are also very simple. At the beginning, two small numbers, such as 2 or 4, will appear in the square. Players only need to move the appearing numbers in one direction, up, down, left, or right, and all the numbers will slide in the direction. The direction is closer, and a number will appear randomly in the blank square that slides out. When the same numbers collide, they will be superimposed and moved closer. And then it will continue like this. The number 2048 will be pieced together after continuous superposition, which is considered successful.
If you are a numbers enthusiast, or a relatively talented math genius, you will be fascinated by it as soon as you get started. Even if you are not a math genius, ordinary players can play this game. If you are interested, download it and experience it.
Currently this game is open source, so there is no need to re-develop it
2. WeChat public platform
Put the 2048 source code on your own server and get the game url.
When the user follows, the user will be prompted to reply 2048 to play this game,
When the user replies to 2048, reply with a picture and text message with a 2048 game link in the picture and text.
The complete code is shown below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
/* 方倍工作室 CopyRight 2014 All Rights Reserved */ define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if (!isset($_GET['echostr'])) { $wechatObj->responseMsg(); }else{ $wechatObj->valid(); } class wechatCallbackapiTest { //验证签名 public function valid() { $echoStr = $_GET["echostr"]; $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode($tmpArr); $tmpStr = sha1($tmpStr); if($tmpStr == $signature){ echo $echoStr; exit; } } //响应消息 public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType);
//消息类型分离 switch ($RX_TYPE) { case "event": $result = $this->receiveEvent($postObj); break; case "text": $result = $this->receiveText($postObj); break; } echo $result; }else { echo ""; exit; } } //接收事件消息 private function receiveEvent($object) { $content = ""; switch ($object->Event) { case "subscribe": $content = "欢迎关注方倍工作室n回复 2048 开始游戏"; break; } if(is_array($content)){ if (isset($content[0])){ $result = $this->transmitNews($object, $content); }else if (isset($content['MusicUrl'])){ $result = $this->transmitMusic($object, $content); } }else{ $result = $this->transmitText($object, $content); } return $result; } //接收文本消息 private function receiveText($object) { $keyword = trim($object->Content);
if (strstr($keyword, "2048")){ $content = array(); $content[] = array("Title"=>"2048 Game", "Description"=>"The game rules are very simple. Each time you can choose one of the directions to slide up, down, left, or right. Each time you slide, all In addition to the number squares moving closer to each other in the sliding direction, the system will also randomly appear a number square in the blank space. When the squares with the same number come closer and collide, the number squares given by the system are either 2 or 4. Players have to. Find a way to make up the number square "2048" in this small 16-frame range. "Url" =>"http://gabrielecirulli.github.io/2048/"); }else{ $content = date("Y-m-d H:i:s",time())."nTechnical support Fangbei Studio"; }
if(is_array($content)){ if (isset($content[0]['PicUrl'])){ $result = $this->transmitNews($object, $content); }else if (isset($content['MusicUrl'])){ $result = $this->transmitMusic($object, $content); } }else{ $result = $this->transmitText($object, $content); } }
//Reply to text message private function transmitText($object, $content) { $xmlTpl = " "; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), $content); return $result; }
//Reply to graphic message private function transmitNews($object, $newsArray) { if(!is_array($newsArray)){ return; } $itemTpl = " "; $item_str = ""; foreach ($newsArray as $item){ $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']); } $xmlTpl = " $item_str "; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), count($newsArray)); return $result; } } ?> |