首頁 > php教程 > php手册 > 主體

机器人陪你玩“谁是卧底"游戏

WBOY
發布: 2016-06-06 19:37:31
原創
1583 人瀏覽過

这是用php写的程序,调用的就是图灵机器人提供的免费API来实现的”谁是卧底“游戏,感兴趣的朋友还可以去图灵智能平台上体验下http://www.tuling123.com/openapi/cloud/proexp.jsp,感兴趣的也可以下载源码 无 // 图灵机器人 function tuling($keyword) { $ke

这是用php写的程序,调用的就是图灵机器人提供的免费API来实现的”谁是卧底“游戏,感兴趣的朋友还可以去图灵智能平台上体验下http://www.tuling123.com/openapi/cloud/proexp.jsp,感兴趣的也可以下载源码
    // 图灵机器人
    function tuling($keyword) {
        $key="http://www.tuling123.com/openapi/record.do?channel=9800";//api key到这里申请
        $api_url = "http://www.tuling123.com/openapi/api?key=".$key."&info=". $keyword;
        
        $result = file_get_contents ( $api_url );
        $result = json_decode ( $result, true );
        
        switch ($result ['code']) {
          case '200000' :
            $text = $result ['text'] . ',<a href="' . $result ['url'] . '">点击进入</a>';
            return $text;
            break;
          case '301000' :
        $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i<$length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['name'],
                    'Description' => $result['list'][$i]['author'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          case '302000' :
            $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i<$length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['article'],
                    'Description' => $result['list'][$i]['source'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          case '304000' :
            $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i< $length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['name'],
                    'Description' => $result['list'][$i]['count'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          case '305000' :
            $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i<$length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['start'] . '--' . $result['list'][$i]['terminal'],
                    'Description' => $result['list'][$i]['starttime'] . '--' . $result['list'][$i]['endtime'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          case '306000' :
            $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i<$length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['flight'] . '--' . $result['list'][$i]['route'],
                    'Description' => $result['list'][$i]['starttime'] . '--' . $result['list'][$i]['endtime'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          case '307000' :
            $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i<$length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['name'],
                    'Description' => $result['list'][$i]['info'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          case '308000' :
            $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i<$length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['name'],
                    'Description' => $result['list'][$i]['info'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          case '309000' :
            $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i<$length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['name'],
                    'Description' => '价格 : ' . $result['list'][$i]['price'] . ' 满意度 : ' . $result['list']['satisfaction'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          case '310000' :
            $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i<$length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['number'],
                    'Description' => $result['list'][$i]['info'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          case '311000' :
            $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i<$length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['name'],
                    'Description' => '价格 : ' . $result['list'][$i]['price'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          case '312000' :
            $length = count($result['list']) > 9 ? 9 :count($result['list']);
            for($i= 0;$i<$length;$i++){
                $articles [$i] = array (
                    'Title' => $result['list'][$i]['name'],
                    'Description' => '价格 : ' . $result['list'][$i]['price'],
                    'PicUrl' => $result['list'][$i]['icon'],
                    'Url' => $result['list'][$i]['detailurl']
                );
            }
            return $articles;
            break;
          default :
            if (emptyempty ( $result ['text'] )) {
                return false;
            } else {
                return $result ['text'] ;
            }
        }
        
    } 
登入後複製
    //谁是卧底游戏
    function UnderCover($key,$username){
      $mysql = new SaeMysql();
      $userid = $username;
      if($key==''){
        $text = "如果您是法官请输入游戏人数(4~13之间,不包括法官哦)\n其他用户请输入房间号\n回复【规则】了解游戏规则\n回复【惩罚】查看惩罚游戏\n回复【退出】即可退出谁是卧底游戏";
      }elseif ($key=='退出') {
        $lock = 'unlock';
        $sql="UPDATE `wx_users` SET  `lock` =  '$lock' WHERE  `openid` =  '$username'";
        $mysql->runSql($sql);
        if ($mysql->errno() != 0)
        {
          die("Error:" . $mysql->errmsg());
        }
        $text='已退出谁是卧底模式,再次发送【谁是卧底】即可开启';
      }elseif($key>=4 && $key<=6){
        $sql = "SELECT * FROM `uc_rooms` where `userid` = '$username' ";
        $data = $mysql->getData( $sql );
        if($data){
          $allcount = $key;
          $undercoverid1 = rand(1,$key);
          $words = getWords();
          $word1 = $words['word1'];
          $word2 = $words['word2'];
          $sql = "update uc_rooms set allcount= '$allcount', nowcount='0',undercoverid1= '$undercoverid1',word1= '$word1',word2= '$word2' where userid= '$username'";
          $mysql->runSql($sql);
          if ($mysql->errno() != 0)
          {
            die("Error:" . $mysql->errmsg());
          }
          $datas = getDatas($userid);
          $roomid = $datas['roomid'];
          $text = "您是法官\n游戏房间号为".$roomid."\n平民词:".$word1."\n卧底词:".$word2."\n卧底是:".$undercoverid1."号\n游戏人数为:".
          $allcount."\n回复[换],换一组词,\n(一局结束后,不必重建房,回复[换]直接换词)\n如果需要自定义词语,请输入”改“+卧底词和平民词,如:改状元,冠军";
        }else{
          $userid = $username;
          $allcount = $key;
          $undercoverid1 = rand(1,$key);
          $words = getWords();
          $word1 = $words['word1'];
          $word2 = $words['word2'];
          $sql = "insert into uc_rooms(userid,allcount,nowcount,undercoverid1,word1,word2) values('$username', '$allcount', '0','$undercoverid1' ,'$word1' ,'$word2')";
          $mysql->runSql($sql);
          if ($mysql->errno() != 0)
          {
            die("Error:" . $mysql->errmsg());
          }
          $datas = getDatas($userid);
          $roomid = $datas['roomid'];
          $text = "您是法官\n游戏房间号为".$roomid."\n平民词:".$word1."\n卧底词:".$word2."\n卧底是:".$undercoverid1."号\n游戏人数为:".
          $allcount."\n回复[换],换一组词,\n(一局结束后,不必重建房,回复[换]直接换词)\n如果需要自定义词语,请输入”改“+卧底词和平民词,如:改状元,冠军";
        }
      }elseif($key>=7 && $key<=10){
        $sql = "SELECT * FROM `uc_rooms` where `userid` = '$username' ";
        $data = $mysql->getData( $sql );
        if($data){
          $allcount = $key;
          $undercoverid1 = rand(1,$key);
          $undercoverid2 = randexcp1($undercoverid1,$key);
          $words = getWords();
          $word1 = $words['word1'];
          $word2 = $words['word2'];
          $sql = "update uc_rooms set allcount= '$allcount', nowcount= '0',undercoverid1= '$undercoverid1',undercoverid2= '$undercoverid2',word1= '$word1',word2 = '$word2' where userid = '$username'";
          $mysql->runSql($sql);
          if ($mysql->errno() != 0)
          {
            die("Error:" . $mysql->errmsg());
          }
          $datas = getDatas($userid);
          $roomid = $datas['roomid'];
          $text = "您是法官\n游戏房间号为".$roomid."\n平民词:".$word1."\n卧底词:".$word2."\n卧底1是:".$undercoverid1."号\n卧底2是:".$undercoverid2."号\n游戏人数为:".
          $allcount."\n回复[换],换一组词,\n(一局结束后,不必重建房,回复[换]直接换词)\n如果需要自定义词语,请输入”改“+卧底词和平民词,如:改状元,冠军";
        }else{
          $userid = $username;
          $allcount = $key;
          $undercoverid1 = rand(1,$key);
          $undercoverid2 = randexcp1($undercoverid1,$key);
          $words = getWords();
          $word1 = $words['word1'];
          $word2 = $words['word2'];
          $sql = "insert into uc_rooms(userid,allcount,nowcount,undercoverid1,undercoverid2,word1,word2) values('$username', '$allcount', '0','$undercoverid1' ,'$undercoverid2' ,'$word1' ,'$word2')";
          $mysql->runSql($sql);
          if ($mysql->errno() != 0)
          {
            die("Error:" . $mysql->errmsg());
          }
          $datas = getDatas($userid);
          $roomid = $datas['roomid'];
          $text = "您是法官\n游戏房间号为".$roomid."\n平民词:".$word1."\n卧底词:".$word2."\n卧底1是:".$undercoverid1."号\n卧底2是:".$undercoverid2."号\n游戏人数为:".
          $allcount."\n回复[换],换一组词,\n(一局结束后,不必重建房,回复[换]直接换词)\n如果需要自定义词语,请输入”改“+卧底词和平民词,如:改状元,冠军";
        }
      } 
    elseif($key>=1000&&$key<=9999) {
        $sql = "select * from uc_rooms where roomid = '$key'";
        $data = $mysql->getLine($sql);
        if($data){
          if($data['nowcount']<$data['allcount']){
            $nowcount = (int)$data['nowcount'];
            $nowcount++;
            $sql = "update uc_rooms set nowcount = '$nowcount'  where roomid = '$key'";
            $mysql->runSql($sql);
            if ($mysql->errno() != 0)
            {
              die("Error:" . $mysql->errmsg());
            }
            if($nowcount == (int)$data['undercoverid1']){
              $text = "您是".$nowcount."号,您的词语是".$data['word2'];
            }elseif($nowcount == (int)$data['undercoverid2']){
              $text = "您是".$nowcount."号,您的词语是".$data['word2'];
            }elseif($nowcount == (int)$data['whiteboardid']){
              $text = "您是".$nowcount."号,您是白板";
            }else{
              $text = "您是".$nowcount."号,您的词语是".$data['word1'];
            }
          }else{
            $text = "房间人数已满";
          }
        }else{
          $text = "您输入的房间号无效";
        }
      }elseif($key=="换") {
        $datas = getDatas($userid);
        $allcount=(int)$datas['allcount'];
        $undercoverid1 = rand(1,$allcount);
        $words = getWords();
        $word1 = $words['word1'];
        $word2 = $words['word2'];
        $roomid = $datas['roomid'];
        if($allcount<7){
          $sql = "update uc_rooms set nowcount = '0', undercoverid1= '$undercoverid1',word1= '$word1',word2 = '$word2' where userid = '$username'";
          $mysql->runSql($sql);
          if ($mysql->errno() != 0)
          {
              die("Error:" . $mysql->errmsg());
          }
          $text = "换词成功\n游戏房间号为".$roomid."\n平民词:".$word1."\n卧底词:".$word2."\n卧底是:".$undercoverid1."号,游戏人数为:".$allcount."\n请参与人员重新发送房间号";
        }elseif ($allcount<11) {
          $undercoverid2 = randexcp1($undercoverid1,$allcount);
          $sql = "update uc_rooms set nowcount = '0', undercoverid1= '$undercoverid1',undercoverid2= '$undercoverid2',word1= '$word1',word2 = '$word2' where userid = '$username'";
          $mysql->runSql($sql);
          if ($mysql->errno() != 0)
          {
              die("Error:" . $mysql->errmsg());
          }
          $text = "换词成功\n游戏房间号为".$roomid."\n平民词:".$word1."\n卧底词:".$word2."\n卧底1是".$undercoverid1."号,卧底2是".$undercoverid2."号,游戏人数为:".$allcount."\n请参与人员重新发送房间号";
        }elseif ($allcount<14) {
          $undercoverid2 = randexcp1($undercoverid1,$allcount);
          $whiteboardid = randexcp2($undercoverid1,$undercoverid2,$allcount);
          $sql = "update uc_rooms set nowcount = '0', undercoverid1= '$undercoverid1',undercoverid2= '$undercoverid2',whiteboardid='$whiteboardid',word1= '$word1',word2= '$word2' where userid = '$username'";
          $mysql->runSql($sql);
          if ($mysql->errno() != 0)
          {
              die("Error:" . $mysql->errmsg());
          }
          $text = "换词成功\n游戏房间号为".$roomid."\n平民词:".$word1."\n卧底词:".$word2."\n卧底1是".$undercoverid1."号,卧底2是".$undercoverid2."号,白板号是".$whiteboardid."号,游戏人数为:".$allcount."\n请参与人员重新发送房间号";
        }
      }elseif(substr($key,0, 3)=="改" ){
        $key = substr($key, 3);
        $words = explode(",",$key);
        if(count($words) != 2)
        {
          $words = explode(",", $key);
        }
        if(count($words) != 2)
        {
          $text = "请按照正确格式输入卧底词和平民词,如:改状元,冠军";
          return $text;
          exit;
          break;
        }
        $word1=$words[0];
        $word2=$words[1];
        $datas = getDatas($userid);
        $allcount=(int)$datas['allcount'];
        $roomid = $datas['roomid'];
        $undercoverid1 = rand(1,$allcount);
        if($allcount<7){
          $sql = "update uc_rooms set nowcount = '0', undercoverid1= '$undercoverid1',word1= '$word1',word2 = '$word2' where userid = '$username'";
          $mysql->runSql($sql);
          if ($mysql->errno() != 0)
          {
              die("Error:" . $mysql->errmsg());
          }
          $text = "改词成功\n游戏房间号为".$roomid."\n平民词:".$word1."\n卧底词:".$word2."\n卧底是:".$undercoverid1."号,游戏人数为:".$allcount."\n请参与人员重新发送房间号";
        }elseif ($allcount<11) {
          $undercoverid2 = randexcp1($undercoverid1,$allcount);
          $sql = "update uc_rooms set nowcount = '0', undercoverid1= '$undercoverid1',undercoverid2= '$undercoverid2',word1= '$word1',word2 = '$word2' where userid = '$username'";
          $mysql->runSql($sql);
          if ($mysql->errno() != 0)
          {
              die("Error:" . $mysql->errmsg());
          }
          $text = "改词成功\n游戏房间号为".$roomid."\n平民词:".$word1."\n卧底词:".$word2."\n卧底1是".$undercoverid1."号,卧底2是".$undercoverid2."号,游戏人数为:".$allcount."\n请参与人员重新发送房间号";
        }elseif ($allcount<14) {
          $undercoverid2 = randexcp1($undercoverid1,$allcount);
          $whiteboardid = randexcp2($undercoverid1,$undercoverid2,$allcount);
          $sql = "update uc_rooms set nowcount = '0', undercoverid1= '$undercoverid1',undercoverid2= '$undercoverid2',whiteboardid='$whiteboardid',word1= '$word1',word2 = '$word2' where userid = '$username'";
          $mysql->runSql($sql);
          if ($mysql->errno() != 0)
          {
              die("Error:" . $mysql->errmsg());
          }
          $text = "改词成功\n游戏房间号为".$roomid."\n平民词:".$word1."\n卧底词:".$word2."\n卧底1是".$undercoverid1."号,卧底2是".$undercoverid2."号,白板号是".$whiteboardid."号,游戏人数为:".$allcount."\n请参与人员重新发送房间号";
        }
      }elseif($key=="规则" || $key=="游戏规则") {
        $text="4-6人游戏1卧底\n7-10人游戏2卧底\n11-13人游戏2卧底1白板\n1.每人每轮用一句话描述自己拿到的词语,既不能让卧底察觉,也要给同伴以暗示\n".
        "2.每轮描述完毕,所有在场的人投票选出怀疑谁是卧底,得票最多的人出局。若没有人的得票超过半数(50%),则没有人出局。若卧底出局,则游戏结束。若卧底未出局,游戏继续\n".
        "3.反复多个流程,若卧底撑到最后一轮(场上剩3人时),则卧底获胜,反之,则大部队胜利";
      }elseif($key==0 || $key=="惩罚") {
        $text=getPunish();
      }
      else{
        $text='好吧,你说的我听不懂了';
      }
      $mysql->closeDb();
      return $text;
    } 
    function getWords(){
      $mysql = new SaeMysql();
      $sql = "select count(*) from uc_words";
      $all = $mysql->getVar($sql);
      $id = rand(1,$all);
      $sql = "select * from uc_words where id = $id";
      $words=$mysql->getLine($sql);
      if ($mysql->errno() != 0)
      {
        die("Error:".$mysql->errmsg());
      }
      $mysql->closeDb();
      return $words;
    }
    function getDatas($userid){
      $mysql = new SaeMysql();
      $sql = "select * from uc_rooms where userid = '$userid'";
      $datas=$mysql->getLine($sql);
      if ($mysql->errno() != 0)
      {
        die("Error:".$mysql->errmsg());
      }
      $mysql->closeDb();
      return $datas;
    }
    function randexcp1($excp,$key) {
      $randresult = rand(1,$key);
      if ($randresult == $excp) {
        return randexcp1($excp);
      } else {
        return $randresult;
      }  
    }
    function randexcp2($excp1,$excp2,$key) {
      $randresult = rand(1,$key);
      if ($randresult == $excp1 || $randresult == $excp2) {
        return randexcp2($excp1,$excp2,$key);
      } else {
        return $randresult;
      }  
    }
    function getPunish(){
      $content = "请输的同学摇骰子选择:\n\n";
      $mysql = new SaeMysql();
      $sql = "select max(id) from uc_punish";
      $maxid = $mysql->getVar($sql);
      $a = array();
      $i = 1;
      while($i<=6) {
        $id = fmod(rand(1,100000),$maxid) + 1;
        if(array_search($id, $a)==false)
        {
        $a[]=$id;
        $sql = "select item from uc_punish where id = $id";
        $item = $mysql->getVar($sql);
        $content.=$i.". ".$item."\n\n";
        $i=$i+1;
        }
      }
      return $content;
    }
登入後複製
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!