预期成果: 最终达到:随机数字,随机图像,封装成exe方便在不同电脑使用。 安装python转exe的工具:PyInstaller 开工! 输出为: STEP3 规范图片尺寸和图片名称。 今天竟然完成啦,哈啊 做了这么几个工作: 上面排列组合了。我本想着用循环,发现太麻烦了。 上面这个竟然可以用。 输出效果如图。 哪个是哪个分不清了,反正是都显示出来了,晕晕乎乎的。 STEP5 下面更新了一个音效:当分数图片是3或4时,播放音效。 完整代码更新如下: STEP6 封装成exe文件 一些思考:舒尔特方格、一些翻牌游戏应该都能这样做出来。
一个4×4的表格,每个空有一只动物,点击动物,动物消失,下面出现随机的数字,学生加相应的分数。
——————–我是分割线——————-
前期工作:安装python,安装pygame。
windows命令提示符安装pygamepip install pygame
pip install PyInstaller
STEP1 实现一张图片的显示。import pygame import sys pygame.init() # 初始化pygame size = width, height = 600, 600 # 设置窗口大小 screen = pygame.display.set_mode(size) # 显示窗口 jpgFileName = "pic/pic1 (1).png" while True: # 死循环确保窗口一直显示 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() imgRect = pygame.image.load(jpgFileName) screen.blit(imgRect,[0,0]) pygame.display.flip() # 更新全部显示 pygame.quit() # 退出pygame
STEP2 实现点击后图片消失。
(失败,网上说图片不能消失,可以重新绘制,可以做一个列表,再列表中删除,再重新绘制,貌似我不会啊,先简单实现点击后出现另一张图片)
STEP2.1 实现点击图片后显示另一张图片。import pygame import sys pygame.init() # 初始化pygame size = width, height = 600, 600 # 设置窗口大小 screen = pygame.display.set_mode(size) # 显示窗口 jpgFileName = "pic/pic1 (1).png" imgRect = pygame.image.load(jpgFileName) jpgFileName2 = "pic/pic1 (2).png" imgRect2 = pygame.image.load(jpgFileName2) screen.blit(imgRect, [0, 0]) while True: # 死循环确保窗口一直显示 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() if event.type == pygame.MOUSEBUTTONDOWN and 0<=event.pos[0]<=200 and 0<=event.pos[1]<=200: #判断鼠标位置以及是否摁了下去。:里面的200是我随便写的数,到时候需要根据图片尺寸修改。 screen.blit(imgRect2, [0, 0]) pygame.display.flip() # 更新全部显示 pygame.quit() # 退出pygame
是不是需要设计一个统一的规则,比如图片点击后,不论点击哪张?我这水平的…什么类?什么函数?呃呃呃
还要考虑随机图片名称和函数,所以最好用上面说的,建一个列表,点击后将列表更新,比如正常是000000,显示,点击了第三个图片,列表更新为001000,1表示分数数字。
要做这么几件事:
我把所有图片都修改为150×150像素的,然后重命名。如下图
STEP4 然后就一边百度一边写啊,改啊,能用循环的尽量用了循环。
代码如下:import pygame import sys import random import numpy as np import itertools pygame.init() # 初始化pygame size = width, height = 600, 600 # 设置窗口大小 screen = pygame.display.set_mode(size) # 显示窗口 Xpts=[0, 150, 300, 450] Ypts=[0, 150, 300, 450] map = np.array(list(itertools.product(Xpts, Ypts))) #16幅图片坐标 status = [0 for i in range(16)] #是否被翻开的状态位 list1 = [[i] for i in range(16)] random.shuffle(list1) #将动物图片打乱顺序,并载入图片 for i in range(16): #这里必须 16,15的话少右下角一张。 screen.blit(pygame.image.load("pic/pic" + str(*list1[i-1]) + ".jpg"), map[i]) # pygame.display.flip() # 更新全部显示 while True: # 死循环确保窗口一直显示 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() for i in range(16): if event.type == pygame.MOUSEBUTTONDOWN and map[i][0]<=event.pos[0]<=map[i][0] + 150 and map[i][1]<=event.pos[1]<=map[i][1] + 150 and status[i] != 1: #判断鼠标位置以及是否摁了下去。: screen.blit(pygame.image.load("pic/num" + str(random.randint(0,3))+ ".jpg"), map[i]) status[i] = 1 pygame.display.flip() # 更新全部显示 pygame.quit() # 退出pygame
Xpts=[0, 150, 300, 450] Ypts=[0, 150, 300, 450] map = np.array(list(itertools.product(Xpts, Ypts)))
map[i][0]<=event.pos[0]<=map[i][0] + 150
最后,一个不明白的地方,那个显示的时候list1 = [[i] for i in range(16)] random.shuffle(list1) #将动物图片打乱顺序,并载入图片 for i in range(16): #这里必须 16,15的话少右下角一张。 screen.blit(pygame.image.load("pic/pic" + str(*list1[i-1]) + ".jpg"), map[i])
wavFileName = 'sound/sound1.wav' #载入音效 sndTrack = pygame.mixer.music.load(wavFileName) pygame.mixer.music.play()
import pygame import sys import random import numpy as np import itertools pygame.init() # 初始化pygame size = width, height = 600, 600 # 设置窗口大小 screen = pygame.display.set_mode(size) # 显示窗口 Xpts=[0, 150, 300, 450] Ypts=[0, 150, 300, 450] map = np.array(list(itertools.product(Xpts, Ypts))) #16幅图片坐标 status = [0 for i in range(16)] #是否被翻开的状态位 list1 = [[i] for i in range(16)] random.shuffle(list1) #将动物图片打乱顺序,并载入图片 for i in range(16): #这里必须 16,15的话少右下角一张。 screen.blit(pygame.image.load("pic/pic" + str(*list1[i-1]) + ".jpg"), map[i]) wavFileName = 'sound/sound1.wav' #载入音效 sndTrack = pygame.mixer.music.load(wavFileName) while True: # 死循环确保窗口一直显示 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() for i in range(16): if event.type == pygame.MOUSEBUTTONDOWN and map[i][0]<=event.pos[0]<=map[i][0] + 150 and map[i][1]<=event.pos[1]<=map[i][1] + 150 and status[i] != 1: #判断鼠标位置以及是否摁了下去。: tem_num = random.randint(0,3) screen.blit(pygame.image.load("pic/num" + str(tem_num)+ ".jpg"), map[i]) status[i] = 1 if tem_num >= 2: #3分及以上播放音效 pygame.mixer.music.play() pygame.display.flip() # 更新全部显示 pygame.quit() # 退出pygame
win+R打开cmd
pip install PyInstaller
cd D:pylearnchoujiang
pyinstaller -F myfile.py
完结撒花。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算