人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

python實(shí)戰(zhàn)小游戲之考驗(yàn)記憶力

發(fā)布日期:2021-12-29 22:37 | 文章來源:腳本之家

導(dǎo)語

哈嘍!大家好,我是木木子。

今日游戲更新系列來啦,是不是很想知道今天的游戲是什么類型的?立馬安排上——

隨著年紀(jì)的不斷上升,我們開始丟三落四,忘東忘西,記憶力越來越差了!

這不止大人隨著年紀(jì)增大記憶力退卻,其實(shí)很多小孩子也是一樣~

很多家長是不是經(jīng)常抱怨:

“我家孩子背課文特別慢,常常背了幾十遍都背不下來,昨晚又背到一點(diǎn)多,我都要崩潰了;

在給孩子輔導(dǎo)課后作業(yè),明明很簡單的古詩詞填空,孩子的第一反應(yīng)就是打開書照抄,如果不翻課本,半天寫不出來;

昨晚單詞背得還好好的,第二天早上抽查的時(shí)候,10個(gè)單詞錯(cuò)8個(gè),忘得一干二凈;”

​...............................................................................................................................

下面小編為你整理了提高記憶的方法——編寫一款提高記憶力的小游戲,希望能幫到大家!游戲的話更容易讓大家接受嘛~

正文

游戲模塊Pygame上線——先安裝好相應(yīng)的環(huán)境跟模塊,還是之前寫游戲的哪些環(huán)境哈!不清楚的去看下之前的游戲文章哦~

游戲規(guī)則:在規(guī)定的時(shí)間內(nèi)完成記憶力的翻出相應(yīng)的圖片即可消除,每次只能明牌三張,完全靠記憶力完成這款小游戲,增加大腦的靈活度,多動(dòng)動(dòng)腦,鍛煉下。

首先準(zhǔn)備好相應(yīng)的圖片:這里準(zhǔn)備的神奇寶貝的。

這些也很可愛吖:隨機(jī)的哈大家可以自己選擇不止這些的哈!背景音樂哪些肯定也設(shè)置了的哈~

正式開始——

主要游戲的代碼:

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('<Button-1>', self.clickcallback)
 self.game_matrix[position].grid(row=r, column=c)
  # 已經(jīng)顯示正面的卡片
  self.shown_cards = []
  # 場上存在的卡片數(shù)量
  self.num_existing_cards = len(cards_list)
  # 顯示游戲剩余時(shí)間
  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()
  # 計(jì)時(shí)
  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)

設(shè)置回調(diào)函數(shù),三張卡片的對(duì)比:

 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:
# --之前翻開的卡片和現(xiàn)在的卡片一樣
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)
# --之前翻開的卡片和現(xiàn)在的卡片不一樣
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:
# --之前翻開的第一張卡片和現(xiàn)在的卡片一樣
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)
# --之前翻開的第二張卡片和現(xiàn)在的卡片一樣
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)
# --之前翻開的卡片和現(xiàn)在的卡片都不一樣
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
  # 判斷游戲是否已經(jīng)勝利
  if self.num_existing_cards == 0:
is_restart = messagebox.askyesno('Game Over', '勝利, 你贏了, 你想要再來一次嘛?')
if is_restart: self.restart()
else: self.root.destroy()

計(jì)時(shí),超時(shí)即沒完成游戲,彈窗選擇:

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', '你已經(jīng)超時(shí)了,要重新來一次嘛?')
if is_restart: self.restart()
else: self.root.destroy()

如下圖所示:

總游戲運(yùn)行效果如下:

總結(jié)

所以,若記憶力不好,不必悲觀,還是可以通過后天的學(xué)習(xí)和訓(xùn)練去改善和提高噠~嘿嘿嘿,趕緊來試試吧~

你們的支持是我最大的動(dòng)力?。∮浀萌B哦~mua 歡迎大家閱讀往期的文章~

​​

到此這篇關(guān)于python實(shí)戰(zhàn)小游戲之考驗(yàn)記憶力的文章就介紹到這了,更多相關(guān)python 小游戲內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部