这是用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; }