c语言五子棋斜向判断,c语言 五子棋危险判断 求大神解释啊

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

代码

#include

#define right 'r'

#define lower 'l'

#define lower_right 'i'

#define lower_left 'e'

#define none 'o'

int table[19][19];

int hit_space(int x, int y, char vec)

{

if (vec == right)

{

if (x - 1 >= 0 && table[x - 1][y] == 0)

return 1;

if (x + 4 < 19 && table[x + 4][y] == 0)

return 1;

}

if (vec == lower)

{

if (y - 1 >= 0 && table[x][y - 1] == 0)

return 1;

if (y + 4 < 19 && table[x][y + 4] == 0)

return 1;

}

if (vec == lower_right)

{

if (x - 1 >= 0 && y - 1 >= 0 && table[x - 1][y - 1] == 0)

return 1;

if (x + 4 < 19 && y + 4 < 19 && table[x + 4][y + 4] == 0)

return 1;

}

if (vec == lower_left)

{

if (x - 1 >= 0 && y + 1 < 19 && table[x - 1][y + 1] == 0)

return 1;

if (x + 4 < 19 && y - 4 >= 0 && table[x + 4][y - 4] == 0)

return 1;

}

return 0;

}

int tetra_colinear_on_vec(int x, int y, char vec)

{

if (vec == right)

{

if (x + 3 < 19

&& table[x][y] == table[x + 1][y]

&& table[x + 1][y] == table[x + 2][y]

&& table[x + 2][y] == table[x + 3][y])

return 1;

}

if (vec == lower)

{

if (y + 3 < 19

&& table[x][y] == table[x][y + 1]

&& table[x][y + 1] == table[x][y + 2]

&& table[x][y + 2] == table[x][y + 3])

return 1;

}

if (vec == lower_right)

{

if (x + 3 < 19 && y + 3 < 19

&& table[x][y] == table[x + 1][y + 1]

&& table[x + 1][y + 1] == table[x + 2][y + 2]

&& table[x + 2][y + 2] == table[x + 3][y + 3])

return 1;

}

if (vec == lower_left)

{

if (x + 3 < 19 && y - 3 >= 0

&& table[x][y] == table[x + 1][y - 1]

&& table[x + 1][y - 1] == table[x + 2][y - 2]

&& table[x + 2][y - 2] == table[x + 3][y - 3])

return 1;

}

return 0;

}

char tetra_colinear(int x, int y)

{

char vec;

vec = right;

if (tetra_colinear_on_vec(x, y, vec))

return vec;

vec = lower;

if (tetra_colinear_on_vec(x, y, vec))

return vec;

vec = lower_right;

if (tetra_colinear_on_vec(x, y, vec))

return vec;

vec = lower_left;

if (tetra_colinear_on_vec(x, y, vec))

return vec;

return none;

}

int checkmate()

{

int i, j;

for (i = 0; i < 19; i++)

for (j = 0; j < 19; j++)

{

if (table[i][j] == 1)

{

char vec = tetra_colinear(i, j);

if (vec == right || vec == lower || vec == lower_right||vec==lower_left)

{

if (hit_space(i, j, vec))

{

printf("1:%d,%d\n", i+1, j+1);

return 1;

}

}

}

}

for (i = 0; i < 19; i++)

for (j = 0; j < 19; j++)

{

if (table[i][j] == 2)

{

char vec = tetra_colinear(i, j);

if (vec == right || vec == lower || vec == lower_right || vec == lower_left)

{

if (hit_space(i, j, vec))

{

printf("2:%d,%d\n", i+1, j+1);

return 1;

}

}

}

}

return 0;

}

int main()

{

int i,j;

for (i = 0; i < 19; i++)

for (j = 0; j < 19; j++)

scanf("%d",&table[i][j]);

if (!checkmate())

printf("No\n");

return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue项目接口地址暴露_vue组件暴露和.js文件暴露接口操作

1、将同一类型的组件放在一个文件夹下2、在此文件夹下创建一个index.js3、在index.js中导入组件&#xff0c;并把他们暴露出去1、写法一import studentCourse1 from ./studentCourse.vueimport studentInfo1 from ./studentInfo.vueexport var studentCoursestudentCourse1expo…

linux编译lnx文件命令_linux命令dd

dd使用dd这个linux命令可以创建一定大小文件。linux创建文件命令&#xff1a;dd命令把指定的输入文件拷贝到指定的输出文件中&#xff0c;并且在拷贝的过程中可以进行格式转换。语法&#xff1a;CODE:[Copy to clipboard]dd 〔选项〕QUOTE:if 输入文件(或设备名称)。of 输出文件…

android opencv 水印,关于opencv对图片添加水印

有一段时间没有写博客了&#xff0c;最近因为自己需要给图片添加水印&#xff0c;就写了个简单的图片添加水印python:3.6.7pycharmopencv是一个开源的库&#xff0c;是有c编写&#xff0c;支持c &#xff0c;python&#xff0c;java和matlab接口&#xff0c;并支持windows&…

python做一个窗口样式_python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法...

本文借用HTML的css语法&#xff0c;将样式表应用到窗口部件。这里只是个简单的例子&#xff0c;实际上样式表的语法很丰富。以下类似于css&#xff1a;StyleSheet """QComboBox { color: darkblue; }QLineEdit { color: darkgreen; }QLineEdit[mandatory"…

华为开发微信鸿蒙版,HUAWEI DevEco Studio

华为鸿蒙2.0开发平台为开发者在PC上面所提供的的开发平台&#xff0c;这个平台能够让用户在PC和Mac上面完成对鸿蒙相关开发内容&#xff0c;开发者能够在这个官方的平台当中开发属于自己的应用内容&#xff0c;更好的开发属于自己的应用并且在上面进行全面的调试&#xff0c;感…

linux安装python3.6 setuptools_linux下安装Python3.6.1

linux下安装Python3.6.1Python-3.6.1下载wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz解压、编译、安装tar Jxvf Python-3.6.1.tar.xzcd Python-3.6.1./configure --prefix/usr/local/python3make && make install最终显示下面代码表示python3…

function里面可以写function吗_和田玉不戴的时候,可以长时间泡在水里面吗?

叶子珠宝翡翠批发商城数百万玉石好友聚集地翡翠行业最活跃的领军&#xff0c;实力收藏家都在关注新朋友请点击叶子珠宝翡翠批发商城关注&#xff01;抢购源头翡翠&#xff01;请加1号店微信号&#xff1a;stchenchuye(←长按复制请加2号店微信号&#xff1a;feicui1236(←长按复…

shell判定一个变量等于-n_Shell test命令:条件判断,检查某条件是否成立

test 命令是 Bash 中重要的判断命令&#xff0c;也是 Shell 脚本中条件判断的重要辅助工具。当我们需要让程序自动判断哪些事情是成立的时&#xff0c;test 命令就派上用场了。按照文件类型进行判断根据表 1&#xff0c;我们先来看看 test 可以进行哪些文件类型的判断。表 1 文…

android智能老人机系统,国产老人机也可以变智能!可运行Android

原标题&#xff1a;国产老人机也可以变智能&#xff01;可运行Android相信很多用户对老人机的认知都是大电池、小屏幕、高音量以及功能少。看完下边这个老年机&#xff0c;你的认知可能会被颠覆。微博用户极客村长今天在微博上放出了一张来自国内厂商TETC的老人机图片&#xff…

android时间最大,Android TimePickerDialog设置最大时间

对于lolipop和更高版本的android&#xff0c;您可以使用此修改过的RangeTimePickerDialog类(从lolipop&#xff0c;Timepicker默认使用时钟模式(材料设计)&#xff0c;因此旧的自定义类将无法使用。我们可以将模式更改为Spinner以获取最新版本&#xff0c;并可以重用该类)publi…

css毛玻璃效果白边_css3毛玻璃效果白边问题_html/css_WEB-ITnose

注&#xff1a;css3毛玻璃效果应该很多人都知道怎么实现&#xff0c;但是有个问题是图片模糊了之后相当于缩小了&#xff0c;所以颜色深的图片会出现白边&#xff0c;这里说下我参考网上的解决方式吧&#xff01;1、毛玻璃实现方法&#xff1a;CSS3 blur滤镜实现如下测试代码&a…

如何把html转换cad,Tab2Xls插件(捷克版)将AutoCAD表格转换为XLS、CSV或HTML。

一、插件简介Tab2Xls-将表导出到XLS、CSV或HTMLTab2Xls是一个用于AutoCAD的LISP实用程序&#xff0c;用于导出将AutoCAD表格转换为XLS、CSV或HTML。启动TAB2XLS命令并选择一个table对象-Excel应用程序将启动&#xff0c;表格将以选定的名称保存(默认情况下&#xff1a;绘图路径…

python问卷调查数据分析_如何用excel统计调查问卷

有些人可能经常要对调查问卷进行统计&#xff0c;使用手写的方法(就是在纸上写正字的方法)虽然很方便&#xff0c;不过不方便在一定条件下进行统计&#xff0c;如在男士的条件下&#xff0c;使用诺基亚的手机有多少人。而用excel可以很方便得出此类统计结果&#xff0c;并且由于…

html中什么是语义,html – “语义正确”是什么意思?

标签正确这意味着你正在调用它实际上是什么。典型的例子是&#xff0c;如果某个表是一个表&#xff0c;它应该包含行和数据列。要用于布局语义上是不正确的 – 你不是说“这是一个表”。另一个例子&#xff1a;通常应该使用列表(< ul> or< ol>)来对相似的项目(<…

golang商城_Golang——简单是终极的成熟

Google的Rob Pike在2012年的主题演讲中说&#xff1a;“ Go的目的不是要对编程语言设计进行研究&#xff1b; 这是为了为其设计师及其同事改善工作环境。 与编程语言研究相比&#xff0c;Go不仅仅是软件工程。 换一句话&#xff0c;它与软件工程服务中的语言设计有关。” 演讲揭…

android 换行模式,Android进阶之自定义View(1)实现可换行的TextView

今天来一起学习一下最简单的自定义view,自己动手写一个MyTextView,当然不会像系统的TextView那么复杂&#xff0c;只是实现一下TextView的简单功能&#xff0c;包括分行显示及自定义属性的处理&#xff0c;主要目的是介绍自定义view的实现的基本思路和需要掌握的一些基础知识。…

shell 停止tomcat_Linux停止tomcat运行

打开终端cd /java/tomcat#执行bin/startup.sh #启动tomcatbin/shutdown.sh #停止tomcattail -f logs/catalina.out #看tomcat的控制台输出&#xff1b;#看是否已经有tomcat在运行了ps -ef |grep tomcat#如果有&#xff0c;用kill;kill -9 pid #pid 为相应的进程号例如 pe -ef |…

中国大学moocpython笔记_中国大学MOOC_高级语言程序设计(Python)笔记

一、程序设计基础1、Python历史2、Python特点Python的伪代码(形式语言)更接近于自然语言(自然语言)胶水语言3、Python的应用&#xff1a;Google、Youtube等4、IDE1)Python是解释性语言(“同声传译”)&#xff0c;支持有两种方法使用解释器&#xff1a;交互式模式(interactivemo…

html调用chr,FpHtmlEnCode 函数之标题过滤特殊符号的代码

FpHtmlEnCode 函数之标题过滤特殊符号的代码更新时间&#xff1a;2007年09月01日 22:11:50 作者&#xff1a;函数名&#xff1a;FpHtmlEnCode作 用&#xff1a;标题过滤参 数&#xff1a;fString ------字符串Function FpHtmlEnCode(fString)If IsNull(fString)False or fS…

html怎么给code标签添加语言,html code标签怎么用?html code标签的作用解释

本篇文章主要的讲述了关于HTML code标签的用法解释&#xff0c;和HTML code标签的用法实例&#xff0c;最后还有code标签的总结。接下来让我们一起来看这篇文章吧首先我们先看看html code标签的用法解释:标签用于表示计算机源代码或者其他机器可以阅读的文本内容。软件代码的编…