HH_Knight 2020-03-29 19:40 采纳率: 0%
浏览 57

新手求帮助,感谢各位大佬。

你已经两个月没有出门了,无聊到自己和自己玩“一键三连”的游戏。这个游戏很简单,你制作了规格为4×4的棋盘,一开始棋盘中所有格子都是空的,全为‘.’,紧接着你一人分饰两角,一个画‘x’填到一个为空的格子里,另一个画‘o’填到另一个为空的格子,这个过程交替进行。如果一方先使横的、竖的或斜的有连续的三个格子都是属于自己的标记,那么就赢了。

你刚刚看完一个视频,现在准备开始玩“一键三连”,于是你拿出了很久之前的棋盘,它可能下过,也可能没有(即全部填‘.’),但保证此时没有达到画‘o’的胜局。你选择在一个为空的格子里画‘x’后马上停止,看看是否能构成画‘x’的胜局。

输入格式:
输入共四行四列,表示由“.”(表示空的),“x”(小写字母x)或“o”(小写字母o)组成棋盘。

输出格式:
如果你一键三连了,输出“YES”,否则输出“NO”。

输入样例1:
xx..
.oo.
x...
oox.

输出样例1:
YES

输入样例2:
x.ox
ox..
x.o.
oo.x

输出样例2:
NO

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-07-25 16:44
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    ```python

    读取输入

    board = [] for _ in range(4): board.append(input())

    检查是否构成"一键三连"

    def check_win(board, player): # 检查横向 for i in range(4): if board[i].count(player) == 3: return True # 检查纵向 for j in range(4): if [board[i][j] for i in range(4)].count(player) == 3: return True # 检查斜向 if board[0][0] == player and board[1][1] == player and board[2][2] == player: return True if board[0][3] == player and board[1][2] == player and board[2][1] == player: return True return False

    检查一键三连

    def check_one_line(board): for i in range(4): for j in range(4): if board[i][j] == '.': new_board = [list(row) for row in board] new_board[i][j] = 'x' if check_win(new_board, 'x'): return "YES" return "NO"

    输出结果

    print(check_one_line(board))

    输入样例1:
    xx..
    .oo.
    x...
    oox.
    输出样例1:
    YES
    输入样例2:
    x.ox
    ox..
    x.o.
    oo.x
    输出样例2:
    NO
    
    评论

报告相同问题?

悬赏问题

  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证