栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

落谷P1838三子棋--Python

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

落谷P1838三子棋--Python

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="nn")
                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="nn")
                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="nn")
            a+=1
    elif ((l2[0][2]==0)and(l2[1][1]==0)and(l2[2][0]==0)):#对角线
        if a<1:
            print("xiaoa wins.",end="nn")
            a+=1
    elif a<1:
        print("drew.")

continuous learning...

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/856180.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号