Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

当两块跳板距离太近时,distance计算不准有误差,可通过调整distance大小调整。小米note2,跳出4600+分数。 #125

Closed
mg459046365 opened this issue Dec 30, 2017 · 29 comments

Comments

@mg459046365
Copy link

mg459046365 commented Dec 30, 2017

  distance = math.sqrt((board_x - piece_x) ** 2 + (board_y - piece_y) ** 2)
    print("start-------- distance --------start: ", distance)
    tmp = 0
    if distance < 220:
        tmp = 38
        print("200-------- distance --------200:",tmp)

    elif distance < 380:
        tmp = 30
        print("350-------- distance --------350:",tmp)
    elif distance < 480 :
        tmp = 25
        print("465-------- distance --------465:",tmp)
    elif distance < 515 :
        tmp = 14
        print("500-------- distance --------500:",tmp)
    elif distance < 580 :
        tmp = 12
        print("540-------- distance --------540:",tmp)
    elif distance < 635 :
        tmp = 5
        print("630-------- distance --------630:",tmp)

    distance = distance + tmp
    print("end-------- distance --------end: ", distance)

同时 调整参数:
under_game_score_y = 300,
press_coefficient = 1.4665,
piece_base_height_1_2 = 25,
piece_body_width = 80 ,
有大概85%以上都跳到到中心点。
我是小米note2,1920*1080,跳出4643分。

@DevXue
Copy link

DevXue commented Dec 30, 2017

老哥, 你修改代码了么? 我的是小米Note1 分辨率 也是 1080*1920 的 5.7寸 但为啥就是突破不到130以上?? 可以教教我咋搞不? 感谢。

@mg459046365
Copy link
Author

@897902334 调整一下press_coefficient这个参数,可以试试1.45

@DevXue
Copy link

DevXue commented Dec 30, 2017

@mg459046365 老哥 非常感谢 终于突破130大关了 现在还在蹦跶中 300多了!!! 谢谢你。

@ilewseu
Copy link

ilewseu commented Dec 30, 2017

建议 只修改到<200的情况,因为命中正中间还有外的加分

@JavenSong
Copy link

为什么用1.45一跳就跪啊,跳不上格

@mg459046365 mg459046365 changed the title 当两块跳板距离太近时,distance计算不准有误差,可通过调整distance大小调整。以小米note2为例。 当两块跳板距离太近时,distance计算不准有误差,可通过调整distance大小调整。小米note2,跳出4600+分数。 Dec 30, 2017
@mg459046365
Copy link
Author

数据已经更新,小米note2的同志,可以试试

@JavenSong
Copy link

请问小米5的怎么办啊?总是左跳的时候跳太大力

@haozhou0327
Copy link

请问你这个距离怎么加进去?代码加到什么位置

@jinhuiphy
Copy link

@haozhou0327 加到main函数里面 jump的前面就好了,吧jump里面的参数换成distance

@jinhuiphy
Copy link

@mg459046365 加了修正好多了,老哥真的稳,已经突破500了

@mg459046365
Copy link
Author

@jinhuiphy 你可以继续调试,将区间调的更小,就会更准确。因为distance算法是有问题的,所以会有误差,这个算是一个弥补误差的方法,而且也简单。

@haozhou0327
Copy link

@jinhuiphy 谢谢,修改了。正在调试。我是华为的,目前分数一直很低

@githubypf
Copy link

@mg459046365 老哥 我是python 小白 问一下阿 这个代码扔到def jump(distance): 里面去为啥报错啊

@Abysman
Copy link

Abysman commented Dec 31, 2017

@githubypf 你这明显不对啊,distance要算的参数全在main下面,不在jump内部

@githubypf
Copy link

@Abysman def main():

distance = math.sqrt((board_x - piece_x) ** 2 + (board_y - piece_y) ** 2)
tmp = 0
if distance < 220:
tmp = 38
elif distance < 380:
tmp = 30
elif distance < 480 :
tmp = 25
elif distance < 515 :
tmp = 14
elif distance < 580 :
tmp = 12
elif distance < 635 :
tmp = 5
distance = distance + tmp:

while True:
    pull_screenshot()
    im = Image.open("./1.png")
    # 获取棋子和 board 的位置
    piece_x, piece_y, board_x, board_y = find_piece_and_board(im)
    ts = int(time.time())
    print(ts, piece_x, piece_y, board_x, board_y)
    set_button_position(im)

    jump(distance)
    save_debug_creenshot(ts, im, piece_x, piece_y, board_x, board_y)
    backup_screenshot(ts)
    time.sleep(random.uniform(1, 1.1))   # 为了保证截图的时候应落稳了,多延迟一会儿

请问是这样吗?谢谢啦

@Abysman
Copy link

Abysman commented Dec 31, 2017

@githubypf 在while True:的里面或者说在jump(distance)上面那行写这些代码

@githubypf
Copy link

@Abysman 但是他还是会报错.....

@Abysman
Copy link

Abysman commented Dec 31, 2017

@githubypf piece_x, piece_y, board_x, board_y = find_piece_and_board(im)和jump(distance)中间放那些代码,位置确定没问题?

@githubypf
Copy link

@Abysman
def main():
while True:
pull_screenshot()
im = Image.open("./1.png")
# 获取棋子和 board 的位置
piece_x, piece_y, board_x, board_y = find_piece_and_board(im)
ts = int(time.time())
print(ts, piece_x, piece_y, board_x, board_y)
set_button_position(im)

distance = math.sqrt((board_x - piece_x) ** 2 + (board_y - piece_y) ** 2)
print("start-------- distance --------start: ", distance)
tmp = 0
if distance < 220:
tmp = 38
print("200-------- distance --------200:",tmp)

elif distance < 380:
    tmp = 30
    print("350-------- distance --------350:",tmp)
elif distance < 480 :
    tmp = 25
    print("465-------- distance --------465:",tmp)
elif distance < 515 :
    tmp = 14
    print("500-------- distance --------500:",tmp)
elif distance < 580 :
    tmp = 12
    print("540-------- distance --------540:",tmp)
elif distance < 635 :
    tmp = 5
    print("630-------- distance --------630:",tmp)

distance = distance + tmp
print("end-------- distance --------end: ", distance)


    jump(distance)
    save_debug_creenshot(ts, im, piece_x, piece_y, board_x, board_y)
    backup_screenshot(ts)
    time.sleep(random.uniform(1, 1.1))   # 为了保证截图的时候应落稳了,多延迟一会儿

其他地方我都没改 我又重新拷贝了一下 还是这样

@Abysman
Copy link

Abysman commented Dec 31, 2017

@githubypf 那可能是空格制表符的问题吧,直接复制过来的需要处理下,需要对齐= =

@githubypf
Copy link

@Abysman 是的 空格的问题 我自己敲了一遍就好了 已经跳到1100了谢谢啦

@Abysman
Copy link

Abysman commented Dec 31, 2017

@githubypf 不过话说你是什么机型。。

@githubypf
Copy link

@Abysman 小米note2

@ZZmove
Copy link

ZZmove commented Dec 31, 2017

复制的时候用 Notepad++ 打开视图-显示空格与制表符看一下问题

@zhuJIE12345
Copy link

为什么我只有第一次是544分,之后的分数都比较低

@YXX-to-YY
Copy link

太厉害,修改过后马上上千,之前都是在200徘徊

@helloworld10010
Copy link

牛逼。。。。。。。。。。 之前没上100 。。。 牛逼哇

@wangshub wangshub closed this as completed Jan 5, 2018
@SuezhouAndroid
Copy link

改哪个文件啊,,我完全就是小白啊

@WangCoCo
Copy link

太棒了 小米note标准版亲测好用 每次都跳中心

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests