基于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如何实现彩票小游戏”有了更深的了解,不妨来实际操作一番吧!这里是主机评测网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


上一篇:Oracle数据库表被锁怎么查询和解锁

下一篇:Windows故障转移群集和SQLServer?AlwaysOn配置的方法是什么


Copyright © 2002-2019 测速网 https://www.inhv.cn/ 皖ICP备2023010105号 城市 地区 街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!
热门搜索