中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于Python如何實現彩票小游戲

發布時間:2023-03-08 11:12:47 來源:億速云 閱讀:106 作者:iii 欄目:開發技術

本篇內容主要講解“基于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.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=300
        self.numbers=[]
    def win(self,num):
        self.socre=self.socre+num
    def lose(self):
        self.socre=self.socre-50
user=User()

#創建ball類
class Ball():
    def __init__(self,x,y):
        self.img=ball
        self.x=x
        self.y=y
    def 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 0
    else :
        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=0
    t=True
    for i in user.numbers:
        for j in game.numbers:
            if i==j:
                n+=1
    if n==6:
        user.win(300)
    elif n==5:
        user.win(200)
    elif n==4:
        user.win(100)
    else :
        user.lose()
        t=False
    return 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=0
        easygui.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()

到此,相信大家對“基于Python如何實現彩票小游戲”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

小金县| 仁怀市| 太和县| 高邮市| 东阳市| 神农架林区| 商都县| 井陉县| 岑溪市| 澄江县| 盘锦市| 义乌市| 贵港市| 巴东县| 甘德县| 徐水县| 阿尔山市| 金川县| 盐边县| 广元市| 班戈县| 夹江县| 余江县| 长沙市| 集安市| 沁水县| 三台县| 洪江市| 闸北区| 台中县| 南昌市| 封丘县| 山东| 平武县| 河曲县| 鲁甸县| 聊城市| 吐鲁番市| 旅游| 板桥市| 扎囊县|