使用PHP在微信公共平台实现24点游戏.docx

上传人:b****1 文档编号:1276610 上传时间:2023-04-30 格式:DOCX 页数:61 大小:26.83KB
下载 相关 举报
使用PHP在微信公共平台实现24点游戏.docx_第1页
第1页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第2页
第2页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第3页
第3页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第4页
第4页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第5页
第5页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第6页
第6页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第7页
第7页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第8页
第8页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第9页
第9页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第10页
第10页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第11页
第11页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第12页
第12页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第13页
第13页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第14页
第14页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第15页
第15页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第16页
第16页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第17页
第17页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第18页
第18页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第19页
第19页 / 共61页
使用PHP在微信公共平台实现24点游戏.docx_第20页
第20页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

使用PHP在微信公共平台实现24点游戏.docx

《使用PHP在微信公共平台实现24点游戏.docx》由会员分享,可在线阅读,更多相关《使用PHP在微信公共平台实现24点游戏.docx(61页珍藏版)》请在冰点文库上搜索。

使用PHP在微信公共平台实现24点游戏.docx

使用PHP在微信公共平台实现24点游戏

使用PHP在微信公共平台实现24点游戏

[导读]使用PHP在微信公共平台实现24点游戏,搭建服务器为SAE,所以很多语句和MYSQL不太一样,24点的数据库存储在24data里面,先用python计算出结果然后存储在本地的txt文件最后倒入SAE的MYSQL,记录了所有有解的4个数字

001.//defineyourtoken

002.define("TOKEN", "ddwm");

003.define("INPUT_NAME", "1");

004.define("START_GAME", "2");

005.define("TIMING_START", "3");

006.define("TIMING_END", "4");

007. 

008. 

009.$wechatObj = new Why24Point();

010. 

011.if ($_GET["echostr"])

012.$wechatObj--->valid();

013.else

014.$wechatObj->responseMsg();

015. 

016.class Why24Point{

017. 

018.public function responseMsg(){

019.//getpostdata,Maybeduetothedifferentenvironments

020.$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

021. 

022.//extractpostdata

023.if (!

emptyempty($postStr)){

024.$postObj =simplexml_load_string($postStr, 'SimpleXMLElement',LIBXML_NOCDATA);

025.$fromUsername = $postObj->FromUserName;

026.$toUsername = $postObj->ToUserName;

027.if($postObj->Event== "subscribe"){

028.$time =time();

029.$textTpl ="

030.

--[CDATA[%s]]-->

031.

--[CDATA[%s]]-->

032.%s

033.

--[CDATA[%s]]-->

034.

--[CDATA[%s]]-->

035.";

036.$msgType = "text";

037.$contentStr = "哟你好亲爱的小伙伴,欢迎来到24点~\n游戏规则:

使用+-*/四则运算得出结果为24即可。

\n任何时候输入主页返回主菜单,\n输入排名查看当前排名哟~\n如果有情况反馈请发送语音信息!

\n请输入任意内容,开始我们的24点职业生涯!

";

038.$resultStr =sprintf($textTpl, $fromUsername, $toUsername, $time,$msgType, $contentStr);

039.echo $resultStr;

040.}

041.$keyword =trim($postObj->Content);

042.$time =time();

043.$textTpl ="

044.

--[CDATA[%s]]-->

045.

--[CDATA[%s]]-->

046.%s

047.

--[CDATA[%s]]-->

048.

--[CDATA[%s]]-->

049.";

050.if (!

emptyempty($keyword)){

051.$msgType = "text";

052.$contentStr = $this->getData($fromUsername, $keyword);

053.$resultStr =sprintf($textTpl, $fromUsername, $toUsername, $time,$msgType, $contentStr);

054.echo $resultStr;

055.} else {

056.echo "输入点东西吧。

";

057.}

058.} else {

059.echo "";

060.exit;

061.}

062.}

063. 

064.private function getData($fromUsername, $keyword){

065.if($keyword == "主页"){

066.$this->setStep($fromUsername,constant("START_GAME"));

067.return "欢迎来到24点的决战现场。

请输入任意内容,开始我们的24点职业生涯!

任何时候输入主页返回主菜单,输入排名查看当前排名~";

068.}

069. 

070.if($keyword == "排名"){

071.return "您的目前排名是:

".$this->getRank($fromUsername);

072.}

073. 

074. 

075.if ($this->isFirst($fromUsername)){

076.return "这是你第一次参加游戏,请输入你的用户昵称:

";

077.}

078. 

079.if ($this->getStep($fromUsername)==constant("INPUT_NAME")){

080.$this->setName($fromUsername, $keyword);

081.$this->setStep($fromUsername,constant("START_GAME"));

082.return "你好," . $keyword . "同学。

请输入任意内容,开始我们的24点职业生涯!

任何时候输入主页返回主菜单,输入排名查看当前排名~";

083.}

084. 

085.if ($this->getStep($fromUsername)==constant("START_GAME")){

086.$numbers = $this->getNumbers();

087.$this->setStep($fromUsername,constant("TIMING_START"));

088.return "游戏规则:

使用+-*/四则运算得出结果为24即可。

\n请听题!

" . $this->getNumbers();

089.}

090. 

091.if ($this->getStep($fromUsername)==constant("TIMING_START")){

092.if ($this->calcStr($keyword)){

093.//$this->setStep($fromUsername,constant("TIMING_END"));

094.$this->setGrade($fromUsername,5);

095.$this->setStep($fromUsername,constant("START_GAME"));

096.return "结果等于24!

你现在的分数是:

".$this->getGrade($fromUsername);

097.}

098. 

099.return "结果错误!

骗子,根本就不等于24!

";

100. 

101.//$this->setStep($fromUsername,constant("TIMING_END"));

102.}

103. 

104.return "我擦,系统出问题了。

抱了个歉哈!

";

105.}

106. 

107.//计算排名

108.private function getRank($fromUsername){

109.$mysql = new SaeMysql();

110.$grade = $this->getGrade($fromUsername);

111.$sql = "SELECTCOUNT(*)FROM `24points`WHERE `grade`>".$grade."";

112.$mysql->closeDb();

113.return intval($mysql->getVar($sql))+1;

114.}

115. 

116.//计算成绩

117.private function setGrade($fromUsername, $add){

118.$mysql = new SaeMysql();

119.$sql = "SELECTgradeFROM `24points`WHERE `userid`='" . $fromUsername ."'";

120.$grade = intval($mysql->getVar($sql))+ $add;

121.$sql = "UPDATE `24points`SET `grade`= '" . $grade . "'WHERE `userid`='" . $fromUsername . "';";

122.$mysql->runSql($sql);

123.$mysql->closeDb();

124.}

125. 

126.//获得成绩

127.private function getGrade($fromUsername){

128.$mysql = new SaeMysql();

129.$sql = "SELECTgradeFROM `24points`WHERE `userid`='" . $fromUsername ."'";

130.$mysql->closeDb();

131.return intval($mysql->getVar($sql));

132.}

133. 

134. 

135.//计算等式,返回正确或者错误

136.private function calcStr($keyword){

137.$keyword = str_replace("(","(",$keyword);

138.$keyword = str_replace(")",")",$keyword);      

139.$keyword = str_replace("÷","/",$keyword);

140.$keyword = str_replace("/","/",$keyword);

141.$keyword = str_replace("×","*",$keyword);

142.$atr_arr = str_split($keyword);

143.$new_atr = '';

144.for ($i =0; $i < strlen($keyword); $i++){

145.$new_atr = $new_atr . $atr_arr[$i];

146.}

147.$s = eval("return$new_atr;");

148.if ($s ==24){

149.return true;

150.}

151. 

152.return false;

153.}

154. 

155.//是否是第一次

156.private function isFirst($fromUsername){

157.$mysql = new SaeMysql();

158.$sql = "SELECT*FROM `24points`WHERE `userid`='" . $fromUsername ."'";

159.$data = $mysql->getData($sql);

160.if (count($data)==0){

161.$sql = "INSERTINTO`24points`(`userid`,`step`)VALUES('" .$fromUsername . "','" .constant("INPUT_NAME"). "');";

162.$mysql->runSql($sql);

163.$mysql->closeDb();

164.return true;

165.}

166.return false;

167.}

168. 

169.//获取当前的步骤

170.private function getStep($fromUsername){

171.$mysql = new SaeMysql();

172.$sql = "SELECTstepFROM `24points`WHERE `userid`='" . $fromUsername ."'";

173.$mysql->closeDb();

174.return $mysql->getVar($sql);

175.}

176. 

177.//获取随机的四个数字用空格隔开

178.private function getNumbers(){

179.$rand_id =rand(1,1362);

180.$mysql = new SaeMysql();

181.$sql = "SELECTnum1FROM `24data`WHERE `id`='" . $rand_id . "'";

182.$num1 = $mysql->getVar($sql);

183.$sql = "SELECTnum2FROM `24data`WHERE `id`='" . $rand_id . "'";

184.$num2 = $mysql->getVar($sql);

185.$sql = "SELECTnum3FROM `24data`WHERE `id`='" . $rand_id . "'";

186.$num3 = $mysql->getVar($sql);

187.$sql = "SELECTnum4FROM `24data`WHERE `id`='" . $rand_id . "'";

188.$num4 = $mysql->getVar($sql);

189.$mysql->closeDb();

190.$numbers = $num1 . "" . $num2 . "" . $num3 . "" . $num4;

191.return $numbers;

192.}

193. 

194.//设置当前操作的步数

195.private function setStep($fromUsername, $step){

196.$mysql = new SaeMysql();

197.$sql = "UPDATE `24points`SET `step`= '" . $step . "'WHERE `userid`='" . $fromUsername . "';";

198.$mysql->runSql($sql);

199.$mysql->closeDb();

200.}

201. 

202.//设置用户昵称

203.private function setName($fromUsername, $username){

204.$mysql = new SaeMysql();

205.$sql = "UPDATE `24points`SET `username`= '" . $username . "'WHERE `userid`='" . $fromUsername . "';";

206.$mysql->runSql($sql);

207.$mysql->closeDb();

208.}

209. 

210. 

211. 

212.//验证微信

213.public function valid(){

214.$echoStr = $_GET["echostr"];

215.//validsignature,option

216.if ($this->checkSignature()){

217.echo $echoStr;

218.exit;

219.}

220.}

221. 

222.//检查签名

223.private function checkSignature(){

224.$signature = $_GET["signature"];

225.$timestamp = $_GET["timestamp"];

226.$nonce = $_GET["nonce"];

227. 

228.$token =TOKEN;

229.$tmpArr = array($token, $timestamp, $nonce);

230.sort($tmpArr);

231.$tmpStr =implode($tmpArr);

232.$tmpStr =sha1($tmpStr);

233. 

234.if ($tmpStr == $signature){

235.return true;

236.} else {

237.return false;

238.}

239.}

240.}

viewsource

print?

0001.1118

0002.11111

0003.11112

0004.11113

0005.1126

0006.1127

0007.1128

0008.1129

0009.11210

0010.11211

0011.11212

0012.11213

0013.1134

0014.1135

0015.1136

0016.1137

0017.1138

0018.1139

0019.11310

0020.11311

0021.11312

0022.11313

0023.1144

0024.1145

0025.1146

0026.1147

0027.1148

0028.1149

0029.11410

0030.11412

0031.1155

0032.1156

0033.1157

0034.1158

0035.1166

0036.1168

0037.1169

0038.11612

0039.11710

0040.1188

0041.11913

0042.111012

0043.111013

0044.111111

0045.111112

0046.111113

0047.111212

0048.111213

0049.111313

0050.1224

0051.1225

0052.1226

0053.1227

0054.1228

0055.1229

0056.12210

0057.12211

0058.12212

0059.12213

0060.1233

0061.1234

0062.1235

0063.1236

0064.1237

0065.1238

0066.1239

0067.12310

0068.12311

0069.12312

0070.12313

0071.1244

0072.1245

0073.1246

0074.1247

0075.1248

0076.1249

0077.12410

0078.12411

0079.12412

0080.12413

0081.1255

0082.1256

0083.1257

0084.1258

0085.1259

0086.12510

0087.12512

0088.12513

0089.1266

0090.1267

0091.1268

0092.1269

0093.12610

0094.12611

0095.12612

0096.12613

0097.1277

0098.1278

0099.1279

0100.12710

0101.12711

0102.12712

0103.1288

0104.1289

0105.12810

0106.12813

0107.12911

0108.12912

0109.12913

0110.121011

0111.121012

0112.121013

0113.121111

0114.121112

0115.121113

0116.121212

0117.121213

0118.121313

0119.1333

0120.1334

0121.1335

0122.1336

0123.1337

0124.1338

0125.1339

0126.13310

0127.13311

0128.13312

0129.1344

0130.1345

0131.1346

0132.1347

0133.1348

0134.1349

0135.13410

0136.13411

0137.13412

0138.13413

0139.1356

0140.1357

0141.1358

0142.1359

0143.13510

0144.13511

0145.13512

0146.13513

0147.1366

0148.1367

0149.136

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2