【发布时间】:2018-01-12 11:07:01
【问题描述】:
我正在使用 GUI 库制作井字游戏。我将我的游戏数据存储在一个称为 CP 的二维数组中。在CP中,0为空槽,1为O,2为X。清空CP后,重新绘制棋盘,使数组等于:
000
000
000
窗口看起来像这样,其中的那些代表之前存在的 X 或 O:
010
101
010
这里附上重置CP,刷板的代码:
switch( message )
{
case WM_PAINT:
{
HDC hdc;
PAINTSTRUCT ps;
hdc = BeginPaint( hwnd, &ps );
Rectangle( hdc, 0, 0, 200, 200 );
Rectangle( hdc, 200, 400, 0, 600 );
Rectangle( hdc, 600, 0, 400, 200 );
Rectangle( hdc, 600, 400, 400, 600 );
Rectangle( hdc, 200, 200, 400, 400 );
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(CP[i][j] == 1) {
Ellipse(hdc, 200 * i, 200 * j, 200 * (i + 1), 200 * (j + 1));
}
if(CP[i][j] == 2) {
MoveToEx(hdc, 200 * i, 200 * j, NULL);
LineTo(hdc, 200 * (i + 1), 200 * (j + 1));
MoveToEx(hdc, 200 * (i + 1), 200 * j, NULL);
LineTo(hdc, 200 * i, 200 * (j + 1));
}
}
}
EndPaint( hwnd, &ps );
}
return 0;
break;
case WM_KEYDOWN:
for(int b = 0; b < 3; b++) {
for(int c = 0; c < 3; c++) {
CP[c][b] = 0;
}
}
std::cout << "RESET\n";
RedrawWindow(hwnd, NULL, NULL, RDW_INVALIDATE);
turn = 1;
break;
【问题讨论】:
标签: c++ windows user-interface winapi