python如何打印井号_井字游戏(python)
问题描述
设计一个算法,判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘,由字符" ","X"和"O"组成,其中字符" "代表一个空位。
以下是井字游戏的规则:
玩家轮流将字符放入空位(" ")中。
第一个玩家总是放字符"O",且第二个玩家总是放字符"X"。
"X"和"O"只允许放置在空位中,不允许对已放有字符的位置进行填充。
当有N个相同(且非空)的字符填充任何行、列或对角线时,游戏结束,对应该字符的玩家获胜。
当所有位置非空时,也算为游戏结束。
如果游戏结束,玩家不允许再放置字符。
如果游戏存在获胜者,就返回该游戏的获胜者使用的字符("X"或"O");如果游戏以平局结束,则返回 "Draw";如果仍会有行动(游戏未结束),则返回 "Pending"。
例子
image.png
思路:
这个井字游戏相信大家都玩过,那如何去判别某个状态的输赢呢,其实很简单,就是将所有的行、列、对角线的字母组成字符串,然后与“O”x n 和“X” x n进行对比。
class Solution:
def tictactoe(self, board: List[str]) -> str:
re=[] #存储所有情况的列表
n=len(board)
t='' #对角
u=''
for i in range(n):
re.append(board[i]) #所有的行
t+=board[i][i]
u+=board[n-i-1][i]
re.append(t)
re.append(u)
for j in range(n):
g=''
for i in range(len(board)):
g=g+board[i][j]
re.append(g) #所有的列
if 'X'*n in re:
return "X"
if 'O'*n in re:
return "O"
if ' ' in ''.join(board):
return "Pending"
else:
return "Draw"
python如何打印井号_井字游戏(python)相关推荐
- python 批量打印文档_使用python将Excel数据填充Word模板并生成Word
[项目需求] Excel中有一万多条学生学平险数据,需要给每位学生打印购买回执单,回执单包括学生姓名,身份证号,学校等信息,目前只能从Excel拷贝数据到Word模板中,然后打印,效率及其低下,寻求帮 ...
- python怎么打印列表长度_关于python:生成器输出的长度
本问题已经有最佳答案,请猛点这里访问. Python提供了一种很好的方法来获取渴望的可迭代len(x)的长度. 但是对于以生成器理解和函数表示的惰性可迭代对象,我找不到类似的东西. 当然,写这样的东西 ...
- python爬取公众号_基于Python采集爬取微信公众号历史数据
鲲之鹏的技术人员将在本文介绍一种通过模拟操作微信App的方式采集指定公众号的所有历史数据的方法. 通过我们抓包分析发现,微信公众号的历史数据是通过HTTP协议加载的,对应的API接口如下图所示,其中有 ...
- python 怎么输入单引号_在python中如何输入单引号
在Python中'...'和"..."是完全一样的,但不能出现'..."和"...'这种情况. 而将其混合使用会有很多意想不到的效果: 具体规则如下: 若字符串 ...
- python自动发送微信公众号_使用python一步一步搭建微信公众平台(四)----将小黄鸡引入微信自动回复...
通过前三篇的教程,相信大家基本上了解了微信开发的基本流程,先判断用户传入数据的类型MsgType,然后再获取用户输入的内容content,再对content进行处理,再返回给用户 现在我们来加点料,在 ...
- python返回文件行号_用python比较两个文件中内容的不同之处, 并输出行号和内容....
'''cmpfile.py - 比对两个文件, 如果有不同之处, 打印内容和行号''' import os class cmpFile: def __init__(self, file1, file2 ...
- python如何打印txt文件_在Python中的.txt文件中打印特定行?
I have got a .txt file that contains a lot of lines. I would like my program to ask me what line I w ...
- python模拟app抢号_使用python编程自动玩手游
我们在玩手游的时候,会发现手游中有些步骤总是需要重复玩,每天都要重复,比如重复做日常任务啥的,一直肝个不停,但是其实很多东西都是固定玩法了,但是就是需要你机械的重复,我就没见过什么手游是不肝的,就算自 ...
- python名片打印程序代码_基于Python的名片识别接口调用代码实例
#!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib from urllib import urlencode #-------- ...
最新文章
- 对冒泡和二分法,特别是二分法有了更深的理解
- File类与FileInfo类的区别
- 随机森林-集成学习方法(分类)
- CGCKD2021大会报告整理(1)--宽度学习
- metinfo mysql_Metinfo 5.3.17 前台SQL注入漏洞
- 小程序开发(2)-之app.js、app.wxss、project.config.json说明
- 在linux下进行嵌入式系统设计,一种应用于测控系统的基于Linux的嵌入式系统的设计...
- 非递归中序,后序,先序遍历二叉树完整代码(用链式栈实现)
- 密码学研究-加密解密
- Android学习--10-数据存储
- 利用openpyxl来读取Excel数据
- Struts2→MCV、环境搭建第一个样例、工作原理、核心文件、XML中常用元素、通配符、action后缀、action接收参数、result、标签
- OpenGL基础54:点光源阴影
- mybatis入门截图四(订单商品数据模型-懒加载-缓存)
- TableViewCell分割线消失的问题
- Atitit 常见聚合运算与算法 目录 1.1. 单行函数,vs 那就是聚合函数	1 1.2. 聚合分类 哈希聚合 标量聚合 流聚合	1 1.3. 常见聚合函数 mysql oracle等	1 r
- Atitit rpc之道 attilax著 艾龙 著 1. 远程过程调用协议	1 2. 历史	2 2.1. RPC的早期发展	3 3. RPC这种编程范式存在的三大问题以及这些问题	5 3.1.
- 最好用的Mac任务规划软件【滴答清单】
- BZOJ 1260 paint
- 科技护肤品,买还是不买
热门文章
- C++之RVO返回值优化
- 浏览器缓存分类及区别
- 【Aurora】在word中插入算法伪代码、表格和公式
- 远程命令执行/命令注入 之 命令连接符
- 无刷无霍尔电机驱动准备工作(一)
- 一加还原Android10,曾经安卓最佳第三方ROM回归,基于安卓10,支持小米、一加等机型...
- 第二课第二周第1-5节-基于树的模型用于医学预后
- 2 The Vuri FAQ - Vrui问答
- Linux设备与内存单位-扇区、块、段、页(sector、block、segment、page)
- 【多个IP地址用逗号分割开】vue简单实现,textarea文本域输入多个ip地址用逗号分隔开,根据空格分割