数学口算练习器制作

准备

好久没有更新了,这一次我们来制作数学口算练习器,先win+r输入cmd,pip install PySimpleGUI,这样,图形化模块就安装好了,接下来我们来制作数学口算练习器。

制作

先引入模块PySimpleGUI(图形化模块)和random(随机数模块):

import PySimpleGUI as sg  
import random

然后进行程序初始化

while 1==1:
    lsls=0
    tctc=0
    if 1==1:
        #------------图形化界面设计——————————————————
        layout=[

        [sg.Text("欢迎来到数学闯关小游戏",relief='ridge',border_width=5,font=('华文彩云',15))],
        [sg.Button('初级'),sg.Button('中级'),sg.Button('高级'),sg.B("帮助"),sg.B("退出")]
        ]


        window=sg.Window('数学闯关',layout)
         #------------图形化界面设计结束——————————————————
        #出题初始化
        while True:
            event,values=window.read()
            if event==None:
                tctc=1
                break
            if event=='初级':
                jia1=20
                jian1=20
                jia2=20
                jian2=20
                sjsj=2
                break
            if event=='中级':
                jia1=100
                jian1=100
                jia2=100
                jian2=100
                chen1=10
                chen2=10
                sjsj=3
                break
            if event=="高级":
                jia1=1000
                jian1=1000
                jia2=1000
                jian2=1000
                chen1=100
                chen2=10
                chu1=100
                chu2=10
                sjsj=4
                break
            if event=="退出":
                tctc=1
                break
            if event=="帮助":
                sg.popup("数学闯关小游戏;\n初级为20以内的加减法;\n中级为100以内的加减及10以内乘法;\n高级为100以内加减及100*10以内的乘除法。",title="数学闯关")
        window.close()
        if tctc==1:
            break

出题:

#接在while True下面  
    if lsls==0:
        dui=0
        zong=0
        qqq=0
        while 1==1:
            a=random.randint(1,sjsj)
            if a==1:
                b=random.randint(0,jia1)
                c=random.randint(0,jia2)
                d=str(b)+"+"+str(c)+"="
                e=b+c
            elif a==2:
                b=random.randint(0,jian1)
                c=random.randint(0,jian2)
                if b-c<0:
                    while b-c<0:
                        b=random.randint(0,jian1)
                        c=random.randint(0,jian2)
                d=str(b)+"-"+str(c)+"="
                e=b-c
            elif a==3:
                b=random.randint(0,chen1)
                c=random.randint(0,chen2)
                d=str(b)+"X"+str(c)+"="
                e=b*c
            elif a==4:
                e=random.randint(0,chu1)
                c=random.randint(1,chu2)
                b=e*c
                d=str(b)+"/"+str(c)+"="
            zong+=1  
            layout=[

            [sg.T("             "),sg.Text("欢迎来到数学闯关小游戏",relief='ridge',border_width=5,font=('华文彩云',15))],
            [sg.Text(d),sg.InputText(key="-Q-")],
            [sg.Button('提交',bind_return_key=True),sg.Button('跳过'),sg.Button('退出')]
            ]


            window=sg.Window('数学闯关',layout)

判断对错

           while True:
                event,values=window.read()
                if event==None:
                    window.close()
                    sg.popup("答题报告)答对题数:"+str(dui)+"总题数"+str(zong))
                    qqq=1
                    break
                if event=='提交':
                    
                    if values["-Q-"]==str(e):
                        sg.popup("恭喜你,答对了! ok进入下一关~")
                        dui+=1
                        break
                    else:
                        sg.popup("很遗憾,答错了! ok进入重来~~")
                if event=='退出':
                    window.close()
                    sg.popup("答题报告)答对题数:"+str(dui)+",总题数:"+str(zong)+",百分比:"+str(dui/zong*100)+"%",title="答题报告")
                    qqq=1
                    break
                if event=="跳过":
                    break
            if qqq==1:
                break
            window.close()

写在最后

好了,本片文章就到这里了,如果图形化不太懂的可以参照我以前的文章,再见。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值