資源簡介
喪心病狂:用300行的python寫個小游戲,思路簡潔,代碼明了,練手優(yōu)選。

代碼片段和文件信息
import?random?sys
import?tkinter?as?tk
import?tkinter.messagebox
from?tkinter.messagebox?import?askyesno
from?PIL?import?Image?ImageTk
class?MainWindow():
????def?__init__(self):
????????self.title?=?“連連看游戲“
????????self.windowWidth?=?700
????????self.windowWidth?=?700
????????self.windowHeigth?=?500
????????self.root?=?tk.Tk()
????????self.root.title(self.title)
????????self.CWindow(self.windowWidth?self.windowHeigth)
????????self.root.minsize(460?460)
????????self.pics?=?[]
????????self.primary?=?askyesno(title=‘選擇第一關(guān)‘?message=‘第一關(guān)(yes)?第二關(guān)(no)‘)
????????self.Interface()
????????if?self.primary?==?False:
????????????self.picsize?=?10???#?每行每列的圖片數(shù)量
????????????self.num?=?4
????????????self.picWidth?=?40??#?小圖片的寬
????????????self.picHeight?=?40??#?小圖片的寬
????????else:
????????????self.picsize?=?8??#?每行每列的圖片數(shù)量
????????????self.num?=?4
????????????self.picWidth?=?50??#?小圖片的寬
????????????self.picHeight?=?50??#?小圖片的寬
????????self.picsKind?=?self.picsize?*?self.picsize?/?self.num??#?小圖片種類數(shù)量
????????self.picsmap?=?[]??#?游戲地圖
????????self.margin?=?25
????????self.firstClick?=?True
????????self.start?=?False
????????self.lastPoint?=?None
????????self.none?=?-1
????????self.nolink?=?0
????????self.linelink?=?1
????????self.L_link?=?2
????????self.U_link?=?3
????????self.put_pic_in_pics()
????????self.root.mainloop()
????def?Interface(self):
????????self.menu?=?tk.Menu(self.root?bg=“l(fā)ightgrey“?fg=“black“)
????????self.list_menu?=?tk.Menu(self.menu?tearoff=0?bg=“l(fā)ightgrey“?fg=“black“)
????????self.list_menu.add_command(label=“開始游戲“?command=self.game_start?accelerator=“Ctrl+N“)
????????self.list_menu.add_command(label=“退出“?command=self.game_stop?accelerator=“Ctrl+M“)
????????self.menu.add_cascade(label=“游戲“?menu=self.list_menu)
????????self.root.configure(menu=self.menu)
????????self.canvas?=?tk.Canvas(self.root?bg=‘white‘?width=450?height=450)
????????self.canvas.pack(side=tk.TOP?pady=5)
????????self.canvas.bind(‘‘?self.clickCanvas)
????def?CWindow(self?w?h):??#?設(shè)置屏幕的位置
????????swidth?=?self.root.winfo_screenwidth()
????????sheight?=?self.root.winfo_screenheight()
????????size?=?‘%dx%d+%d+%d‘?%?(w?h?(swidth?-?w)?/?2?(sheight?-?h)?/?2)
????????self.root.geometry(size)
????def?game_start(self):
????????self.ini_game()
????????self.put_pics_on_canvas()
????????self.start?=?True
????def?game_stop(self):
????????sys.exit()
????def?clickCanvas(self?event):
????????if?self.start:
????????????point?=?self.get_index_coord(Point(event.x?event.y))??#?返回鼠標點擊的位置到底是哪一幅圖片。例如[00]代表左上角第一幅
????????????#?有效點擊坐標
????????????if?point.isUserful()?and?not?self.check_none(point):
????????????????if?self.firstClick:??#?如果是第一次點擊圖片,那么就畫一個紅框
????????????????????self.draw_red_rectangle(point)
????????????????????self.firstClick?=?False
????????????????????self.lastPoint?=?point
????????????????else:
????????????????????if?self.lastPoint.isEqual(point):??#?如果連續(xù)點擊同一小圖片兩次的話,就將話得紅框去掉
????????????????????????self.firstClick?=?True
???????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-08-26?16:24??連連看\
?????文件???????82995??2019-08-26?16:24??連連看\img.png
?????文件???????12749??2019-08-26?13:34??連連看\main.py
- 上一篇:python gui界面
- 下一篇:Python各種濾波器代碼
評論
共有 條評論