• Python五子棋的小程序


    代码是在开源中国上看到的,源代码网址:http://www.oschina.net/code/snippet_2365439_48010

    需要安装graphics模块,下载地址:http://mcsp.wartburg.edu/zelle/python/graphics.py 保存到C:Python27Libsite-packages 路径中的版本号改成你用的
    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): #ÅжÏÊäÓ®
                     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     #Åжϰ×ÆåÊúÐÐ
                             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,100),"white win.")
                                 message.draw(win)
                                 g = 1   #Åжϰ×ÆåºáÐÐ
                             elif m<17 and n<17 and (m,n) in list1 and (m+1,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,100),"white win.")
                                 message.draw(win)
                                 g = 1    #Åжϰ×ÆåбÐÐ
                             elif m<17 and n>3 and (m,n) in list1 and (m+1,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,100),"white win.")
                                 message.draw(win)
                                 g = 1     #Åжϰ×ÆåбÐÐ
                             else: change = change+1  #»»ºÚÆå×ß
                 
           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,100),"black win.")
                                 message.draw(win)
                                 g = 1    #ÅжϺÚÆåÊúÐÐ
                             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,100),"black win.")
                                 message.draw(win)
                                 g = 1  #ÅжϺÚÆåºáÐÐ
                             elif m<17 and n<17 and (m,n) in list2 and (m+1,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,100),"black win.")
                                 message.draw(win)
                                 g = 1   #ÅжϺÚÆåбÐÐ
                             elif m<17 and n>3 and (m,n) in list2 and (m+1,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,100),"black win.")
                                 message.draw(win)
                                 g = 1   #ÅжϺÚÆåбÐÐ
                             else: change = change+1  #»»°×Æå×ß
                          
        message = Text(Point(100,120),"Click anywhere to quit.")
        message.draw(win)
        win.getMouse()
        win.close()
         
     
         
    main()
  • 相关阅读:
    读书笔记_Effective_C++_条款十:令operator=返回一个reference to *this
    读书笔记_Effective_C++_条款九:绝不在构造和析构函数中调用virtual函数
    读书笔记_Effective_C++_条款七:为多态基类声明virtual析构函数
    读书笔记_Effective_C++_条款十二:复制对象时勿忘其每一个成分
    读书笔记_Effective_C++_条款八:别让异常逃离析构函数
    创建django project及app中的若干问题
    python一些小知识
    python小专题——JSON
    python小专题——optparse模块
    初窥JQuery(一)选择符 【转】
  • 原文地址:https://www.cnblogs.com/qiaozhoulin/p/4546884.html
Copyright © 2020-2023  润新知