竖直四子棋算法问题

算法题目

竖直四子棋的棋盘是竖立放置的,在这个游戏里,红、蓝双方会轮流选择棋盘的一列进行落子。由于重力的作用,棋子会落到棋盘底部或者已有的棋子之上。当某一列的棋子放满之后,就不能再在这一列落子了。游戏的获胜条件是,一方的 4 个棋子在横、竖或者斜方向连成一线。

现在给出一个棋盘以及红、蓝双方的落子步骤,需要你判断红方或蓝方是否在某一步获胜。

输入要求如下:
输入包含 2 行。第一行是用空格分隔的两个数字,分别表示棋盘的宽和高。第二行依次间隔指定红蓝双方的落子步骤,第 1 步是红方落子,第 2 步是蓝方落子,第 3 步又是红方落子,以此类推。这些步骤由一组用空格分隔的数字表示,每个数字代表落子的列的编号,最左边的列编号为 1,往右依次递增。输入的数字均为 32 位有符号数。

输出要求如下:

  • 如果在落子过程中红方获胜,输出N, red
  • 如果在落子过程中蓝方获胜,输出N, blue
  • 如果出现非法的落子步骤,输出N, error

这里的N是落子步骤的序号,从 1 开始。如果双方都没有获胜,输出0,draw。非法落子步骤有两种情况,一是列的编号超出了棋盘范围,二是在已经落满子的列上落子。N和单词redbluedrawerror之间用英文逗号连接。

例如:
示例一:
输入:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

t0_54coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值