左右键同时点击事件
int MineMap::onLeftRightDown(int x, int y){//必须是已经被点开的if (x >= m_x || x < 0 || y >= m_y || y < 0 || m_map[x][y] >= 9 || m_map[x][y] < 0)return 0;if (m_win == 0 || m_win == 2)return 0;//99代表雷,周围8个区域必须被插对棋子旗子才能直接被填满m_floatX = x;m_floatY = y;int count = 0;int cows[8];int cols[8];memset(cows, -1, 8 * sizeof(int));memset(cols, -1, 8 * sizeof(int));for (int m = -1; m < 2; m++){for (int n = -1; n < 2; n++){int j = m + x;int k = n + y;//先判断是否都被点开或者被插上棋子if (m_map[j][k] > 90 &&(j != x || k != y)){cows[count] = j;cols[count] = k;count++;}}}if (count == m_map[x][y]){for (int i = 0;; i++){if (cows[i] == -1)break;m_map[cows[i]][cols[i]] -= 100;if (m_map[cows[i]][cols[i]] == -1){//重新开始m_map[cows[i]][cols[i]] = -2;for (int i = 0; i < m_x; i++){for (int j = 0; j < m_y; j++){if (m_map[i][j] == 99){m_map[i][j] = -1;}if (m_map[i][j] == 49){m_map[i][j] = -1;}if (m_map[i][j] >= 50 && m_map[i][j] <= 58){m_map[i][j] = -2;}}}m_win = 0;return 3;}}return 1;}else{for (int m = -1; m < 2; m++){for (int n = -1; n < 2; n++){int j = m + x;int k = n + y;//先判断是否都被点开或者被插上棋子if (m_map[j][k] > 90)m_map[j][k] -= 120;}}}//如果周围有没有被点开或者没有被插上棋子的就进行浮动效果return 2;}
目前的操作是双击该区域的话会先进行判断该区域的雷数和为点开的数量是否相等,不相等的话只是弹出,相等的话会帮助用户点开,弹出的时间在主界面进行设置 。
void MainWindow::onFloatTimer(){m_minemap.floatCoordinateRestore();update();m_floatTime->stop();}
- Elastic search入门到集群实战操作详解(原生API操作、spring
- 校园安全与突发事件处理课程评估 突发事件风险评估报告
- SENS:系统事件通知服务 和 WMI 支持灵活而有效的移动网络计算
- 薛逸凡计算机生物学,访北大单人毕业照事件主角薛逸凡 古生物学专业介绍
- 短路与操作 比较 && 与 &(逻辑与操作)的不同
- 如何mac运行exe软件
- 弘辽科技:淘宝提升销量操作流程是什么?提升销量作用有哪些?
- 【转帖】剖析Windows XP x64操作系统
- 服务器文件使用记录表,服务器文件使用记录表
- 电脑退不出屏保