机器人陪你玩“谁是卧底游戏
生活随笔
收集整理的這篇文章主要介紹了
机器人陪你玩“谁是卧底游戏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這是用php寫的程序,調用的就是圖靈機器人提供的免費API來實現的”誰是臥底“游戲,感興趣的朋友還可以去圖靈智能平臺上體驗下http://www.tuling123.com/openapi/cloud/proexp.jsp,感興趣的也可以下載源碼
1. 調用圖靈機器人API
// 圖靈機器人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'] ;}} }?2.以下是誰是臥底游戲
//誰是臥底游戲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;}?
轉載于:https://www.cnblogs.com/uoou/p/4342230.html
總結
以上是生活随笔為你收集整理的机器人陪你玩“谁是卧底游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何给你的为知笔记添加一个漂亮的导航目录
- 下一篇: VS怎样创建和使用lib文件