• 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()
  • 相关阅读:
    [转]VSTO Office二次开发RibbonX代码结构
    [转]VSTO+WinForm+WebService+WCF+WPF示例
    Ext Js简单Data Store创建及使用
    Web页面常用文件格式文件流的输出
    VSTO Office二次开发PPTRibbonX命令操作及对象添加
    VSTO Office二次开发键盘鼠标钩子使用整理
    VSTO Office二次开发对PPT自定义任务窗格测试
    VSTO Office二次开发对PowerPoint功能简单测试
    Ext Js简单Tree创建及其异步加载
    VB获取和更改文件属性
  • 原文地址:https://www.cnblogs.com/qiaozhoulin/p/4546884.html
Copyright © 2020-2023  润新知