首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tictacto10*10游戏中的中心X和O问题

Tictacto10*10游戏中的中心X和O问题
EN

Stack Overflow用户
提问于 2022-06-13 20:14:03
回答 1查看 46关注 0票数 0

我试着做10*10的tictactoe游戏,但有一个问题。我不知道如何使X和O在每个盒子中居中。这是代码:

代码语言:javascript
复制
import tkinter
p = tkinter.Canvas(width=500,height=550)
p.pack()
a=0
b=50
c=1
p.create_text(100, 10, text='Na rade je kruh',tags="kriz")
for i in range(10):
    p.create_line(a,50,a,550)
    a+=50
for i in range(10):
    p.create_line(0,b,500,b)
    b+=50
def kriz(sur):
    global k,l
    k=sur.x
    l=sur.y
    p.create_line(k-10,l+10,k+10,l-10,width=5,tags="m")
    p.create_line(k-10,l-10,k+10,l+10,width=5,tags="m")
def kruh(sur):
    global s,d
    s=sur.x
    d=sur.y
    p.create_oval(s-10,d-10,s+10,d+10,width=5,tags="l")
def tictactoe(sur):
    global c
    if c%2== 0:
       kriz(sur)
       p.create_text(100, 10, text='Na rade je kruh',tags="kriz")
       p.delete("kruh")
    else:
       kruh(sur)
       p.create_text(100, 10, text='Na rade je krížik',tags="kruh")
       p.delete("kriz")
    c+=1
def zmaz():
    p.delete("m")
    p.delete("l")
p.bind("<Button-1>", tictactoe)
button1 = tkinter.Button(text="reset", command=zmaz)
button1.pack()
root = tkinter.Tk()
tkinter.mainloop()
EN

回答 1

Stack Overflow用户

发布于 2022-06-14 03:05:29

要使X和O在它们的框中居中,可以使用int(sur.x/50)*50+25int(sur.y/50)*50+25。下面是完整的工作代码,包括代码中缺少的底线:

代码语言:javascript
复制
import tkinter
p = tkinter.Canvas(width=500,height=550)
p.pack()
a=0
b=50
c=1
p.create_text(100, 10, text='Na rade je kruh',tags="kriz")
for i in range(10):
    p.create_line(a,50,a,550)
    a+=50
for i in range(11):
    p.create_line(0,b,500,b)
    b+=50
def kriz(sur):
    global k,l
    k=int(sur.x/50)*50+25
    l=int(sur.y/50)*50+25
    p.create_line(k-10,l+10,k+10,l-10,width=5,tags="m")
    p.create_line(k-10,l-10,k+10,l+10,width=5,tags="m")
def kruh(sur):
    global s,d
    s=int(sur.x/50)*50+25
    d=int(sur.y/50)*50+25
    p.create_oval(s-10,d-10,s+10,d+10,width=5,tags="l")
def tictactoe(sur):
    global c
    if c%2== 0:
       kriz(sur)
       p.create_text(100, 10, text='Na rade je kruh',tags="kriz")
       p.delete("kruh")
    else:
       kruh(sur)
       p.create_text(100, 10, text='Na rade je krížik',tags="kruh")
       p.delete("kriz")
    c+=1
def zmaz():
    p.delete("m")
    p.delete("l")
p.bind("<Button-1>", tictactoe)
button1 = tkinter.Button(text="reset", command=zmaz) 
button1.pack()

root = tkinter.Tk()
tkinter.mainloop()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72608532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档