基于Python如何实现彩票小游戏
本篇内容主要讲解“基于Python如何实现彩票小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python如何实现彩票小游戏”吧!
一、游戏规则
游戏里面有提前设置好的奖项,分为三个,一等奖,二等奖,三等奖,用户需要在14个随机数中,连续猜6次,每次填写一个1~14的数字,填写完数字之后使用键盘和鼠标点击,揭示中奖号码。如果猜中6个数字表示中一等奖,一等奖给用户加300积分。
5个数字表示中二等奖,二等奖给用户加200积分。4个数字表示中三等奖,三等奖给用户加100积分。除此之外表示不中奖,不中奖就会扣除用户的50积分,每揭示中奖号码一次,会要求用户输入是否继续。可以手动结束游戏,或者积分用完自动结束游戏。
二、环境准备
1)运行环境
开发环境:Python3、Pycharm社区版、Pygame,部分自带的模块安装Python即可使用。
2)模块安装
第三方库的安装方式如下:
一般安装:pip install +模块名
镜像源安装:pip install -i pypi.douban/simple/+模块名…
三、代码展示
1)导入库
importpygamefrompygame.localsimport*importsys,random,time,easygui
2)主程序
#pygame环境初始化pygame.init()#设置一个长为1250,宽为700的窗口canvas=pygame.display.set_mode((600,450))canvas.fill([255,255,255])#设置窗口标题pygame.display.set_caption("")#图片加载bg1=pygame.image.load('images/bg(1).jpg')bg2=pygame.image.load('images/bg(2).jpg')ball=pygame.image.load('images/ball.jpg')h=pygame.image.load('images/h.jpg')defhandleEvent():foreventinpygame.event.get():ifevent.type==pygame.QUIT:pygame.quit()sys.exit()#专门写字defwrite(str,x,y):text=pygame.font.SysFont('simsunnsimsun',30)laohu=text.render(str,True,(255,0,0))canvas.blit(laohu,(x,y))defwrite2(str,x,y):text=pygame.font.SysFont('微软雅黑',60)laohu=text.render(str,True,(0,255,0))canvas.blit(laohu,(x,y))#变换状态defchangestate():foreventinpygame.event.get():ifevent.type==MOUSEBUTTONDOWNandevent.button==1:ifgame.state==game.states[0]:game.state=game.states[1]ifevent.type==KEYDOWNandevent.key==K_SPACE:ifgame.state==game.states[2]:game.state=game.states[3]ifevent.type==pygame.QUIT:pygame.quit()sys.exit()#用户类classUser():def__init__(self):self.socre=300self.numbers=[]defwin(self,num):self.socre=self.socre+numdeflose(self):self.socre=self.socre-50user=User()#创建ball类classBall():def__init__(self,x,y):self.img=ballself.x=xself.y=ydefpaint(self):canvas.blit(self.img,(self.x,self.y))#创建游戏类classgame():#0-5个状态states=['欢迎','投注','随机','依次停止','计算','是否']state=states[0]numbers=[]index=0#创建ball对象defcreatball():game.balls=[Ball(30,350),Ball(130,350),Ball(230,350),Ball(330,350),Ball(430,350),Ball(530,350)]#揭示号码defremoveball():foreventinpygame.event.get():ifevent.type==MOUSEBUTTONDOWNandevent.button==1:game.balls.pop(0)game.index+=1#揭示数字:defshownumber():write2(str(game.numbers[0]),30,350)write2(str(game.numbers[1]),130,350)write2(str(game.numbers[2]),230,350)write2(str(game.numbers[3]),330,350)write2(str(game.numbers[4]),430,350)write2(str(game.numbers[5]),530,350)#产生6个不重复的随机数,添加到列表里,算法defcreatnumber():ifnotlen(game.numbers)==0:game.numbers=[]whileTrue:num=random.randint(1,13)ifnotnumingame.numbers:game.numbers.append(num)iflen(game.numbers)==6:break#清除用户数据defclean_user():iflen(user.numbers)==0:return0else:foriinrange(len(user.numbers)):user.numbers.pop()#固定的几个页面封装起来defpaint():canvas.blit(bg1,(0,0))canvas.blit(bg2,(300,0))n=random.randint(0,14)write(str(n),110,90)write(str(n),410,90)foriingame.balls:i.paint()#猜对了几个?defjisuan():n=0t=Trueforiinuser.numbers:forjingame.numbers:ifi==j:n+=1ifn==6:user.win(300)elifn==5:user.win(200)elifn==4:user.win(100)else:user.lose()t=Falsereturnt#用来在界面表达文字,数字等。defconpaint():canvas.blit(h,(0,0))ifgame.state==game.states[0]:write('欢迎来到偷偷乐',200,100)write('请点击鼠标进入下一个环节!',70,300)elifgame.state==game.states[1]:creatnumber()creatball()clean_user()game.index=0easygui.msgbox('您的积分为'+str(user.socre)+'\n'+'祝您游戏愉快!!')foriinrange(6):n=int(easygui.enterbox('请输入1-14中的一个数字'))user.numbers.append(n)game.state=game.states[2]elifgame.state==game.states[2]:paint()write('请按下空格进入show环节',150,130)elifgame.state==game.states[3]:shownumber()removeball()paint()write('请点击鼠标揭示中奖号码!',150,130)ifgame.index==6:game.state=game.states[4]elifgame.state==game.states[4]:shownumber()paint()ifjisuan():easygui.msgbox('恭喜你中奖了,您的积分为'+str(user.socre))q=easygui.enterbox('是否继续?y/n')ifq=='y':game.state=game.states[1]elifq=='n':easygui.msgbox('您最终积分为'+str(user.socre))game.state=game.states[5]elifgame.state==game.states[5]:write('欢迎下次再来!!',200,100)#总控制程序defcontrol():ifuser.socre>0:conpaint()changestate()else:canvas.blit(h,(0,0))easygui.msgbox('您的积分已经用完')write('欢迎下次再来!!',200,100)time.sleep(2)whileTrue:control()pygame.display.update()handleEvent()
到此,相信大家对“基于Python如何实现彩票小游戏”有了更深的了解,不妨来实际操作一番吧!这里是主机评测网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
下一篇:Windows故障转移群集和SQLServer?AlwaysOn配置的方法是什么
输入法切换键是哪个键?输入法切
冬月是哪一个月?冬月是什么意思
个人所得税退税金额怎么算出来的
输入法全角和半角有什么区别?输
a4纸尺寸是多少厘米?a4纸的由来
个人所得税扣除标准?个人所得税
输入法哪个好用?输入法介绍
卡拉OK是哪个国家发明的?卡拉OK
mikutools原神网页版入口链接?m
关机特别慢什么原因?电脑和手机