C语言如何将坐标中的(x,y)提取出来?

用C语言编写五子棋程序,下棋部分的思路是首先鼠标左键点击棋盘,然后判断棋子落点,最后在屏幕上显示。卡在了提取坐标的地方。因为鼠标点击之后经过判断之后显示在屏幕上的点的坐标... 用C语言编写五子棋程序,下棋部分的思路是首先鼠标左键点击棋盘,然后判断棋子落点,最后在屏幕上显示。卡在了提取坐标的地方。因为鼠标点击之后经过判断之后显示在屏幕上的点的坐标是经过修改的,那么怎么把这个坐标提取呢?表述有点混乱因为我不太能想明白请见谅。部分程序:void playgame(){ MOUSEMSG m; //定义鼠标类型,结构体,取名为m int a = 0, b = 0; int x; int y; while (1) { m = GetMouseMsg(); //用m获取一个鼠标消息,如果没有,就等待 if (m.uMsg == WM_LBUTTONDOWN) //判断当前消息是否为鼠标左键按下 { //绝对值 abs() for (int i = 1; i < 20; i++) { for (int j = 1; i < 20; i++) { if (abs(m.x - 25 * i) < 12 && abs(m.y - 25 * j) < 25) { a = i, b = j; m.x = i,m. y = j *25; } } } if (flag % 2 == 0) { setfillcolor(BLACK); solidcircle(m.x, m.y, 10); //画圆,圆心坐标,半径,m为鼠标,m.x表示鼠标点横坐标 } if (flag % 2 == 1) { setfillcolor(WHITE); solidcircle(m.x, m.y, 10); //画圆,圆心坐标,半径,m为鼠标,m.x表示鼠标点横坐标 } flag++; } }}
很多函数用的easy x
表述有点混乱,经过鼠标点击之后程序里面就有一个m.x和m.y,此时x,y代表的是当前鼠标的x,y坐标(不知道多少),经过abs之后(x,y)的值变成了坐标上的点并且是整数了,但是由于程序里面是用的m.x和m.y,而要想输出点的话要将它们取出来,但是如果直接用x,y表示坐标的话会报错说没有定义就直接使用。
简洁一些说就是函数里面的m.x和m.y已经代表了坐标,但是之后如果直接定义int x,y程序会报错说使用了未赋值的函数,如果用m.x和m.y表示的话达不到提高精度的目的,所以想明白在这种情况下如何把x和y的坐标值提取出来。
源程序:https://pan.baidu.com/s/1jvD8X_njJeqqezS3Sz0gtg
思路都在上面了
展开
 我来答
林___0
2018-08-06 · TA获得超过347个赞
知道小有建树答主
回答量:138
采纳率:100%
帮助的人:27.1万
展开全部

用ReadConsoleOutputCharacterA函数,在windows.h中。

给你一个封好的函数吧,其作用是提取出窗口中第信唯x行y列的位置的字符是什么。(如果没有东西会返回空格符号)。

#include<windows.h>
//下标从1开始,x行y列。
char GetStr(int x, int y)
{
COORD pos;
//ReadConsoleOutputCharacterA里的x和y指的是x列y行,且从0开始标号 
pos.X = y-1;pos.Y = x-1;
LPSTR str;
DWORD read;
ReadConsoleOutputCharacterA(GetStdHandle(STD_OUTPUT_HANDLE), str, 滑虚培1, pos, &read);
return str[0];
}

使用誉键举例:

int main()
{
printf("kjndfgdfg\nkhgfhfhfgd\njifdgdfgg\n");
printf("1,2:%c\n",GetStr(1,2));
return 0;
}

输出为

kjndfgdfg
khgfhfhfgd
jifdgdfgg
1,2:j
更多追问追答
追问
虽然不是我的问题所在但是还是谢谢您,我的问题是经过鼠标点击之后程序里面就有一个m.x和m.y,此时x,y代表的是当前鼠标的x,y坐标(不知道多少),经过abs之后(x,y)的值变成了坐标上的点并且是整数了,但是由于程序里面是用的m.x和m.y,而要想输出点的话要将它们取出来,但是如果直接用x,y表示坐标的话会报错说没有定义就直接使用,所以就一直没有试出来T﹏T
追答
还是不是很懂您的问题 能再说一下吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式