微信公眾平台開發實現2048遊戲的方法_PHP

來源:互聯網
上載者:User
關鍵字 微信公眾平台 開發 2048遊戲
本文執行個體講述了公眾平台開發實現2048遊戲的方法。分享給大家供大家參考。具體如下:

一、2048遊戲概述

《2048》是比較流行的一款數字遊戲。原版2048首先在github上發布,原作者是Gabriele Cirulli。它是基於《1024》和《小3傳奇》的玩法開發而成的新型數字遊戲 。

隨後2048便出現各種版本,走各大平台。由Ketchapp公司移植到IOS的版本最為火熱,現在約有1000萬下載,其名字跟原版一模一樣。衍生版中最出名的是《2048六邊形》版本,先後在全球81個國家中的board game中排進了前200。安卓版非常火爆的有《挑戰2048》,其2.0.0版以後還加入了雙人對戰。其次比較特別的有2048中國朝代版。更有2048自訂版,可以自己定義文字和圖片。《2048》是IOS中流行的一款。

HOW TO PLAY:Use yourarrow keysto 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.

遊戲規則很簡單,每次可以選擇上下左右其中一個方向去滑動,每滑動一次,所有的數字方塊都會往滑動的方向靠攏外,系統也會在空白的地方亂數出現一個數字方塊,相同數位方塊在靠攏、相撞時會相加。系統給予的數字方塊不是2就是4,玩家要想辦法在這小小的16格範圍中湊出“2048”這個數字方塊。

遊戲的畫面很簡單,一開始整體16個方格大部分都是灰色的,當玩家拼圖出現數字之後就會改變顏色,整體格調很是簡單。

在玩法規則也非常的簡單,一開始方格內會出現2或者4等這兩個小數字,玩家只需要上下左右其中一個方向來移動出現的數字,所有的數字就會向滑動的方向靠攏,而滑出的空白方塊就會隨機出現一個數字,相同的數字相撞時會疊加靠攏,然後一直這樣,不斷的疊加最終拼湊出2048這個數字就算成功。

如果你是一個數字愛好者,或者是比較有天賦的數學天才,一上手便會為之著迷。就算不是數學天才,一般的玩家也能夠玩轉這款遊戲,感興趣的話就去下載體驗一番。

目前這個遊戲是開源的,所以不需要再來重新開發,

完整執行個體代碼點擊此處本站下載。

二、公眾平台

把2048源碼放到自己的伺服器上,得到遊戲url。

當使用者關注時,提示回複2048可玩這個遊戲,

當使用者回複2048時,回複圖文訊息,圖文中帶2048遊戲連結。

完整代碼如下所示。

<?php/* 方倍工作室 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遊戲", "Description"=>"遊戲規則很簡單,每次可以選擇上下左右其中一個方向去滑動,每滑動一次,所有的數字方塊都會往滑動的方向靠攏外,系統也會在空白的地方亂數出現一個數字方塊,相同數位方塊在靠攏、相撞時會相加。系統給予的數字方塊不是2就是4,玩家要想辦法在這小小的16格範圍中湊出“2048”這個數字方塊。", "PicUrl"=>"http://img.laohu.com/www/201403/27/1395908994962.png", "Url" =>"http://gabrielecirulli.github.io/2048/");  }else{   $content = date("Y-m-d H:i:s",time())."\n支援人員 方倍工作室";  }    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);  } } //回複簡訊 private function transmitText($object, $content) {  $xmlTpl = "%s%s%stext%s";  $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), $content);  return $result; } //回複圖文訊息 private function transmitNews($object, $newsArray) {  if(!is_array($newsArray)){   return;  }  $itemTpl = "   <![CDATA[%s]]>  %s  %s  %s ";  $item_str = "";  foreach ($newsArray as $item){   $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);  }  $xmlTpl = "%s%s%snews%s$item_str";  $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), count($newsArray));  return $result; }}?>

希望本文所述對大家基於php的公眾平台開發有所協助。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.