当前位置: 首页 > news >正文

【Python实战】快看:”又中奖了,中大奖了“周围的小伙伴都惊呆了~你还不麻溜滴~(代码版彩票小游戏上线啦)

导语

哈喽!北鼻们,晚上好。

夕阳🌇的第一缕阳光送给小可爱们~每天都要加油鸭!

所有文章完整的素材+源码都在👇👇

粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。

 彩票是一个恒古不变的话题,现在的生活越来越好,大部分人开始关注福利彩票的事情,当然

也有很多人都想中将是真的啦~哈哈哈,但是大家还是要适当哦!

就话不多说,开始今天 主题吧,小编今天给大家做了一款简易的彩票小游戏,让我们看看谁能

中一等奖吧?谁又是二等奖、三等奖呢?

正文

一、游戏规则

 游戏里面有提前设置好的奖项,分为三个,一等奖,二等奖,三等奖,用户需要在14个随机数

中,连续猜6次,每次填写一个1~14的数字,填写完数字之后使用键盘和鼠标点击,揭示中奖

号码。如果猜中6个数字表示中一等奖,一等奖给用户加300积分。

5个数字表示中二等奖,二等奖给用户加200积分。4个数字表示中三等奖,三等奖给用户加100

积分。除此之外表示不中奖,不中奖就会扣除用户的50积分,每揭示中奖号码一次,会要求用

户输入是否继续。可以手动结束游戏,或者积分用完自动结束游戏。

二、环境准备

 1)运行环境 

 开发环境:Python3、Pycharm社区版、Pygame,部分自带的模块安装Python即可使用。 

 相对应的安装包/安装教程/激活码/使用教程/学习资料/工具插件 可以直接找我厚台获取 。 

 2)模块安装 

 第三方库的安装方式如下: 

 一般安装:pip install +模块名 镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名 (还有很多国内镜像源,这里是豆瓣的用习惯了,其他镜像源可以去看下之前文章都有的)模块安装问题可以详细的找我给大家讲一下的哈,之前其实也有的文章写了几个点的。 

三、代码展示

1)导入库

import pygame
from pygame.locals import *
import sys,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')
def handleEvent():for event in pygame.event.get():if event.type==pygame.QUIT:pygame.quit()sys.exit()
#专门写字
def write(str,x,y):text=pygame.font.SysFont('simsunnsimsun',30)laohu=text.render(str,True,(255,0,0))canvas.blit(laohu,(x,y))
def write2(str,x,y):text=pygame.font.SysFont('微软雅黑',60)laohu=text.render(str,True,(0,255,0))canvas.blit(laohu,(x,y))            #变换状态            
def changestate():for event in pygame.event.get():if event.type==MOUSEBUTTONDOWN and event.button==1:if game.state==game.states[0]:game.state=game.states[1]if event.type==KEYDOWN and event.key==K_SPACE:if game.state==game.states[2]:game.state=game.states[3]if event.type==pygame.QUIT:pygame.quit()sys.exit()
#用户类
class User():def __init__(self):self.socre=300self.numbers=[]def win(self,num):self.socre=self.socre+numdef lose(self):self.socre=self.socre-50
user=User()#创建ball类
class Ball():def __init__(self,x,y):self.img=ballself.x=xself.y=ydef paint(self):canvas.blit(self.img,(self.x,self.y))#创建游戏类       
class game():#0-5个状态states=['欢迎','投注','随机','依次停止','计算','是否']state=states[0]numbers=[]index=0#创建ball对象
def creatball():game.balls=[Ball(30,350),Ball(130,350),Ball(230,350),Ball(330,350),Ball(430,350),Ball(530,350)]#揭示号码
def removeball():for event in pygame.event.get():if event.type==MOUSEBUTTONDOWN and event.button==1:game.balls.pop(0)game.index+=1
#揭示数字:
def shownumber():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个不重复的随机数,添加到列表里,算法
def creatnumber():if not len(game.numbers)==0:game.numbers=[]       while True:num=random.randint(1,13)if not num in game.numbers:game.numbers.append(num)if len(game.numbers)==6:break#清除用户数据
def clean_user():if len(user.numbers)==0:return 0else :for i in range(len(user.numbers)):user.numbers.pop() 
#固定的几个页面封装起来
def paint():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)for i in game.balls:i.paint()#猜对了几个?
def jisuan():n=0t=Truefor i in user.numbers:for j in game.numbers:if i==j:n+=1if n==6:user.win(300)elif n==5:user.win(200)elif n==4:user.win(100)else :user.lose()t=Falsereturn t  #用来在界面表达文字,数字等。
def conpaint():canvas.blit(h,(0,0))if game.state == game.states[0]:write('欢迎来到偷偷乐',200,100)write('请点击鼠标进入下一个环节!',70,300)elif game.state == game.states[1]:creatnumber()creatball()clean_user()game.index=0easygui.msgbox('您的积分为'+str(user.socre)+'\n'+'祝您游戏愉快!!')for i in range(6):n=int(easygui.enterbox('请输入1-14中的一个数字'))user.numbers.append(n) game.state=game.states[2]elif game.state == game.states[2]: paint()write('请按下空格进入show环节',150,130)elif game.state == game.states[3]:shownumber()removeball()paint() write('请点击鼠标揭示中奖号码!',150,130)if game.index==6:game.state=game.states[4]elif game.state==game.states[4]:shownumber()paint()if jisuan():easygui.msgbox('恭喜你中奖了,您的积分为'+str(user.socre))q=easygui.enterbox('是否继续?y/n')if q=='y':game.state=game.states[1]elif q=='n':easygui.msgbox('您最终积分为'+str(user.socre))game.state=game.states[5]elif game.state==game.states[5]:write('欢迎下次再来!!',200,100)#总控制程序           
def control():if user.socre>0:conpaint()changestate()else :canvas.blit(h,(0,0))easygui.msgbox('您的积分已经用完')write('欢迎下次再来!!',200,100)time.sleep(2)while True:control() pygame.display.update()handleEvent()

四、效果展示

1)游戏界面

​2)初始积分

3)确定环节

4)中奖啦

中将之前自己输入数字之前没截图的哈,这里就只展示部分截图的。其他的需要大家自己探索

哟~

总结

嘿嘿,小编刚刚才三等奖呢!4个数字表示中三等奖,三等奖给用户加100积分。大家能摇一摇到

一等奖嘛?评论区见~这要是能中,那运气不得了哈。

🎯完整的免费源码领取处:找我吖!文末公众hao可自行领取,滴滴我也可!

🔨推荐往期文章——

项目1.0  超级玛丽

程序员自制游戏:超级玛丽100%真实版,能把你玩哭了~【附源码】

项目1.1   扫雷

 Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......

项目8.2  疯狂吃水果游戏

【Pygame实战】你说神奇不神奇?吃豆人+切水果结合出一款你没玩过的新游戏!(附源码)

 项目8.3 泡泡机游戏

【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

项目9.6   黑客代码雨

 【神级Python代码】作为技术xiao白如何制作一款超炫酷的黑客主题代码雨?牛逼就完了。(源码分享学习)

🎄文章汇总——

汇总合集 Python—2022 |已有文章汇总 | 持续更新,直接看这篇就够了

(更多内容+源码都在✨文章汇总哦!!欢迎阅读喜欢的文章🎉~

http://www.lryc.cn/news/26404.html

相关文章:

  • 【python】控制台中文输出乱码解决方案
  • 一名IC验证工程师的成长路径是怎么样的?来听听工程师的见解
  • java工具jconsole/jstat学习
  • WSN_1 介绍;部分应用介绍
  • linux常用命令介绍 05 篇——实际应用篇(用 cut、uniq等统计文档里每个关键词出现的次数)
  • 大数据处理学习笔记1.7 Scala类与对象
  • Feign踩坑源码分析 -- 请求参数分号变逗号
  • nginx通用history模式刷新
  • Linux系统安装:Zookeeper
  • cocos2dx+lua学习笔记:UIPageView的使用
  • MyBatis常见面试题汇总(超详细回答)
  • Jvm调优实战笔记
  • JVM 全面了解
  • 阿里开源自研高性能核心搜索引擎 Havenask
  • nginx日志服务之敏感信息脱敏
  • 【uni-app教程】一、UniAPP 介绍
  • Splunk Real-time Search 的研究
  • SWM181 串口功能使用介绍
  • Stochastic Approximation 随机近似方法的详解之(三)Dvoretzky’s convergence theorem
  • 7个ES6解构技巧让代码更简洁
  • 曾经被人们看成是异想天开的产业互联网,或许终将会实现
  • log4j控制台不打印日志的故障解决方案
  • C# 序列化时“检测到循环引用”错误的彻底解决方案
  • 小红书“复刻”微信,微信“内造”小红书
  • 用arthas轻松排查线上问题
  • mysql一explain结果分析
  • 原理底层计划--HashMap
  • win10 设备管理器中的黄色感叹号(华硕)
  • 新产品上市推广不是“铺货”上架
  • MATLAB训练神经网络小结