找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 475992|回复: 141

[数值计算] 【Warning:此贴已经过气】【挑战】用任何语言在猜数游戏作弊

[复制链接]
发表于 2017-7-1 21:09:13 | 显示全部楼层 |阅读模式
本帖最后由 bbaa 于 2017-7-27 17:20 编辑

【此贴已经过气】

把算法代码发到楼下吧!
挑战地址:bbaass.tk
API:http://bbaass.tk/math/
POST:
注册:
send:"reg",
username:username
发送答案:
send:"Answer",
mathint)答案,
username:username
Return:Json
code => 200
re => ">" or "<" or "=" [=代表正确]
tokens => 本局tokens [如果tokens变化代表,本局结束 开始下一局]
winer => 上局赢家[可以知道谁抢了你的题目]

添加Token可以检测数值变更本来就有但是我忘了.....


活动:7:30P.M清档比赛10分钟后第一者给2.99元[已结束][QQ]恭喜happy886rr

应某人要求... 17-7-19 13点更改
感谢下方大佬捧场

一小时战况:

半小时战况:

十分钟战况:

一分钟战况:

数值总榜

评分

参与人数 1技术 +1 收起 理由
codegay + 1 很好的练习题。

查看全部评分

发表于 2017-7-1 23:05:59 | 显示全部楼层
你这自动请求的频率有点高啊。

我开了有一会刚好数据库500错误了。不知道有没有关系。
 楼主| 发表于 2017-7-1 23:15:04 | 显示全部楼层
回复 2# codegay


    500是接收到错误数据返回
  1. if (empty($json["Username"][$Username])) {if ($_POST["send"]!=="reg") {die (header("HTTP/1.1 500 Internal Server Error"));}}
复制代码
发表于 2017-7-2 09:27:44 | 显示全部楼层
本帖最后由 老刘1号 于 2017-7-2 11:12 编辑

先来个暴力枚举(VBS):

  1. With CreateObject("MSXML2.XMLHTTP")
  2.         .Open "POST", "http://bbaass.tk/math/", False
  3.         .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  4.         .Send "send=reg&username=老刘"
  5. End With

  6. For i = 1 to 100
  7.         If math(i) = "=" then msgbox "Win!The number is "&i
  8. next

  9. Function Math(num)
  10.         With CreateObject("MSXML2.XMLHTTP")
  11.                 .Open "POST","http://bbaass.tk/math/", False
  12.                 .setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
  13.                 .send "send=Answer&math=" & num & "&username=老刘"
  14.                 Math = Split(Split(.responseText,",")(2),"""")(3)
  15.         End With
  16. End Function
复制代码

评分

参与人数 1技术 +1 收起 理由
bbaa + 1 xx

查看全部评分

发表于 2017-7-2 10:57:17 | 显示全部楼层
回复 4# 老刘1号


    我用你的程序跑出一个,你的用户名下成功率没有+1啊。
 楼主| 发表于 2017-7-2 11:10:11 | 显示全部楼层
回复 4# 老刘1号


下面Username 应为 username
发表于 2017-7-2 11:12:37 | 显示全部楼层
回复 6# bbaa
回复 5# codegay

    晕,我说嘛
发表于 2017-7-2 11:21:31 | 显示全部楼层
无脑暴力比较好写。
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on 2017-07-02 02:21:10
  4. @author: codegay
  5. python3 & 编辑器 == spyder
  6. """

  7. import requests
  8. apiurl = "http://bbaass.tk/math/"

  9. math = 50
  10. data = {
  11.         'send': 'Answer',
  12.         'username': 'codegay',
  13.         'math': math,
  14.         }

  15. session = requests.Session()
  16. while True:
  17.     for r in range(1, 101):
  18.         data['math'] = r
  19.         post = session.post(apiurl, data=data)
  20.         re = post.json()['re']
  21.         if re == '=':
  22.             break
复制代码

评分

参与人数 1技术 +1 收起 理由
bbaa + 1 666

查看全部评分

发表于 2017-7-2 11:35:06 | 显示全部楼层
本帖最后由 老刘1号 于 2017-7-2 17:56 编辑

取平均数递归法
在19楼是最新的防溢出与更改的版本:http://www.bathome.net/redirect.php?goto=findpost&ptid=44616&pid=200845
发表于 2017-7-2 11:54:05 | 显示全部楼层
回复 9# 老刘1号
算法有问题,这不是正宗的二分,是递归。
发表于 2017-7-2 12:02:33 | 显示全部楼层
回复 10# happy886rr


   有空来写一个看看。我不会写呢。
发表于 2017-7-2 12:26:49 | 显示全部楼层
本帖最后由 老刘1号 于 2017-7-2 17:57 编辑

回复 10# happy886rr


    改进了下,欢迎测试
发表于 2017-7-2 12:32:45 | 显示全部楼层
程序是不是崩了。一直返回500
发表于 2017-7-2 12:47:10 | 显示全部楼层
回复 13# codegay


    确实崩了,楼主说的……
vbs表示下标越界
发表于 2017-7-2 13:01:20 | 显示全部楼层
本帖最后由 happy886rr 于 2017-7-2 15:08 编辑

回复 11# codegay
在你的requests.Session()基础上改的。(外链效果图)

  1. import requests

  2. # 用户信息
  3. userNAMZE='Psaa'

  4. # 主机地址
  5. hostURL='http://bbaass.tk/math/'

  6. # 提交数据
  7. postDATA={'send':'Answer', 'username':userNAMZE, 'math':50}

  8. # 注册用户名
  9. requests.Session().post(hostURL, {'send':'reg', 'username':userNAMZE})

  10. # 辗转移位
  11. def GuessFun(mathMIN, mathMAX):
  12.         # 搜索次数
  13.         searchTIMES=0
  14.         while mathMAX-mathMIN >1:
  15.                 postDATA['math'] = (mathMAX+mathMIN)>>1
  16.                 searchTIMES +=1
  17.                 print("The %d times"%(searchTIMES))
  18.                 r = requests.Session().post(hostURL, postDATA).json()
  19.                 ret = r['re']
  20.                 if ret == '=':
  21.                         break
  22.                 elif ret == '<':
  23.                         mathMIN=postDATA['math']
  24.                 else:
  25.                         mathMAX=postDATA['math']
  26.         return searchTIMES

  27. # 打印结果
  28. if __name__ == "__main__":
  29.         searchTIMES = GuessFun(-1, 101)
  30.         print("Search times: %d\nGuess the number: %d"%(searchTIMES, postDATA['math']))
复制代码

评分

参与人数 3技术 +3 收起 理由
codegay + 1 1
bbaa + 1 6666
老刘1号 + 1 6

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:06 , Processed in 0.025602 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表