while (1) { peekmessage(&Click, EX_MOUSE); switch (Click.message) { case WM_MOUSEMOVE: if (Doen_or_no == 1) { if (Click.x >= 0 && Click.x <= n * 65 && Click.y >= 0 && Click.y <= m * 65) { Map[Click.y / 65][Click.x / 65] = 0; setfillcolor(BLACK); fillrectangle((Click.x / 65) * 65, Click.y / 65 * 65, Click.x / 65 * 65 + 65, Click.y / 65 * 65 + 65); cout << "Clic.x" << Click.x << " " << "Clic.y" << Click.y << endl; } }break; case WM_LBUTTONDOWN: Doen_or_no = true; if (Click.x >= 0 && Click.x <= n * 65 && Click.y >= 0 && Click.y <= m * 65) { Map[Click.y / 65][Click.x / 65] = 0; setfillcolor(BLACK); fillrectangle((Click.x / 65) * 65, Click.y / 65 * 65, Click.x / 65 * 65 + 65, Click.y / 65 * 65 + 65); cout << "Clic.x" << Click.x << " " << "Clic.y" << Click.y << endl; } break; case WM_LBUTTONUP:Doen_or_no = false; break; case WM_RBUTTONDOWN: if (Click.x >= 0 && Click.x <= n * 65 && Click.y >= 0 && Click.y <= m * 65) { Map[Click.y / 65][Click.x / 65] = 0; setfillcolor(WHITE); fillrectangle((Click.x / 65) * 65, Click.y / 65 * 65, Click.x / 65 * 65 + 65, Click.y / 65 * 65 + 65); cout << "Clic.x" << Click.x << " " << "Clic.y" << Click.y << endl; }break; } }根据这段代码怎么把相同X坐标上的黑色方块数量存进一个数组中
时间: 2024-03-01 15:51:53 浏览: 21
要统计同一列上黑色方块的数量,可以定义一个整型数组blackCount,数组的下标表示列号,数组的值表示该列上黑色方块的数量。在每次修改地图格子状态的时候,可以通过计算Click.x / 65来获取所在的列号,然后将对应列号的blackCount元素加1即可。
代码如下:
```c++
int blackCount[n] = {0}; // 定义存放黑色方块数量的数组
while (1) {
peekmessage(&Click, EX_MOUSE);
switch (Click.message) {
case WM_MOUSEMOVE:
// ...
break;
case WM_LBUTTONDOWN:
// ...
break;
case WM_LBUTTONUP:
// ...
break;
case WM_RBUTTONDOWN:
if (Click.x >= 0 && Click.x <= n * 65 && Click.y >= 0 && Click.y <= m * 65) {
Map[Click.y / 65][Click.x / 65] = 0;
setfillcolor(WHITE);
fillrectangle((Click.x / 65) * 65, Click.y / 65 * 65, Click.x / 65 * 65 + 65, Click.y / 65 * 65 + 65);
cout << "Clic.x" << Click.x << " " << "Clic.y" << Click.y << endl;
blackCount[Click.x / 65]--; // 统计列上黑色方块的数量
}
break;
}
}
```
在这个代码框架中,我们只需要在删除黑色方块的代码块中加上`blackCount[Click.x / 65]--;`即可实时统计每一列上的黑色方块数量。