面向对象程序设计课程nbspnbsp++.pptVIP

  • 3
  • 0
  • 约2.71千字
  • 约 15页
  • 2020-12-29 发布于黑龙江
  • 举报
面向对象程序设计 跳马问题 半张中国象棋棋盘,马自左下角往右上角跳,规定马只能往右跳,不许往左跳,图中给出了一种可能的路线。设计一个程序,求出全部可能的跳行路线。 分析 假设DX为水平增量,DY为垂直增量,DX[i] 和DY[i] 分别为四种跳法的水平和垂直增量,当前点为(X,Y),则由X1=X+ DX[i] 和Y1=Y+ DY[i] 得到新点(X1,Y1)。在跳动过程中,随时检查越界。 回退过程 void CHorseView::Back() { b=false; dep=dep-1;//栈顶指针减1 if (dep0) { d=stack[dep].d1;//回退一步 x=stack[dep].x1; y=stack[dep].y1; } else b=true; } 越界检查 bool CHorseView::Border() { int x2; int y2; bool p;//越界检查变量 p=false; if(d4) { x2=x+dx[d]; y2=y+dy[d]; if((x2=8)(y2=4)(y2=0)) p=true; } return p; } 跳马程序 void CHorseView::FindRoute() { CStrin

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档