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

python井字游戏

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

python井字游戏

题目描述

给定一个已完成的井字游戏的 3x3 矩阵,创建一个函数,该函数返回游戏是 “X”,“O” 还是 “Draw”,其中 "X" 和 "O" 表示它们在矩形中,"E" 表示一个空白点。如果返回 "X" 或 "O" ,则表示 "X"胜利 或 "O" 胜利。
输入格式
输入一个数组,表示一个已完成的井字游戏的 3x3 矩阵;
输出格式
输出一个字符串,表示 O 获胜, X 胜利 ,或者平局。

输入输出样例1

输入

 
  1. [
  2. ["X", "O", "X"],
  3. ["O", "X", "O"],
  4. ["O", "X", "X"]
  5. ]

输出
X

输入输出样例2

输入

 
  1. [
  2. ["X", "X", "O"],
  3. ["O", "O", "X"],
  4. ["X", "X", "O"]
  5. ]

输出
Draw

说明提示

确保如果 O 获胜,则返回字母 "O" 而不是整数 0(零),如果是平局,请确保返回大写的单词 "Draw"。如果您返回 "X" or "O",请确保它们也大写。

思路:
判断井字棋的胜利,我们只需判断八条线上的元素是否一致即可:三行,三列和两个对角线。  

board = input()  
board = eval(board)
def tic_tac_toe(b):  
    #********** Begin **************   
    # 先将八条线上的元素归纳到一个列表中。  
    lists = [b[0], b[1], b[2],  
             [b[0][0], b[1][0], b[2][0]],  
             [b[0][1], b[1][1], b[2][1]],  
             [b[0][2], b[1][2], b[2][2]],  
             [b[0][0], b[1][1], b[2][2]],  
             [b[0][2], b[1][1], b[2][0]]]  
    for i in lists:  # 循环列表中的元素  
        if len(set(i)) == 1:  # 判断八条线上的元素是否一致。如果有一致的,则返回该条线上的第一个元素。  
            return i[0]  
    # 否则返回 Draw 。  
    return "Draw"
    #********** End ************  
print(tic_tac_toe(board))  

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

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

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