『壹』 數據結構演算法 用C++ 迷宮最短路徑
一般迷宮尋路可以用遞歸的演算法,或者用先進後出的棧數據結構實現
用的是深度優先的演算法,可以尋找到走出迷宮的路徑
但本題要求求出最短的路徑,這就要使用廣度優先的演算法
一般在程序中需要用到先進先出的隊列數據結構
下面是程序的代碼,主要原理是用到
quei,quej和prep三個數組來構成隊列
分別儲存路徑的行,列坐標和上一個節點在隊列中的位置
大致演算法如下,右三個嵌套的循環實現
首先是第一個節點進入隊列
當隊列不空(循環1)
{
遍歷隊列中每節點(循環2)
{
將八個方向能夠走的節點加入隊列(循環3)
}
舊的節點出列
}
#include<iostream>
#include<ctime>
usingnamespacestd;
#defineMAXNUM50
voidmain()
{
intm,n,i,j,x;
cout<<"請輸入迷宮大小"<<endl;
cin>>m>>n;
intmaze[MAXNUM][MAXNUM];
srand((int)time(NULL));
for(i=0;i<=m+1;i++){
for(j=0;j<=n+1;j++){
if(i==0||j==0||i==m+1||j==n+1)
maze[i][j]=1;
else
{
x=rand()%1000;
if(x>700){maze[i][j]=1;}//控制矩陣中1的個數,太多1迷宮很容易走不通
else{maze[i][j]=0;}
}
cout<<maze[i][j]<<'';
}
cout<<endl;
}
//以上是輸入和迷宮生成,一下是走迷宮
intmove[8][2]={0,1,1,0,0,-1,-1,0,1,1,-1,1,-1,-1,1,-1};
int*quei=newint[m*n];//儲存行坐標隊列
int*quej=newint[m*n];//儲存列坐標隊列
int*prep=newint[m*n];//儲存之前一步在隊列中的位置
inthead,rear,length;//隊列頭,隊列尾,隊列長度
head=0;rear=1;length=1;
quei[head]=1;quej[head]=1;prep[head]=-1;//入口位置進隊列
intpos;//當前節點在隊列中的位置,
intii,jj,ni,nj;//當前節點的坐標,新節點的坐標
intdir;//移動方向
if(maze[1][1]==1)length=0;//第一點就不能通過
elsemaze[1][1]=1;
while(length)//隊列非空繼續
{
for(pos=head;pos<head+length;pos++)//尋找這一層所有節點
{
ii=quei[pos];jj=quej[pos];//當前位置坐標
if(ii==m&&jj==n)break;
for(dir=0;dir<8;dir++)//尋找8個方向
{
ni=ii+move[dir][0];nj=jj+move[dir][1];//新坐標
if(maze[ni][nj]==0)//如果沒有走過
{
quei[rear]=ni;quej[rear]=nj;prep[rear]=pos;//新節點入隊
rear=rear+1;
maze[ni][nj]=1;//標記已經走過
}
}
}
if(ii==m&&jj==n)break;
head=head+length;
length=rear-head;//這一層節點出列
}
if(ii==m&&jj==n)
{
while(pos!=-1)
{
cout<<'('<<quei[pos]<<','<<quej[pos]<<')';
pos=prep[pos];
if(pos!=-1)cout<<',';
}
}
else
{
cout<<"THEREISNOPATH."<<endl;
}
delete[]quei;
delete[]quej;
delete[]prep;
}
『貳』 solidworks組裝圖中怎麼使零件按指定方向移動,有圖。
把底部不動的設置成「固定」,然後用滑鼠按住想要移動的部件進行移動。
『叄』 CorelDRAW中,從哪裡設置方向鍵一次移動的距離
1、雙擊圖標打開軟體或者右擊圖標-打開軟體。
2、文件-新建文件。
3、先找矩形工具畫個矩形。
4、點擊圖形以為的空白處,找到如圖位置。
『肆』 慧編程怎麼設置賽道自動向後移動
在mbot上可執行巡線,用scratch編寫。
慧編程是一款面向STEAM教育領域的編程軟體,基於Scratch 3.0開發,支持積木式編程和代碼編程。它讓用戶可以創作有趣的游戲、動畫等作品,還能對Makeblock產品和micro:bit等硬體編程,同時融入人工智慧(AI)和 物聯網(IoT)等前沿技術,為編程教育和學習提供更好的支持。
Scratch是麻省理工學院設計開發的少兒編程工具,是目前國際上影響力最大的少兒編程語言。慧編程基於Scratch 3.0設計,延續了Scratch強大的功能和體驗,並增加Python代碼編程、AI和IoT等功能,賦予編程更多可能性。
『伍』 滑鼠反向移動怎麼設置
裝在輥柱端部的光柵信號感測器產生的光電脈沖信號反映出滑鼠器在垂直和水平方向的位移變化,再通過電腦程序的處理和轉換來控制屏幕上游標箭頭的移動。那麼,知道怎麼設置滑鼠的反向移動嗎?下面是我帶來滑鼠反向移動怎麼設置的內容,歡迎閱讀!
滑鼠反向移動設置 方法 一:
1、控制面板- 滑鼠;
2、點擊:主要和次要的按紐,去勾,再點擊:確定。
滑鼠反向移動設置方法二:
1:重新插拔下試試。
2:滑鼠本身出問題了,零件之間接觸不良,建議換個滑鼠試試,如果換個解決問題,就是滑鼠的問題。
3:是否USB介面松動或者USB介面出問題,接觸不良,換個介面看看。
4:滑鼠的驅動出現問題了,可以下載驅動精靈之類的軟體,安裝相應驅動。
看了“滑鼠反向移動怎麼設置”的內容的人還看:
1. 滑鼠反方向移動怎麼辦
2. 電腦滑鼠怎麼設置反向
3. 電腦滑鼠怎麼設置水平移動
4. win7滑鼠方向怎麼設置適合左手操作
5. 怎麼設置滑鼠的移動速度
『陸』 編程中如何滑鼠點擊讓角色以相反方向移動
進去游戲有 按ESC 選擇界面設置 然後點上左上的 滑鼠移動 就OK了 點右鍵就可以移動了 但是建議使用鍵盤 因為滑鼠移動好象有延遲 走副本的時候不爽