程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-關於五子棋棋盤更新問題

c語言-關於五子棋棋盤更新問題

編輯:編程綜合問答
關於五子棋棋盤更新問題

void renew(NODE chessboard[][17], int x, int y) // 更新棋盤指定位置的圖像
{
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE); // 得到標准輸出的句柄
COORD coordScreen; // 系統提示符位置
CONSOLE_SCREEN_BUFFER_INFO csbi; // 屏幕信息

if (!GetConsoleScreenBufferInfo(hOutput, &csbi))   // 獲取屏幕信息 
    return;   // 不成功則返回
coordScreen = csbi.dwCursorPosition;   // 獲取系統提示符位置
gotoxy(y * 2, x);   // 將系統提示符移動到棋盤的(x,y)所在位置 
printnode(chessboard, x, y);   // 重新打印這一塊
SetConsoleCursorPosition(hOutput, coordScreen);   // 系統提示符回復到原來位置

}
//gotoxy()
為什麼是y* 2啊?,到底是怎麼把系統提示符移動過去的呢,
前幾步也不是很懂,有詳細點的解釋嗎?

最佳回答:


  • 不知道你程序的上下文。只能靠猜測。
  • 最大的可能是:棋子是ASCII字符,但是兩個棋子中有一個分隔線,因此一個棋子+一個分隔線,因此是*2.
  • 另一個可能是:你的棋子是一個中文字符表示的,因此在Console的位置上占兩個位
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved