大爽Python入门练习题 2-1 检查五子相连
第二章 中期练习题 中等 第1题
题目
情景介绍
五子棋的游戏,很多人应该熟悉。
其游戏规则是,横竖或者斜着,有五个相同的子相连,对应的玩家获胜。
五子棋是一个二维面板,要检查是否有玩家获胜。
要检查所有行,列,对角线上,是否有五个相同的子相邻。
这里我们对问题进行简化。
从问题中,抽离出一个子问题,来思考与练习:
检查一个列表中,是否有相邻五个子都是一种棋子。
简介
实现一个函数check_five(lst, c)
,
接受以下两个参数:
lst
:列表,由棋子"X"
,"O"
,和空格子" "
三种符号组成。c
: 棋子字符,"X"
,"O"
之一
返回一个布尔值:
如果有五个相邻的c
棋子,则返回True
否则返回False
示例
示例一
lst = ['X', 'O', ' ', 'X', 'X', 'X', ' ', 'X', ' ', 'O', ' ', 'O', 'X']
c = "X"
print(check_five(lst, c))
输出为
False
示例二
lst = [' ', 'O', ' ', 'X', 'O', 'O', 'O', 'O', 'O', ' ', ' ', 'O', 'X']
c = "O"
print(check_five(lst, c))
输出为
True
分割线
本小段没有实际意义,
仅用于分隔题目和答案。
防止学生无意中直接看到答案,
影响思路。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
答案
def check_five(lst, c):
count = 0
for item in lst:
if item == c:
count += 1
if count >= 5:
return True
else:
count = 0
return False