加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

五子棋

发布时间:2020-12-17 17:09:31 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 from graphics import *from math import *def gobangwin(): win=GraphWin("this is a gobang game",400,400) #??×÷21x21μ????ì win.setBackgroun

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

from graphics import *
from math import *
def gobangwin():
    win=GraphWin("this is a gobang game",400,400) #??×÷21x21μ????ì
    win.setBackground("yellow")
    i1=0
    
    while i1<401:
        l=Line(Point(i1,0),Point(i1,400))
        l.draw(win)
        i1=i1+20
    i2=0
    
    while i2<401:
        l=Line(Point(0,i2),Point(400,i2))
        l.draw(win)
        i2=i2+20
    return win
    

def main():
    win = gobangwin()

    
    list1 = []
    list2 = []
    list3 = []
    
    change = 0
    g = 0
    m=0
    n=0
    
    while g == 0:

       if change%2 == 1:
        p1 = win.getMouse()
        if not ((round((p1.getX()+10)/20),round((p1.getY()+10)/20)) in list3):
             
             a1 = round((p1.getX()+10)/20)
             b1 = round((p1.getY()+10)/20)
             list1.append((a1,b1))
             list3.append((a1,b1))

             piece = Circle(Point(20*a1,20*b1),8) #′′?¨??×ó
             piece.setFill('white')
             piece.draw(win)
             for m in range(21): #?D??ê?ó?
                 for n in range(21):
                     
                         if n<17 and (m,n) in list1 and (m,n+1) in list1 and (m,n+2) in list1 and (m,n+3) in list1 and (m,n+4) in list1 :
                             message = Text(Point(100,100),"white win.")
                             message.draw(win)
                             g = 1     #?D??°×??êúDD
                         elif m<17 and  (m,n) in list1 and (m+1,n) in list1 and (m+2,n) in list1 and (m+3,n) in list1 and (m+4,n) in list1 :
                             message = Text(Point(100,"white win.")
                             message.draw(win)
                             g = 1   #?D??°×??oáDD
                         elif m<17 and n<17 and (m,n+1) in list1 and (m+2,n+2) in list1 and (m+3,n+3) in list1 and (m+4,"white win.")
                             message.draw(win)
                             g = 1    #?D??°×??D±DD
                         elif m<17 and n>3 and (m,n-1) in list1 and (m+2,n-2) in list1 and (m+3,n-3) in list1 and (m+4,n-4) in list1 :
                             message = Text(Point(100,"white win.")
                             message.draw(win)
                             g = 1     #?D??°×??D±DD
                         else: change = change+1  #??oú??×?
            
       else:
        p2 = win.getMouse()
        if not ((round((p2.getX()+10)/20),round((p2.getY()+10)/20)) in list3):
              
               a2 = round((p2.getX()+10)/20)
               b2 = round((p2.getY()+10)/20)
               list2.append((a2,b2))
               list3.append((a2,b2))
               
               piece = Circle(Point(20*a2,20*b2),8)
               piece.setFill('black')
               piece.draw(win)
               for m in range(21):
                 for n in range(21):
                     
                         if n<17 and (m,n) in list2 and (m,n+1) in list2 and (m,n+2) in list2 and (m,n+3) in list2 and (m,n+4) in list2 :
                             message = Text(Point(100,"black win.")
                             message.draw(win)
                             g = 1    #?D??oú??êúDD
                         elif m<17 and  (m,n) in list2 and (m+1,n) in list2 and (m+2,n) in list2 and (m+3,n) in list2 and (m+4,n) in list2 :
                             message = Text(Point(100,"black win.")
                             message.draw(win)
                             g = 1  #?D??oú??oáDD
                         elif m<17 and n<17 and (m,n+1) in list2 and (m+2,n+2) in list2 and (m+3,n+3) in list2 and (m+4,"black win.")
                             message.draw(win)
                             g = 1   #?D??oú??D±DD
                         elif m<17 and n>3 and (m,n-1) in list2 and (m+2,n-2) in list2 and (m+3,n-3) in list2 and (m+4,n-4) in list2 :
                             message = Text(Point(100,"black win.")
                             message.draw(win)
                             g = 1   #?D??oú??D±DD
                         else: change = change+1  #??°×??×?
                     
    message = Text(Point(100,120),"Click anywhere to quit.")
    message.draw(win)
    win.getMouse()
    win.close()
    

    
main()

             

             
             

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读