设计一个算法,判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘,由字符" ","X"和"O"组成,其中字符" "代表一个空位。以下是井字游戏的规则:玩家轮流将字符放入空位(" ")中。
第一个玩家总是放字符"O",且第二个玩家总是放字符"X"。
"X"和"O"只允许放置在空位中,不允许对已放有字符的位置进行填充。
当有N个相同(且非空)的字符填充任何行、列或对角线时,游戏结束,对应该字符的玩家获胜。
当所有位置非空时,也算为游戏结束。
如果游戏结束,玩家不允许再放置字符。
如果游戏存在获胜者,就返回该游戏的获胜者使用的字符("X"或"O");如果游戏以平局结束,则返回 "Draw";如果仍会有行动(游戏未结束),则返回 "Pending"。示例 1:输入: board = ["O X"," XO","X O"]
输出: "X"
示例 2:输入: board = ["OOX","XXO","OXO"]
输出: "Draw"
解释: 没有玩家获胜且不存在空位
示例 3:输入: board = ["OOX","XXO","OX "]
输出: "Pending"
解释: 没有玩家获胜且仍存在空位
class Solution:"""def check(ch):s = ch * lengthany(row == s for row in board)  # 行any(col == s for col in map(''.join, zip(*board)))  # 列all(board[i][i] for i in range(length))  # -45度对角线all(board[i][length-i-1] for i in range(length))  # 45度对角线"""def tictactoe(self, board: List[str]) -> str:n = len(board)def check(ch):s = ch * nreturn any((any(row == s for row in board),any(col == s for col in map(''.join, zip(*board))),all(board[i][i] == ch for i in range(n)),all(board[i][n - i - 1] == ch for i in range(n)),))if check('X'): return 'X'if check('O'): return 'O'if ' ' in ''.join(board):return 'Pending'return 'Draw'

python 井字游戏相关推荐

  1. python井字游戏

    题目描述 给定一个已完成的井字游戏的 3x3 矩阵,创建一个函数,该函数返回游戏是 "X","O" 还是 "Draw",其中 "X ...

  2. 用 Python 开发游戏——Python井字游戏

  3. Kafka Streams开发者指南

    Kafka Streams 1.1 概述 Kafka Streams是一个客户端程序库,用于处理和分析存储在Kafka中的数据,并将得到的数据写回Kafka或发送到外部系统.Kafka Stream基 ...

  4. python人机对战_【人机对战】用python打造经典井字游戏

    井字游戏是一个经典的棋盘游戏, 在一个3x3的棋盘上面玩, 谁的棋子先连成一条线就赢了, 我直接拿上次在[人机对战]用python打造经典黑白棋游戏写的程式来改很快就改出来了. 我的版本将程式逻辑拆成 ...

  5. 用 Python 做个简单的井字游戏

    在这个教程中,我将展示如何利用Python来做一个井字游戏.这将包括函数.列表.if语句.while循环.for循环以及错误处理等等. 首先,我们将创建两个函数,第一个函数将会打印出井字游戏的背景模板 ...

  6. 十个步骤简单带你用Python实现一个井字游戏

    前言 最近正在学习Python,所以我会出一个关于Python实例的系列文章. 文章里面有什么不对的地方还请大家多多指教 井字游戏总共分为一下十个步骤 第一步 编写一个可以打印出地图的函数.将棋盘设置 ...

  7. python编写井字棋_编写井字游戏

    python编写井字棋 Programming computer games may be the most technically challenging (and possibly the bes ...

  8. 用python制作的游戏有哪些_用 Python 做个简单的井字游戏

    在这个教程中,我将展示如何利用Python来做一个井字游戏.这将包括函数.列表.if语句.while循环.for循环以及错误处理等等. 首先,我们将创建两个函数,第一个函数将会打印出井字游戏的背景模板 ...

  9. python如何打印井号_井字游戏(python)

    问题描述 设计一个算法,判断玩家是否赢了井字游戏.输入是一个 N x N 的数组棋盘,由字符" ","X"和"O"组成,其中字符" ...

最新文章

  1. UVA 11752 超级幂
  2. python调用spark和调用hive_Spark(Hive) SQL数据类型使用详解(Python)
  3. pugixml读取unicode编码的xml文件的做法
  4. Linux-Ubuntu Server 16.04安装JDK以及配置JDK环境变量
  5. Let’s Build the Tiniest Blockchain In Less Than 50 Lines of Python (Part I)
  6. Mysql数据库下的增删改查
  7. :传递给 left 或 substring 函数的长度参数无效。_Java函数式编码结构-好程序员
  8. Aspnetpage ie10下 __dopost方法未找到 不能翻页的问题
  9. 用c++写成的最小二乘法的源代码
  10. mysql内存态_MySQL · 社区动态 · MySQL内存分配支持NUMA
  11. python中的random模块_Python中的random模块
  12. 以太坊2.0怎么挖矿_以太坊2.0即将上线 现在正是挖矿红利期 普通人如何参与挖矿?...
  13. idea中 Application Server not specified
  14. python自动排版公众号_GitHub - sunshine2337/maxpress: MaxPress:MarkDown+Python实现微信公众号一键排版...
  15. 5.23低版本到高版本问题
  16. Go:实现Abs绝对值函数 (附完整源码)
  17. 服务器中勒索病毒解密恢复 SQL数据库中勒索病毒解密恢复 SQL数据库被加密恢复...
  18. 光学成像基础-荧光滤色片
  19. android 仿微信语音聊天
  20. 蓝光发展两度出售优质资产,加速资金回笼背后,只剩“无奈”二字

热门文章

  1. 135. Leetcode 46. 全排列 (回溯算法-排列问题)
  2. Leetcode 876. 链表的中间结点 (每日一题 20210918)
  3. Leetcode 130. 被围绕的区域 (每日一题 20210720 同类型题)
  4. Hadoop学习之以伪分布模式部署Hadoop及常见问题
  5. 大学生能从计算机游戏中受益,2017年6月英语四级作文练习:大学生玩游戏
  6. cinder与ceph的区别_分布式存储基础、Ceph、cinder及华为软件定义的存储方案 -
  7. Python入门100题 | 第004题
  8. 深度学习100例-卷积神经网络(AlexNet)手把手教学 | 第11天
  9. Vue学习(一)-邂逅Vuejs
  10. 凸优化中如何改进GD方法以防止陷入局部最优解