摘要:導語哈嘍大家好,我是木木子。首先準備好相應的圖片這里準備的。
哈嘍!大家好,我是木木子。
今日游戲更新系列來啦,是不是很想知道今天的游戲是什么類型的?立馬安排上——
隨著年紀的不斷上升,我們開始丟三落四,忘東忘西,記憶力越來越差了!
這不止大人隨著年紀增大記憶力退卻,其實很多小孩子也是一樣~
很多家長是不是經常抱怨:
“我家孩子背課文特別慢,常常背了幾十遍都背不下來,昨晚又背到一點多,我都要崩潰了;
在給孩子輔導課后作業,明明很簡單的古詩詞填空,孩子的第一反應就是打開書照抄,如果不翻課本,半天寫不出來;
昨晚單詞背得還好好的,第二天早上抽查的時候,10個單詞錯8個,忘得一干二凈;”
?...............................................................................................................................
?
下面小編為你整理了提高記憶的方法——編寫一款提高記憶力的小游戲,希望能幫到大家!游戲的話更容易讓大家接受嘛~
游戲模塊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=cfg.IMAGEPATHS["blank"]) # 卡片背面 self.cards_back_image = PhotoImage(data=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)
設置回調函數,三張卡片的對比:
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()
計時,超時即沒完成游戲,彈窗選擇:
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()
如下圖所示:
總游戲運行效果如下:
?
所以,若記憶力不好,不必悲觀,還是可以通過后天的學習和訓練去改善和提高噠~嘿嘿嘿,趕緊來試試吧~
如需要完整的文章項目源碼+素材:#私信小編06#即可免費獲取哦!
你們的支持是我最大的動力!!記得三連哦~mua 歡迎大家閱讀往期的文章~
往期游戲文章推薦:
1.9?Pygame實戰:慎點|虐單身狗的最高境界是…【附源碼】
2.0Pygame實戰:利用Python實現智能五子棋,實現之后發現我玩不贏它!
1.2?Pygame實戰:據說這是史上最難掃雷游戲,沒有之一!你們感受下......
1.3?Pygame實戰:對象突然想玩坦克大戰,我用Python三十分鐘實現!看!他開心的像個孩子!
哈哈哈~最后一下不要走:
1.1Python—2021 |已有文章匯總 | 持續更新,直接看這篇就夠了~
??
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122195.html
摘要:正文開心消消樂分為二部分首先是開心然后是消消樂游戲嘛嘿嘿一開心小故事三則近視聰明的學生殺手二消消樂游戲素材圖片開心消消樂語音提示環境安裝本文是由寫的小游戲。 導語 你今天消消樂了嗎? ? 哈嘍哈嘍~木木子之前不是寫過一篇百變消消樂嘛? 可能你們不記得了,沒關系——今天重溫一下,來一篇開心?...
摘要:還有那個極具極客范兒的監控閉路電視的硬盤空間也是用儀表盤展示數據的,具體代碼可以看上項目。對了還有業務層面的實現業務響應速度監控,監控的響應時間,什么監控數據,應用數據,儀表盤統統搞的定。 Cloud Insight 第13次新品發布會現在開始,首先非常感謝大家前來看我們的新功能發布會,下面我先給大家介紹一下新功能,之后有什么問題大家盡管問?。 新功能 Cloud Insight 發布...
摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
摘要:嗷大喵和他的小伙伴們快樂的生活在一起,他們總是能給大家帶來歡樂。大家都說嗷大喵真棒。大家要做的就是解救嗷大喵遠離惡龍。 導語 哈嘍~大家好,我是木子,首先今天木子先給大家講個小故事: 在喵界有這樣一只網紅——混跡于二次元、表情包界,賤萌活潑,調皮機靈,白色的大圓臉,脖子 上系了個鈴鐺,年齡不...
閱讀 1480·2021-11-17 09:33
閱讀 1260·2021-10-11 10:59
閱讀 2891·2021-09-30 09:48
閱讀 1904·2021-09-30 09:47
閱讀 3023·2019-08-30 15:55
閱讀 2335·2019-08-30 15:54
閱讀 1491·2019-08-29 15:25
閱讀 1644·2019-08-29 10:57