程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))

导语 哈喽!大家好,我是木木子。
今日游戏更新系列来啦,是不是很想知道今天的游戏是什么类型的?立马安排上——
随着年纪的不断上升,我们开始丢三落四,忘东忘西,记忆力越来越差了!
程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))
文章图片

这不止大人随着年纪增大记忆力退却,其实很多小孩子也是一样~
很多家长是不是经常抱怨:
“我家孩子背课文特别慢,常常背了几十遍都背不下来,昨晚又背到一点多,我都要崩溃了;
在给孩子辅导课后作业,明明很简单的古诗词填空,孩子的第一反应就是打开书照抄,如果不翻课本,半天写不出来;
昨晚单词背得还好好的,第二天早上抽查的时候,10个单词错8个,忘得一干二净;”
?...............................................................................................................................
程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))
文章图片
?
下面小编为你整理了提高记忆的方法——编写一款提高记忆力的小游戏,希望能帮到大家!游戏的话更容易让大家接受嘛~
正文 游戏模块Pygame上线——先安装好相应的环境跟模块,还是之前写游戏的哪些环境哈!不清楚的去看下之前的游戏文章哦~
游戏规则:在规定的时间内完成记忆力的翻出相应的图片即可消除,每次只能明牌三张,完全靠记忆力完成这款小游戏,增加大脑的灵活度,多动动脑,锻炼下。
首先准备好相应的图片:这里准备的。
程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))
文章图片

这些也很可爱吖:随机的哈大家可以自己选择不止这些的哈!背景音乐哪些肯定也设置了的哈~
程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))
文章图片

正式开始——
主要游戏的代码:

class FlipCardByMemory(): def __init__(self): # 播放背景音乐 self.playbgm() # 载入得分后响起的音乐 self.score_sound = pygame.mixer.Sound(cfg.AUDIOPATHS['score']) self.score_sound.set_volume(1) # 卡片图片路径 self.card_dir = random.choice(cfg.IMAGEPATHS['carddirs']) # 主界面句柄 self.root = Tk() self.root.wm_title('神器宝贝——记忆明牌小游戏 ') # 游戏界面中的卡片字典 self.game_matrix = {} # 背景图像 self.blank_image = PhotoImage(data=https://www.it610.com/article/cfg.IMAGEPATHS['blank']) # 卡片背面 self.cards_back_image = PhotoImage(data=https://www.it610.com/article/cfg.IMAGEPATHS['cards_back']) # 所有卡片的索引 cards_list = list(range(8)) + list(range(8)) random.shuffle(cards_list) # 在界面上显示所有卡片的背面 for r in range(4): for c in range(4): position = f'{r}_{c}' self.game_matrix[position] = Label(self.root, image=self.cards_back_image) self.game_matrix[position].back_image = self.cards_back_image self.game_matrix[position].file = str(cards_list[r * 4 + c]) self.game_matrix[position].show = False self.game_matrix[position].bind('', self.clickcallback) self.game_matrix[position].grid(row=r, column=c) # 已经显示正面的卡片 self.shown_cards = [] # 场上存在的卡片数量 self.num_existing_cards = len(cards_list) # 显示游戏剩余时间 self.num_seconds = 30 self.time = Label(self.root, text=f'Time Left: {self.num_seconds}') self.time.grid(row=6, column=3, columnspan=2) # 居中显示 self.root.withdraw() self.root.update_idletasks() x = (self.root.winfo_screenwidth() - self.root.winfo_reqwidth()) / 2 y = (self.root.winfo_screenheight() - self.root.winfo_reqheight()) / 2 self.root.geometry('+%d+%d' % (x, y)) self.root.deiconify() # 计时 self.tick() # 显示主界面 self.root.mainloop()

游戏开始即背景音乐播放:
def playbgm(self): pygame.init() pygame.mixer.init() pygame.mixer.music.load(cfg.AUDIOPATHS['bgm']) pygame.mixer.music.play(-1, 0.0)

程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))
文章图片
设置回调函数,三张卡片的对比:
def clickcallback(self, event): card = event.widget if card.show: return # 之前没有卡片被翻开 if len(self.shown_cards) == 0: self.shown_cards.append(card) image = ImageTk.PhotoImage(Image.open(os.path.join(self.card_dir, card.file+'.png'))) card.configure(image=image) card.show_image = image card.show = True # 之前只有一张卡片被翻开 elif len(self.shown_cards) == 1: # --之前翻开的卡片和现在的卡片一样 if self.shown_cards[0].file == card.file: def delaycallback(): self.shown_cards[0].configure(image=self.blank_image) self.shown_cards[0].blank_image = self.blank_image card.configure(image=self.blank_image) card.blank_image = self.blank_image self.shown_cards.pop(0) self.score_sound.play() self.num_existing_cards -= 2 image = ImageTk.PhotoImage(Image.open(os.path.join(self.card_dir, card.file+'.png'))) card.configure(image=image) card.show_image = image card.show = True card.after(300, delaycallback) # --之前翻开的卡片和现在的卡片不一样 else: self.shown_cards.append(card) image = ImageTk.PhotoImage(Image.open(os.path.join(self.card_dir, card.file+'.png'))) card.configure(image=image) card.show_image = image card.show = True # 之前有两张卡片被翻开 elif len(self.shown_cards) == 2: # --之前翻开的第一张卡片和现在的卡片一样 if self.shown_cards[0].file == card.file: def delaycallback(): self.shown_cards[0].configure(image=self.blank_image) self.shown_cards[0].blank_image = self.blank_image card.configure(image=self.blank_image) card.blank_image = self.blank_image self.shown_cards.pop(0) self.score_sound.play() self.num_existing_cards -= 2 image = ImageTk.PhotoImage(Image.open(os.path.join(self.card_dir, card.file+'.png'))) card.configure(image=image) card.show_image = image card.show = True card.after(300, delaycallback) # --之前翻开的第二张卡片和现在的卡片一样 elif self.shown_cards[1].file == card.file: def delaycallback(): self.shown_cards[1].configure(image=self.blank_image) self.shown_cards[1].blank_image = self.blank_image card.configure(image=self.blank_image) card.blank_image = self.blank_image self.shown_cards.pop(1) self.score_sound.play() self.num_existing_cards -= 2 image = ImageTk.PhotoImage(Image.open(os.path.join(self.card_dir, card.file+'.png'))) card.configure(image=image) card.show_image = image card.show = True card.after(300, delaycallback) # --之前翻开的卡片和现在的卡片都不一样 else: self.shown_cards.append(card) self.shown_cards[0].configure(image=self.cards_back_image) self.shown_cards[0].show = False self.shown_cards.pop(0) image = ImageTk.PhotoImage(Image.open(os.path.join(self.card_dir, card.file+'.png'))) self.shown_cards[-1].configure(image=image) self.shown_cards[-1].show_image = image self.shown_cards[-1].show = True # 判断游戏是否已经胜利 if self.num_existing_cards == 0: is_restart = messagebox.askyesno('Game Over', '胜利, 你赢了, 你想要再来一次嘛?') if is_restart: self.restart() else: self.root.destroy()

程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))
文章图片
计时,超时即没完成游戏,弹窗选择:
def tick(self): if self.num_existing_cards == 0: return if self.num_seconds != 0: self.num_seconds -= 1 self.time['text'] = f'Time Left: {self.num_seconds}' self.time.after(1000, self.tick) else: is_restart = messagebox.askyesno('Game Over', '你已经超时了,要重新来一次嘛?') if is_restart: self.restart() else: self.root.destroy()

如下图所示:
程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))
文章图片

程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))
文章图片

总游戏运行效果如下:
?
程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))
文章图片

程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))
文章图片

总结 所以,若记忆力不好,不必悲观,还是可以通过后天的学习和训练去改善和提高哒~嘿嘿嘿,赶紧来试试吧~
免费源码领取处:
如需要完整的文章项目源码+素材:#私信小编06#即可免费获取哦!
你们的支持是我最大的动力!!记得三连哦~mua 欢迎大家阅读往期的文章~
往期游戏文章推荐:
1.9 Pygame实战:慎点|虐单身狗的最高境界是…【附源码】
2.0Pygame实战:利用Python实现智能五子棋,实现之后发现我玩不赢它!
1.2 Pygame实战:据说这是史上最难扫雷游戏,没有之一!你们感受下......
1.3 Pygame实战:对象突然想玩坦克大战,我用Python三十分钟实现!看!他开心的像个孩子!
哈哈哈~最后一下不要走:
文章汇总——
1.1Python—2021 |已有文章汇总 | 持续更新,直接看这篇就够了~
【程序员合集|Pygame实战(记忆差怎么办(别急,增强记忆力的小游戏送给你~【越玩越上瘾】))】??

    推荐阅读