日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python語言實現貪吃蛇游戲

瀏覽:15日期:2022-07-05 16:27:10

本文實例為大家分享了python實現貪吃蛇游戲的具體代碼,供大家參考,具體內容如下

新手自學python(簡易貪吃蛇代碼)環(huán)境python3.7

剛剛大學畢業(yè)進入工作崗位,發(fā)現同事基本都會寫py腳本,于是自學了一下,并寫了一個簡單的貪吃蛇代碼,我覺得寫的還是比較容易看懂,適合新手接觸python。

# -*- coding: utf-8 -*-import tkinter as tk # 使用Tkinter前需要先導入import tkinter.messageboximport pickleimport randomimport time# 第1步,實例化object,建立窗口windowwindow = tk.Tk() # 第2步,給窗口的可視化起名字window.title(’Greedy snake’)# 第3步,設定窗口的大小(長 * 寬)# window.geometry(’1004x504’) # 這里的乘是小x# 第5步,創(chuàng)建一個主frame,長在主window窗口上frame = tk.Frame(window, bg = ’blue’, bd = 2, relief = tk.FLAT)frame.pack(side = ’left’)#當前框架被選中,意思是鍵盤觸發(fā),只對這個框架有效frame.focus_set()Labellist = [] #存放所有方塊的labelBlocklist = [] #存放背景方塊的值 1:被占用 0:空閑Snakelist = [] #存放snake的坐標height = 15width = 20#snack前進方向left = 0right = 1up = 2down =3pause = 0start = 1class App(tk.Frame): def __init__(self,master):self.window = mastertk.Frame.__init__(self)master.bind(’<Up>’,self.Up)master.bind(’<Left>’,self.Left)master.bind(’<Right>’,self.Right)master.bind(’<Down>’,self.Down)master.bind(’<p>’,self.Pause)master.bind(’<s>’,self.Start)master.bind(’<r>’,self.Restart)self.Init_snake() #初始化界面方法 self.time = 1000self.Onetime() def Up(self, event):if self.Istart: self.direction = up def Down(self, event):if self.Istart: self.direction = down def Left(self, event):if self.Istart: self.direction = left def Right(self, event):if self.Istart: self.direction = right def Init_snake(self):del Labellist[:]del Blocklist[:]del Snakelist[:] #初始化背景方塊LabelRowList = []BlockRowlist = []c = r = 0for k in range(width*height): LN=tk.Label(frame,text = ’ ’, bg = ’black’, fg = ’white’, relief = tk.FLAT, bd = 4) LN.grid(row=r,column=c,sticky=tk.N+tk.E+tk.S+tk.W) LabelRowList.append(LN) BlockRowlist.append(0) c=c+1if c>=20:r=r+1c=0Labellist.append(LabelRowList)Blocklist.append(BlockRowlist)LabelRowList = []BlockRowlist = []#初始化snakeself.Istart = 0self.direction = left self.direction_last = left self.overflag = 0 #snake head的初始位置self.x = 7self.y = 8#snake tail的初始位置self.x_tail = 7self.y_tail = 10Snakelist.append((7,8))Snakelist.append((7,9))Snakelist.append((7,10))self.snakelen = len(Snakelist) Blocklist[self.x][self.y] = 1Blocklist[self.x][self.y+1] = 1Blocklist[self.x][self.y+2] = 1Labellist[self.x][self.y].config(bg = ’green’, relief = tk.RAISED)Labellist[self.x][self.y+1].config(bg = ’white’, relief = tk.RAISED)Labellist[self.x][self.y+2].config(bg = ’white’, relief = tk.RAISED)#初始化foodself.food_x = random.randint(0,14)self.food_y = random.randint(0,19)while Blocklist[self.food_x][self.food_y] == 1: self.food_x = random.randint(0,14) self.food_y = random.randint(0,19) Blocklist[self.food_x][self.food_y] = 1Labellist[self.food_x][self.food_y].config(bg = ’red’, relief = tk.RIDGE) def Pause(self, event):self.Istart = pause def Start(self, event):self.Istart = start def Restart(self, event):self.Init_snake() def Onetime(self): #每1000ms做一次界面刷新if self.Istart and self.overflag == 0:if (self.direction_last == down and self.direction == up )or(self.direction_last == up and self.direction == down )or(self.direction_last ==left and self.direction == right )or(self.direction_last ==right and self.direction == left ):self.direction = self.direction_last self.direction_last = self.direction x0 = self.x y0 = self.y if self.direction == left:if x0 == self.food_x and y0-1 == self.food_y: Labellist[x0][y0-1].config(bg = ’green’, relief = tk.RAISED) Labellist[x0][y0].config(bg = ’white’, relief = tk.RAISED) self.food_x = random.randint(0,14) self.food_y = random.randint(0,19) while Blocklist[self.food_x][self.food_y] == 1:self.food_x = random.randint(0,14)self.food_y = random.randint(0,19) Blocklist[self.food_x][self.food_y] = 1 Labellist[self.food_x][self.food_y].config(bg = ’red’, relief = tk.RIDGE) self.snakelen += 1 Snakelist.insert(0,(x0,y0-1)) self.x = x0 self.y = y0 - 1elif (x0>=0 and x0<height and y0-1>=0 and y0-1<width and Blocklist[x0][y0-1] == 0) or (self.x_tail == x0 and self.y_tail == y0 - 1):Blocklist[self.x_tail][self.y_tail] = 0 Labellist[self.x_tail][self.y_tail].config(bg = ’black’, relief = tk.FLAT) Blocklist[x0][y0-1] = 1 Labellist[x0][y0-1].config(bg = ’green’, relief = tk.RAISED) Labellist[x0][y0].config(bg = ’white’, relief = tk.RAISED) del Snakelist[self.snakelen - 1] Snakelist.insert(0,(x0,y0-1)) self.x = x0 self.y = y0 - 1 self.x_tail = Snakelist[self.snakelen - 1][0] self.y_tail = Snakelist[self.snakelen - 1][1]else: tk.messagebox.showinfo(title = ’snake’, message = ’game over!!!’) self.overflag = 1elif self.direction == up:if x0-1 == self.food_x and y0 == self.food_y: Labellist[x0-1][y0].config(bg = ’green’, relief = tk.RAISED) Labellist[x0][y0].config(bg = ’white’, relief = tk.RAISED) self.food_x = random.randint(0,14) self.food_y = random.randint(0,19) while Blocklist[self.food_x][self.food_y] == 1:self.food_x = random.randint(0,14)self.food_y = random.randint(0,19) Blocklist[self.food_x][self.food_y] = 1 Labellist[self.food_x][self.food_y].config(bg = ’red’, relief = tk.RIDGE) self.snakelen += 1 Snakelist.insert(0,(x0-1,y0)) self.x = x0 - 1 self.y = y0 elif (x0-1 >=0 and x0-1<height and y0>=0 and y0<width and Blocklist[x0-1][y0] == 0) or (self.x_tail == x0-1 and self.y_tail == y0): Blocklist[self.x_tail][self.y_tail] = 0 Labellist[self.x_tail][self.y_tail].config(bg = ’black’, relief = tk.FLAT) Blocklist[x0-1][y0] = 1 Labellist[x0-1][y0].config(bg = ’green’, relief = tk.RAISED) Labellist[x0][y0].config(bg = ’white’, relief = tk.RAISED) del Snakelist[self.snakelen - 1] Snakelist.insert(0,(x0 - 1,y0)) self.x = x0 - 1 self.y = y0 self.x_tail = Snakelist[self.snakelen - 1][0] self.y_tail = Snakelist[self.snakelen - 1][1]else: tk.messagebox.showinfo(title = ’snake’, message = ’game over!!!’) self.overflag = 1 elif self.direction == down:if x0+1 == self.food_x and y0 == self.food_y: Labellist[x0+1][y0].config(bg = ’green’, relief = tk.RAISED) Labellist[x0][y0].config(bg = ’white’, relief = tk.RAISED) self.food_x = random.randint(0,14) self.food_y = random.randint(0,19) while Blocklist[self.food_x][self.food_y] == 1:self.food_x = random.randint(0,14)self.food_y = random.randint(0,19) Blocklist[self.food_x][self.food_y] = 1 Labellist[self.food_x][self.food_y].config(bg = ’red’, relief = tk.RIDGE) self.snakelen += 1 Snakelist.insert(0,(x0+1,y0)) self.x = x0 + 1 self.y = y0 elif (x0+1 >=0 and x0+1 <height and y0>=0 and y0<width and Blocklist[x0+1][y0] == 0) or (self.x_tail == x0+1 and self.y_tail == y0):Blocklist[self.x_tail][self.y_tail] = 0 Labellist[self.x_tail][self.y_tail].config(bg = ’black’, relief = tk.FLAT) Blocklist[x0+1][y0] = 1 Labellist[x0+1][y0].config(bg = ’green’, relief = tk.RAISED) Labellist[x0][y0].config(bg = ’white’, relief = tk.RAISED) del Snakelist[self.snakelen - 1] Snakelist.insert(0,(x0 + 1,y0)) self.x = x0 + 1 self.y = y0 self.x_tail = Snakelist[self.snakelen - 1][0] self.y_tail = Snakelist[self.snakelen - 1][1]else: tk.messagebox.showinfo(title = ’snake’, message = ’game over!!!’) self.overflag = 1 elif self.direction == right:if x0 == self.food_x and y0+1 == self.food_y: Labellist[x0][y0+1].config(bg = ’green’, relief = tk.RAISED) Labellist[x0][y0].config(bg = ’white’, relief = tk.RAISED) self.food_x = random.randint(0,14) self.food_y = random.randint(0,19) while Blocklist[self.food_x][self.food_y] == 1:self.food_x = random.randint(0,14)self.food_y = random.randint(0,19) Blocklist[self.food_x][self.food_y] = 1 Labellist[self.food_x][self.food_y].config(bg = ’red’, relief = tk.RIDGE) self.snakelen += 1 Snakelist.insert(0,(x0,y0 + 1)) self.x = x0 self.y = y0 + 1 elif (x0>=0 and x0<height and y0+1>=0 and y0+1<width and Blocklist[x0][y0+1] == 0) or (self.x_tail == x0 and self.y_tail == y0+1): Blocklist[self.x_tail][self.y_tail] = 0 Labellist[self.x_tail][self.y_tail].config(bg = ’black’, relief = tk.FLAT) Blocklist[x0][y0+1] = 1 Labellist[x0][y0+1].config(bg = ’green’, relief = tk.RAISED) Labellist[x0][y0].config(bg = ’white’, relief = tk.RAISED) del Snakelist[self.snakelen - 1] Snakelist.insert(0,(x0,y0 + 1)) self.x = x0 self.y = y0 + 1 self.x_tail = Snakelist[self.snakelen - 1][0] self.y_tail = Snakelist[self.snakelen - 1][1]else: tk.messagebox.showinfo(title = ’snake’, message = ’game over!!!’) self.overflag = 1self.after(self.time,self.Onetime)def Start_Stop(): app.Istart = 1 - app.Istart def Restart(): app.Restart(0) #主菜單mainmenu = tk.Menu(window)window[’menu’] = mainmenu#二級菜單:gamegamemenu=tk.Menu(mainmenu)mainmenu.add_cascade(label=’游戲’,menu=gamemenu)gamemenu.add_command(label = ’開始/暫停’,command=Start_Stop)gamemenu.add_command(label = ’重置’,command=Restart)gamemenu.add_command(label = ’退出’,command=window.quit)app = App(window) window.mainloop()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品亚洲a∨一区二区三区18| 亚洲综合色婷婷在线观看| 亚洲深夜影院| 精品91久久久久| 伊人久久亚洲影院| 日韩成人一级| 国产自产自拍视频在线观看 | 国产精品免费不| 国产成人精品一区二区三区免费| 国产欧美日韩免费观看| 美女福利一区二区三区| av资源中文在线| 丝袜美腿亚洲色图| 国产成人免费精品| 亚洲精品影视| 久久久久久美女精品| 男人的天堂久久精品| 免费在线日韩av| 亚洲免费播放| 日韩av自拍| 中文一区一区三区免费在线观 | 亚洲成a人片| 今天的高清视频免费播放成人| 亚洲精品无播放器在线播放| 亚洲制服少妇| 久久国产中文字幕| 视频一区中文字幕| 在线视频观看日韩| 亚洲精品美女91| 久久久影院免费| 成人在线视频区| zzzwww在线看片免费| 国产精品欧美在线观看| 日韩欧乱色一区二区三区在线| 国产一区观看| 久久夜夜操妹子| 欧美a级一区二区| 日韩精品一级| 91成人精品视频| 久久久久99| 神马久久午夜| 老司机免费视频一区二区三区| 尹人成人综合网| 成人黄色av| 国产精品对白| 国产精品网址| 日韩av影院| 国产精品午夜av| 美腿丝袜亚洲一区| 久久av资源| 国产精品最新自拍| 日韩国产一区二区三区| 亚洲精品福利电影| 亚洲黄色中文字幕| 欧美中文一区二区| 99国产精品久久久久久久成人热| 五月婷婷亚洲| 日韩一区二区三免费高清在线观看 | 日韩一区二区三区精品 | 麻豆视频在线观看免费网站黄 | 亚洲激情社区| 日韩精品五月天| 在线免费观看亚洲| 日韩在线电影| 精品入口麻豆88视频| 久久精品不卡| 欧美一级全黄| 欧美三级精品| 亚洲精品综合| 91亚洲人成网污www| 蜜桃成人av| 久久久777| 日韩国产一二三区| 麻豆国产欧美一区二区三区| 欧美一级精品| 国产亚洲人成a在线v网站| 综合欧美亚洲| 国产精品美女在线观看直播| 中国字幕a在线看韩国电影| 国产成人精选| 亚洲精品影视| 亚洲天堂资源| 免费日韩一区二区| 精品三级av在线导航| 色综合www| 日韩av一区二| 亚洲少妇在线| 国产不卡精品在线| 丝袜脚交一区二区| 99久久亚洲精品| 精品国产亚洲一区二区三区在线| 亚洲欧美日本日韩| **爰片久久毛片| 欧美日韩网址| 伊人久久大香伊蕉在人线观看热v| 国产精品蜜芽在线观看| 欧美精品中文| 成人看片网站| 日本免费一区二区三区四区| 国产精品欧美大片| 综合视频一区| 婷婷五月色综合香五月| 国产亚洲一区在线| 欧美/亚洲一区| 精品一区亚洲| 国产精品中文| 欧美高清不卡| 国产精品一页| 综合欧美精品| 亚洲综合二区| 国产精品日韩| 蜜桃视频欧美| 一区二区三区视频免费观看| 国产成人精品福利| 精品一区91| 国产欧美日韩精品一区二区免费 | 欧美性www| 91大神在线观看线路一区| 蜜桃一区二区三区在线| 99xxxx成人网| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日韩精品高清不卡| 精品国产成人| 国产美女撒尿一区二区| 日韩一区二区三区四区五区| 黑丝一区二区三区| 国产精品毛片| 欧美日韩尤物久久| av在线资源| 国产一区二区三区四区五区| 国产精品va| 牛牛精品成人免费视频| 国产福利一区二区精品秒拍 | 首页欧美精品中文字幕| 日韩影院在线观看| 免费观看在线综合| 免费在线小视频| 激情综合网站| 日本欧美国产| 欧美一区二区三区久久精品| 99综合视频| 91成人精品| 精品一区三区| 精品中文一区| 香蕉久久夜色精品国产| 国产美女一区| 亚洲资源av| 国产日韩精品视频一区二区三区| 亚洲3区在线| 国产成人精品三级高清久久91| 欧美男人天堂| 99久久九九| 久久精品凹凸全集| 久久精品国产99国产| 91精品精品| 日本a口亚洲| 另类中文字幕国产精品| 亚洲精品影院在线观看| 最近高清中文在线字幕在线观看1| 亚洲福利一区| 久久黄色影视| 亚洲激情中文| 日韩综合一区| 日韩激情视频网站| 欧美色图国产精品| 国产精品videossex久久发布| 国产精品毛片一区二区在线看| 另类激情亚洲| 91精品国产福利在线观看麻豆| 欧美日韩伊人| 久久亚洲国产精品一区二区| 美女性感视频久久| 蜜桃久久精品一区二区| 中文字幕人成乱码在线观看| 日韩1区2区3区| 国产精品毛片在线看| av综合电影网站| 国产精品久一| 久久亚洲影院| 亚洲一级黄色| 中文字幕在线免费观看视频| 婷婷综合在线| 人在线成免费视频| 老司机免费视频一区二区| 日韩精品91亚洲二区在线观看| 久久精品高清| 亚洲第一区色| 久久精品av| 日本а中文在线天堂| 精品国产一级| 韩国女主播一区二区三区| 国产欧美综合一区二区三区| 亚洲免费福利一区| 中文字幕视频精品一区二区三区| 最新日韩av| 蜜臀国产一区二区三区在线播放 | aa国产精品| 麻豆久久精品| 日本va欧美va瓶| 日韩国产欧美一区二区三区|