JAVA中计算五子棋平局的算法_输入五子棋棋盘判断输赢或平局—程序设计(C语言)...

这是一个使用C语言编写的程序,用于判断19x19五子棋棋盘状态,检测是否有人获胜。程序读取棋盘状态,检查是否有连成5个棋子的横行、纵行或斜线,以确定胜者。如果无人获胜,则输出"No"。
摘要由CSDN通过智能技术生成

输入五子棋棋盘判断输赢或平局—程序设计(C语言)

输入五子棋棋盘判断输赢或平局—程序设计(C语言)

输入五子棋棋盘判断输赢或平局—程序设计(C语言)

??做这道题实在没有思路参考了这位作者的代码:

https://blog.csdn.net/jason_ranger/article/details/51250473

但在提交代码后系统只给了我8分,没有得到满分10分。

老师又要求画流程图写思路,于是就自己研究了一下。总体明白了,但有些地方还是想不通,就按照自己的想法做了一些更改。提交以后得了满分??。

自己写了一些注释,还画了一张流程图,大家可以参考一下,有错误欢迎指出。

以下是题目:

【问题描述】

已知两人分别执白棋和黑棋在一个围棋棋盘上下五子棋,若同一颜色的棋子在同一条横行、纵行或斜线上连成5个棋子,则执该颜色棋子的人获胜。编写程序读入某一时刻下棋的状态,并判断是否有人获胜。

输入的棋盘大小是19×19,用数字0表示空位置(即没有棋子),用数字 1表示该位置下了一白色棋子,用数字2表示该位置下了一黑色棋子。假设同一颜色的棋子在同一条横行、纵行或斜线上连成的棋子个数不会超过5个,并且最多有一人连成线的棋子个数为5。

【输入形式】

从控制台输入用来表示棋盘状态的数字0、1或2;每行输入19个数字,各数字之间以一个空格分隔,每行最后一个数字后没有空格;共输入19行表示棋盘状态的数字。

【输出形式】

若有人获胜,则先输出获胜人的棋子颜色(1表示白色棋子,2表示黑色棋子),然后输出英文冒号:,最后输出连成5个棋子连线的起始位置(棋盘横行自上往下、纵行自左往右从1开始计数,横行最小的棋子在棋盘上的横行数和纵行数作为连线的起始位置,两数字之间以一个英文逗号,作为分隔符)。

若没有人获胜,则输出英文字符串:No。

无论输出什么结果,最后都要有回车换行符。

【输入样例1】

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 2 0 1 1 2 0 0 0 0 0 0 0

0 0 0 0 0 2 1 1 1 1 2 2 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1 2 1 2 0 0 0 0 0 0 0 0

0 0 0 0 0 0 1 1 0 2 2 0 0 0 0 0 0 0 0

0 0 0 0 0 2 0 1 0 0 2 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1 0 0 1 2 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值