本文主要是介绍一个具有界面的速算小游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这是一个运用python的easygui库写的一个速算小游戏,适合小白学习。但是在代码方面可能有不规范的地方,所以小白的话就学习random库,time库和easygui库的一些用法就好
现在废话不多说先上完整代码再解释
from easygui import *
from random import *
import time
def msl(js):while True:fs = 0jd_1 = randint(1, js)jd_2 = randint(1, js)jd_3 = randint(1, 2)sj = randint(1, 2)jg = jd_1 + jd_2 #对随机得出来的数进行加减jg_2 = jd_1 - jd_2cq = randint(1, 10) #随机俩个不正确的结果i_1 = randint(1, 2) #对加减进行随机if i_1 == 1: jg_3 = 1jg_5 = jgelif i_1 == 2:jg_3 = 2jg_5 = jg_2i_2 = randint(1, 2) #随机不正确的结果if i_2 == 1:sc = jg_5 + cq + 2if i_2 == 2:sc = jg_5 - cq - 2i_3 = randint(1, 2) #随机不正确的结果if i_3 == 1:sc_2 = jg_5 + cqif i_3 == 2:sc_2 = jg_5 - cqi_4 = randint(1, 2) #31~48行均对按键位置进行随机if i_4 == 1:sc_3 = sci_5 = randint(1, 2)if i_5 == 1:sc_4 = sc_2sc_5 = jg_5elif i_5 == 2:sc_4 = jg_5sc_5 = sc_2elif i_4 == 2:sc_4 = sci_6 = randint(1, 2)if i_6 == 1:sc_3 = sc_2sc_5 = jg_5elif i_6 == 2:sc_3 = jg_5sc_5 = sc_2else:sc_5 = sci_7 = randint(1, 2)if i_7 == 1:sc_4 = sc_2sc_3 = jg_5elif i_7 == 2:sc_4 = jg_5sc_3 = sc_2if jg_3 == 1:jg_3 = 0p = time.time()q = buttonbox(msg="\t\t\t\t{}+{}=\n\n\t\t\t\t分数{}\n\n你只有10秒".format(jd_1, jd_2, fs),choices=(str(sc_3), str(sc_4), str(sc_5), '退出'))z=time.time()l = z-pif str(jg_5) == q and l < 10 :fs += 1elif q == '退出':breakelif l > 10:msgbox("您已超时")fs = 0elif str(jg_5) != q:msgbox('错了')fs = 0else:breakp,z,l=0,0,0elif jd_3 == 2:jg_3 = 0p = time.time()q = buttonbox(msg="\t\t\t\t{}-{}=\n\n\t\t\t\t分数{}\n\n你只有5秒".format(jd_1, jd_2, fs),choices=(str(sc_3), str(sc_4), str(sc_5), '退出'))z = time.time()l = z - pif str(jg_5) == q and l <5:fs += 1elif q == '退出':breakelif l > 5:msgbox("您已超时")fs = 0elif str(jg_5) != q:msgbox('错了')fs = 0else:breakelse:passp, z,l = 0, 0,0
msgbox("欢迎进入")
while True:sr = buttonbox(msg='请选择',choices=('简单模式','困难模式','退出'))if sr =='简单模式':msl(10)elif sr == '困难模式':msl(20)elif sr == '退出':breakelse:break
以下是对题目的数字进行随机
注:randint是random库的一个模块
randint(a,b) a,b是随机的一个范围,a是开始数字,b是结束数字
7.jd_1 = randint(1, js)
8.jd_2 = randint(1, js)
以下是对时间的一个限制
注: time是time库的一个模块
61行是开始计时 64行是结束计时 65行计时的时间差
61.p = time.time()
64.z = time.time()
65.l = z-p
例:
from time import*
a = time()
print(a)
input()
b = time()
print(b)
w = b-a
print(w)
一下为输出结果
1628673880.90429231628673883.3581548
2.453862428665161
以下是输出easygui库的一个界面
注:buttonbox是easygui库的一个函数,作用是输出一个有按钮的界面
q = buttonbox(msg="\t\t\t\t{}+{}=\n\n\t\t\t\t分数{}\n\n你只有10秒".format(jd_1, jd_2, fs),choices=(str(sc_3), str(sc_4), str(sc_5), '退出'))
例:
from easygui import *
a = buttonbox(msg="这是一个标题",choices=("这是按钮1","这是按钮2"))
以下是运行结果:
以下是easygui库的一个函数:
msgbox("您已超时")
例:
from easygui import*
msgbox("这是输出内容")
以下是运行结果:
以下是速算的另一个版本:
https://blog.csdn.net/qq_51887218/article/details/119613341
这篇关于一个具有界面的速算小游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!