python 井字游戏
设计一个算法,判断玩家是否赢了井字游戏。输入是一个 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 井字游戏相关推荐
- python井字游戏
题目描述 给定一个已完成的井字游戏的 3x3 矩阵,创建一个函数,该函数返回游戏是 "X","O" 还是 "Draw",其中 "X ...
- 用 Python 开发游戏——Python井字游戏
- Kafka Streams开发者指南
Kafka Streams 1.1 概述 Kafka Streams是一个客户端程序库,用于处理和分析存储在Kafka中的数据,并将得到的数据写回Kafka或发送到外部系统.Kafka Stream基 ...
- python人机对战_【人机对战】用python打造经典井字游戏
井字游戏是一个经典的棋盘游戏, 在一个3x3的棋盘上面玩, 谁的棋子先连成一条线就赢了, 我直接拿上次在[人机对战]用python打造经典黑白棋游戏写的程式来改很快就改出来了. 我的版本将程式逻辑拆成 ...
- 用 Python 做个简单的井字游戏
在这个教程中,我将展示如何利用Python来做一个井字游戏.这将包括函数.列表.if语句.while循环.for循环以及错误处理等等. 首先,我们将创建两个函数,第一个函数将会打印出井字游戏的背景模板 ...
- 十个步骤简单带你用Python实现一个井字游戏
前言 最近正在学习Python,所以我会出一个关于Python实例的系列文章. 文章里面有什么不对的地方还请大家多多指教 井字游戏总共分为一下十个步骤 第一步 编写一个可以打印出地图的函数.将棋盘设置 ...
- python编写井字棋_编写井字游戏
python编写井字棋 Programming computer games may be the most technically challenging (and possibly the bes ...
- 用python制作的游戏有哪些_用 Python 做个简单的井字游戏
在这个教程中,我将展示如何利用Python来做一个井字游戏.这将包括函数.列表.if语句.while循环.for循环以及错误处理等等. 首先,我们将创建两个函数,第一个函数将会打印出井字游戏的背景模板 ...
- python如何打印井号_井字游戏(python)
问题描述 设计一个算法,判断玩家是否赢了井字游戏.输入是一个 N x N 的数组棋盘,由字符" ","X"和"O"组成,其中字符" ...
最新文章
- UVA 11752 超级幂
- python调用spark和调用hive_Spark(Hive) SQL数据类型使用详解(Python)
- pugixml读取unicode编码的xml文件的做法
- Linux-Ubuntu Server 16.04安装JDK以及配置JDK环境变量
- Let’s Build the Tiniest Blockchain In Less Than 50 Lines of Python (Part I)
- Mysql数据库下的增删改查
- :传递给 left 或 substring 函数的长度参数无效。_Java函数式编码结构-好程序员
- Aspnetpage ie10下 __dopost方法未找到 不能翻页的问题
- 用c++写成的最小二乘法的源代码
- mysql内存态_MySQL · 社区动态 · MySQL内存分配支持NUMA
- python中的random模块_Python中的random模块
- 以太坊2.0怎么挖矿_以太坊2.0即将上线 现在正是挖矿红利期 普通人如何参与挖矿?...
- idea中 Application Server not specified
- python自动排版公众号_GitHub - sunshine2337/maxpress: MaxPress:MarkDown+Python实现微信公众号一键排版...
- 5.23低版本到高版本问题
- Go:实现Abs绝对值函数 (附完整源码)
- 服务器中勒索病毒解密恢复 SQL数据库中勒索病毒解密恢复 SQL数据库被加密恢复...
- 光学成像基础-荧光滤色片
- android 仿微信语音聊天
- 蓝光发展两度出售优质资产,加速资金回笼背后,只剩“无奈”二字
热门文章
- 135. Leetcode 46. 全排列 (回溯算法-排列问题)
- Leetcode 876. 链表的中间结点 (每日一题 20210918)
- Leetcode 130. 被围绕的区域 (每日一题 20210720 同类型题)
- Hadoop学习之以伪分布模式部署Hadoop及常见问题
- 大学生能从计算机游戏中受益,2017年6月英语四级作文练习:大学生玩游戏
- cinder与ceph的区别_分布式存储基础、Ceph、cinder及华为软件定义的存储方案 -
- Python入门100题 | 第004题
- 深度学习100例-卷积神经网络(AlexNet)手把手教学 | 第11天
- Vue学习(一)-邂逅Vuejs
- 凸优化中如何改进GD方法以防止陷入局部最优解