落谷P1838三子棋--Python

落谷P1838三子棋--Python,第1张

P1838 三子棋I 题目描述

小a和uim喜欢互相切磋三子棋。三子棋大家都玩过是吗?就是在九宫格里面OOXX(别想歪了),谁连成3个就赢了。

由于小a比较愚蠢,uim总是让他先。

我们用9个数字表示棋盘位置:

123 456 789 所有的棋谱都是已经结束的棋局,要么一方获胜,要么平局。

今天,他们下了一下午的棋,小a为了提高技术,录下了很多棋谱。他想知道,一盘棋结束时,到底是谁赢。

输入格式

一行,一串数字,表示落子的地点。小a总是先下

输出格式

一行,如果小a赢,输出“xiaoa wins.”。如果uim赢,输出“uim wins.”。如果平局,输出“drew.”

 事实上这个题目的检测机制有BUG,然后就是上面的代码可能不算太简洁,下面源码带上:

n=input()
if len(n)<9:
    if len(n)%2==0:
        print("xiaoa wins.")
    else:
        print("uim wins.")
else:
    n=list(n)
    l1=[1]*9
    a=0
    for i in range(0,10,2):
        l1[int(n[i])-1]=0
    l2=[l1[:3],l1[3:6],l1[6:]]
    for i in range(0,3):
        if ((l2[i][0]==0)and(l2[i][1]==0)and(l2[i][2]==0)):#行
            if a<1:
                print("xiaoa wins.",end="\n\n")
                a+=1
                break
        elif ((l2[0][i]==0)and(l2[1][i]==0)and(l2[2][i]==0)):#列
            if a<1:
                print("xiaoa wins.",end="\n\n")
                a+=1
                break
    if ((l2[0][0]==0)and(l2[1][1]==0)and(l2[2][2]==0)):#对角线
        if a<1:
            print("xiaoa wins.",end="\n\n")
            a+=1
    elif ((l2[0][2]==0)and(l2[1][1]==0)and(l2[2][0]==0)):#对角线
        if a<1:
            print("xiaoa wins.",end="\n\n")
            a+=1
    elif a<1:
        print("drew.")

continuous learning...

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/793230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存