2 条题解

  • 0
    @ 2024-9-14 15:28:15
    a=[[0 for i in range(19)] for j in range(19)]
    flag=0
    x=0
    y=0
    def out() :
        for i in range(19) :
            print(a[i])
    def check() :
        for i in range(0,15) :
            for j in range(0,15) :
                num=a[i][j]+a[i][j+1]+a[i][j+2]+a[i][j+3]+a[i][j+4]
                sun=a[i][j]+a[i+1][j]+a[i+2][j]+a[i+3][j]+a[i+4][j]
                if num==5 or sun==5 : return 1
                if num==-5 or sun==-5 : return -1
        for i in range(4,19) :
            for j in range(0,15) :
                num=a[i][j]+a[i-1][j+1]+a[i-2][j+2]+a[i-3][j+3]+a[i-4][j+4]
                if num==5 : return 1
                if num==-5 : return -1
        for i in range(0,15) :
            for j in range(0,15) :
                num=a[i][j]+a[i+1][j+1]+a[i+2][j+2]+a[i+3][j+3]+a[i+4][j+4]
                if num==5 : return 1
                if num==-5 : return -1
    while(1) :
        if(flag==0) : print("请黑方落子",end="")
        else : print("请白方落子",end="")
        x,y=map(int,input().split())
        if(a[x][y]!=0) : continue
        if(flag==0) : a[x][y]=1
        else : a[x][y]=-1
        out()
        ans=check()
        if ans==1  :
            print("黑赢",end="")
            break
        elif ans==-1 :
            print("白赢",end="")
            break
        flag=(flag+1)%2
        
    

    信息

    ID
    339
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    110
    已通过
    39
    上传者