大爽Python入门练习题 2-1 检查五子相连

大爽Python入门练习题总目录

第二章 中期练习题 中等 第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
posted @ 2021-12-10 12:03  大爽歌python编程辅导  阅读(83)  评论(0编辑  收藏  举报