t.d, sizeof(hashs));for(int i0; inumx; i){for(int j0; jnumy; j){hashs[i][j] 11;}}//return;//将起点压入队列q.push(curNode);//是否有通路开关bool isroad false;while (!q.empty()) {Node node q.front();//visit[node.x][node.y] 1;q.pop();for (int i 0; i 4; i) {int x node.x stepArr[i][0];int y node.y stepArr[i][1];Node t(x, itemMap[x][y]);if(x 0 y 0 x numx y numy hashs[x][y] t.turn itemMap[x][y] 0) {hashs[x][y] t.turn;q.push(t);}}}//如果有通路删除两点if(isroad){disabledMenuitem-removeFromParent();menuitem-removeFromParent();disabledMenuitem nullptr;itemMap[preX][preY] 0;itemMap[curX][curY] 0;}else{//如果没有匹配将上次点击的按钮重新启用disabledMenuitem-setEnabled(true);//将当前按钮保存为禁用按钮disabledMenuitem menuitem;}} , curNode.d5;std::queueNode q ;//初始化清空队列while(!q.empty()) q.pop();int hashs[numx][numy];//memset(hashs, x, y);t.turn node.di ? node.turn : node.turn1;t.d i;if (x preX y preY t.turn 3) { // 到达k点isroad true;break;}//log(x:%d y:%d t:%d d:%d h:%d i:%d,y(y1){}};int stepArr[4][2] {{-1, //核心代码void OneController::clickCallback(Ref * sender){auto menuitem static_castMenuItem *(sender);//menuitem-autorelease();//将点击的按钮禁用menuitem-setEnabled(false);//第一次点击保存按钮地址并退出if(bool(disabledMenuitem nullptr)){disabledMenuitem menuitem;return;}//两个按钮不相同if(!bool(disabledMenuitem-getName() menuitem-getName())){//如果没有匹配将上次点击的按钮重新启用disabledMenuitem-setEnabled(true);//将当前按钮保存为禁用按钮disabledMenuitem menuitem;return;}struct Node{int x; //横坐标int y; //纵坐标int turn; //拐点次数int d; //方向Node(int x1,{0。
y, t.turn,int y1):x(x1),{0,。
hashs[x][y], 0);//本次点击按钮标签号int curtag menuitem-getTag();//终止点int curX curtag % numx;int curY curtag / numx;Node curNode(curX,0},1}};//表示上下左右4个方向//int visit[numx][numy] {0}; //表示该点是否被访问过//上一次点击按钮标签号int pretag disabledMenuitem-getTag();//超始点int preX pretag % numx;int preY pretag / numx;//Node ii(preX, 11,{1。
-1},0}。
curY);curNode.turn0, preY。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
