python 画棋盘

最近 python 上毒, 今天尝试了一下 python , 画一个五子棋的棋盘

棋盘点击效果

直接上代码 , 代码里面有注释

from tkinter import *

# 创建并添加 canvas
# 创建窗口
root = Tk()
root.title("五子棋")
gaird_width = 30
gaird_count = 17

widths = gaird_width*gaird_count + 20

root.maxsize(widths, widths)
root.minsize(widths, widths)
# 创建并添加Canvas
cv = Canvas(root, background='white')
cv.pack(fill=BOTH, expand=YES)


# 画一个外边框为白的 , 填充棋盘颜色
cv.create_rectangle(10,10,gaird_width*gaird_count + 10,gaird_width*gaird_count + 10,outline="white", fill="#CD8500")

# 在棋盘里面画 画格子
for num in range(1,gaird_count):
    cv.create_line(num*gaird_width + 10 ,
                   gaird_width + 10,
                   num*gaird_width + 10,
                   gaird_width*(gaird_count-1) + 10,
                   width=2,
                   fill="#595959")
for num in range(1,gaird_count):
    cv.create_line(gaird_width + 10 ,
                   num*gaird_width + 10,
                   (gaird_count-1)*gaird_width + 10,
                   num*gaird_width + 10,
                   width=2,
                   fill="#595959"
                   )

def paint(event):
    python_green = "black"
    x: int = int((event.x + 0.5 * gaird_width - 10)/gaird_width);
    y: int = int((event.y + 0.5 * gaird_width - 10)/gaird_width);

    print(x,y)

    x1, y1 = (x*gaird_width ), (y*gaird_width)
    x2, y2 = (x*gaird_width + 20), (y*gaird_width + 20)
    cv.create_oval(x1,y1,x2,y2, fill = python_green)

cv.bind("", paint)
# :鼠标左击事件
# :鼠标中击事件
# :鼠标右击事件
# :双击事件
# :三击事件

message = Label(root, text = "press and drag the mouse to tap")
message.pack(side = BOTTOM)

root.mainloop()

未完待续

你可能感兴趣的:(python 画棋盘)