python猜数字游戏
def guss_number(n):
while True:
ret = dm.prompt("请输入出猜测的数字(1~1000000之间)", "猜数字")
if ret != None :
try:
ret = int(ret)
except:
print('你输入的好像不是数字→_→')
guss_number(n)
if ret>MAX or ret<0 :
print('你输入的数字超出范围')
guss_number(n)
elif int(ret) > integer:
dm.alert("猜大了 ╮(╯▽╰)╭", "猜数字",'猜数字')
n += 1
print(n)
elif int(ret) < integer:
dm.alert('猜小了 ╮(╯▽╰)╭', '猜数字')
n += 1
print(n)
else:
dm.alert(f'恭喜你答对了!!!(*^▽^*)o( ̄▽ ̄)d,你一共用了{n}次')
break
else:
print('正在退出猜数字游戏....')
time.sleep(2)
break
if __name__ == '__main__':
MAX=1000000
res = dm.confirm("是否要进入猜数字游戏", "猜数字")
if res == 'OK':
print('正在进入猜数字游戏....')
time.sleep(3)
integer = random.randint(1, MAX)
guss_number(0)
else:
print('正在退出猜数字游戏....')
time.sleep(3)
针对上面的代码自动猜数字
'''
等待弹窗弹出 @
第一步:
点开游戏
判断大这个弹窗是否弹出
:return: bool
判断小这个弹窗是否弹出
:return: bool
判断正确这个弹窗是否弹出
:return:bool
相当于主函数,实现猜数字功能
:return:
把猜的数字写进去
'''
import math
import time
import pyautogui
import pyperclip
from csdn import copy_paste_pyperclip
from csdn.Keyspirit import my_pic, my_mouse, my_key
def wait_pic(x1, y1, x2, y2, path, degree=100):
'''
等待弹窗出现
找的范围
:param x1: 范围右上角的横向坐标
:param y1: 范围右上角的纵向坐标
:param x2: 范围右下角的横向坐标
:param y2: 范围右下角的纵向坐标
:param path:要找的图片路径
:param degree:寻找次数
:return:bool
'''
for j in range(degree):
res = my_pic.FindPic(x1, y1, x2, y2, path)
if res[0] != -1: return True
time.sleep(1)
return False
def spot():
'''
点开文件,并回答第一个弹窗(是否进入猜数字游戏)
'''
path = r'C:\Users\Administrator.USER-20200912KS\Desktop\guss\guss_n.bmp'
x, y = my_pic.FindPic(0, 0, 1920, 1079, path)
my_mouse.LeftDoubleClick(x, y)
res = wait_pic(0, 0, 1920, 1079, r'C:\Users\Administrator.USER-20200912KS\Desktop\guss\iswindow.bmp')
print(res)
if res:
my_key.KeyPress('enter')
time.sleep(3)
def big():
'''
找图片,判断弹窗是否弹出'猜大了'
'''
x, y = my_pic.FindPic(0, 0, 1920, 1079, r'C:\Users\Administrator.USER-20200912KS\Desktop\guss\bag.bmp')
if x > -1: return True
return False
def small():
'''
找图片,判断弹窗是否弹出'猜小了'
'''
x, y = my_pic.FindPic(0, 0, 1920, 1079, r'C:\Users\Administrator.USER-20200912KS\Desktop\guss\small.bmp')
if x > -1: return True
return False
def guess_right():
'''
找图片,判断弹窗是否弹出'猜对了'
'''
x, y = my_pic.FindPic(0, 0, 1920, 1079, r'C:\Users\Administrator.USER-20200912KS\Desktop\guss\Guess_right.bmp')
if x > -1: return True
return False
def main():
star = 0
end = 1000000
mid = end / 2
c = 0
wait_pic(310, 316, 510, 416, r'C:\Users\Administrator.USER-20200912KS\Desktop\guss\ok.bmp')
pyautogui.write(str(round(mid)))
time.sleep(1)
my_key.KeyPress('enter')
time.sleep(1)
while True:
time.sleep(1)
if big():
print("big")
end = mid - 1
elif small():
print("small")
star = mid + 1
elif guess_right():
c += 1
print(f'答对啦!!!,用了{c}次')
break
my_key.KeyPress('enter')
time.sleep(1)
print(star, end)
mid = math.floor((star + end) / 2)
pyautogui.write(str(mid))
time.sleep(1)
my_key.KeyPress('enter')
time.sleep(2)
c += 1
if __name__ == '__main__':
spot()
main()