資源簡介
井字棋
代碼片段和文件信息
from?tkinter?import?*
import?time
import?tkinter.messagebox
tk?=?Tk()
tk.title(“井字棋“)
tk.resizable(0?0)??#?不能隨意改變棋盤大小
tk.wm_attributes(“-topmost“?1)??#?畫布窗口始終放在最上面
canvas?=?Canvas(tk?width=800?height=800?bd=0?highlightthickness=0)??#?畫布的寬是800高是800確保畫布沒有邊框
canvas.pack()??#?讓畫布按前面的調整大小
tk.update()
redorgreen?=?0
colorx?=?“green“
position?=?[[0?0?0]?[0?0?0]?[0?0?0]]
overornot?=?0
#?畫棋盤
lines?=?[100?300?500?700]
for?i?in?lines:
????canvas.create_line(100?i?700?i)
????canvas.create_line(i?100?i?700)
#?canvas.bind(‘‘?baction)??#?落子
#?print(k)
def?action(event):
????global?redorgreen?colorx
????global?overornot
????if?overornot?==?1:??#?判斷勝負是否已分
????????tkinter.messagebox.showinfo(“提示“?“游戲已結束“)
????????return
????if?(event.x?<=?100?or?event.x?>=?700?or?event.y?<=?100?or?event.y?>=?700):??#?判斷是否在棋盤內部落子
????????tkinter.messagebox.showinfo(“提示“?“請下在棋盤內“)
????????return
????if?redorgreen?==?0:
????????redorgreen?=?1
????????colorx?=?“red“
????else:
????????redorgreen?=?0
????????colorx?=?“green“
????a?=?100
????for?i?in?range(0?3):
????????for?j?in?range(0?3):
????????????if?event.x?>?100?+?i?*?200?and?event.x?100?+?(i?+?1)?*?200?and?event.y?100?+?(
????????????????????j?+?1)?*?200?and?event.y?>?100?+?j?*?200:
????????????????if?position[i][j]?==?0:
????????????????????canvas.create_oval(100?+?i?*?200?100?+?j?*?200?100?+?(i?+?1)?*?200?100?+?(j?+?1)?*?200
???????????????????????????????????????fill=colorx)
????????????????????if?colorx?==?“red“:
????????????????????????position[i][j]?=?1
????????????????????else:
????????????????????????position[i][j]?=?2
????????????????else:
????????????????????tkinter.messagebox.showinfo(“提示“?“請勿重復下子“)
???
- 上一篇:xpath爬取豆瓣電影top250
- 下一篇:畫一朵可自定義的花.py
評論
共有 條評論