C语言,光标移动问题

这是五子棋的一部分代码//将光标移动到指定位置voidgotoxy(intx,inty,HANDLEhOutput){COORDcoordScreen={0,0};coo... 这是五子棋的一部分代码
// 将光标移动到指定位置
void gotoxy(int x, int y,HANDLE hOutput)
{
COORD coordScreen={0,0};
coordScreen.X=x;
coordScreen.Y=y;
SetConsoleCursorPosition( hOutput, coordScreen );//API中定位光标位置的函数
}

// 更新棋盘指定位置的图像——打印气质棋盘上的一个点
void renew(int x, int y,HANDLE hOutput,point cursor)
{
COORD coordScreen;// 系统提示符位置
CONSOLE_SCREEN_BUFFER_INFO c;// 窗口缓冲区信息
if( !GetConsoleScreenBufferInfo( hOutput, &c ))// 获取屏幕信息 //获取控制台窗口信息

return;// 不成功则返回
coordScreen=c.dwCursorPosition;//获取系统提示符位置
gotoxy( 2*y+2 , x+1, hOutput);//将系统提示符移动到棋盘的(x,y)所在位置-------?
printnode(x,y, hOutput, cursor);//重新打印这一块
SetConsoleCursorPosition(hOutput, coordScreen );
}

带问号的那一句不懂。为什么,是2*y+2,x+1
展开
 我来答
伊·梵beec
2013-01-07 · TA获得超过2160个赞
知道大有可为答主
回答量:1897
采纳率:0%
帮助的人:1377万
展开全部
这里应该是棋盘坐标系和屏幕坐标系之间的映射(转换)

下面属于猜测:

屏幕坐标系(原点1,1):
+---------------->y
|
|

v
x

棋盘坐标系(原点0,0):

y
^
|
|
|
+------------------x
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式