返回列表 发帖

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

本帖最后由 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

评分人数

    • codegay: 很好的练习题。技术 + 1

你这自动请求的频率有点高啊。

我开了有一会刚好数据库500错误了。不知道有没有关系。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 2# codegay


    500是接收到错误数据返回
if (empty($json["Username"][$Username])) {if ($_POST["send"]!=="reg") {die (header("HTTP/1.1 500 Internal Server Error"));}}COPY

TOP

本帖最后由 老刘1号 于 2017-7-2 11:12 编辑

先来个暴力枚举(VBS):
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", "http://bbaass.tk/math/", False
.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
.Send "send=reg&username=老刘"
End With
For i = 1 to 100
If math(i) = "=" then msgbox "Win!The number is "&i
next
Function Math(num)
With CreateObject("MSXML2.XMLHTTP")
.Open "POST","http://bbaass.tk/math/", False
.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
.send "send=Answer&math=" & num & "&username=老刘"
Math = Split(Split(.responseText,",")(2),"""")(3)
End With
End FunctionCOPY
1

评分人数

TOP

回复 4# 老刘1号


    我用你的程序跑出一个,你的用户名下成功率没有+1啊。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 4# 老刘1号


下面Username 应为 username

TOP

回复 6# bbaa
回复 5# codegay

    晕,我说嘛

TOP

无脑暴力比较好写。
# -*- coding: utf-8 -*-
"""
Created on 2017-07-02 02:21:10
@author: codegay
python3 & 编辑器 == spyder
"""
import requests
apiurl = "http://bbaass.tk/math/"
math = 50
data = {
        'send': 'Answer',
        'username': 'codegay',
        'math': math,
        }
session = requests.Session()
while True:
    for r in range(1, 101):
        data['math'] = r
        post = session.post(apiurl, data=data)
        re = post.json()['re']
        if re == '=':
            breakCOPY
1

评分人数

去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 老刘1号 于 2017-7-2 17:56 编辑

取平均数递归法
在19楼是最新的防溢出与更改的版本:http://www.bathome.net/redirect.php?goto=findpost&ptid=44616&pid=200845

TOP

回复 9# 老刘1号
算法有问题,这不是正宗的二分,是递归。

TOP

回复 10# happy886rr


   有空来写一个看看。我不会写呢。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 老刘1号 于 2017-7-2 17:57 编辑

回复 10# happy886rr


    改进了下,欢迎测试

TOP

程序是不是崩了。一直返回500
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 13# codegay


    确实崩了,楼主说的……
vbs表示下标越界

TOP

本帖最后由 happy886rr 于 2017-7-2 15:08 编辑

回复 11# codegay
在你的requests.Session()基础上改的。(外链效果图)
import requests
# 用户信息
userNAMZE='Psaa'
# 主机地址
hostURL='http://bbaass.tk/math/'
# 提交数据
postDATA={'send':'Answer', 'username':userNAMZE, 'math':50}
# 注册用户名
requests.Session().post(hostURL, {'send':'reg', 'username':userNAMZE})
# 辗转移位
def GuessFun(mathMIN, mathMAX):
# 搜索次数
searchTIMES=0
while mathMAX-mathMIN >1:
postDATA['math'] = (mathMAX+mathMIN)>>1
searchTIMES +=1
print("The %d times"%(searchTIMES))
r = requests.Session().post(hostURL, postDATA).json()
ret = r['re']
if ret == '=':
break
elif ret == '<':
mathMIN=postDATA['math']
else:
mathMAX=postDATA['math']
return searchTIMES
# 打印结果
if __name__ == "__main__":
searchTIMES = GuessFun(-1, 101)
print("Search times: %d\nGuess the number: %d"%(searchTIMES, postDATA['math']))COPY
3

评分人数

TOP

返回列表