老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

java迷宮的代碼 java迷宮代碼解析

迷宮問題的求解源代碼

typedef struct{

做網站、成都網站制作介紹好的網站是理念、設計和技術的結合。創新互聯建站擁有的網站設計理念、多方位的設計風格、經驗豐富的設計團隊。提供PC端+手機端網站建設,用營銷思維進行網站設計、采用先進技術開源代碼、注重用戶體驗與SEO基礎,將技術與創意整合到網站之中,以契合客戶的方式做到創意性的視覺化效果。

int Col,Row;//迷宮的大小

int arr[Rangle][Rangle]; //0表示障礙,1表示是可走的通道,-1表示外界的圍墻

}MazeType;

void InitMaze(MazeType

M,int col,int row)

{

//按照用戶的輸入的行數row和列數col列的二維數組(元素值為1或0)

//設置迷宮的初值,加上邊緣的一圈的值

}

void PrintMaze(MazeType M)

{

//根據已經進行二維數組的標記值來輸出迷宮(或者其通路)

}

bool Pass(MazeType M,PosType pos)

{//求解迷宮M中,從Start到end的一條路徑

//若存在則返回true,否則返回false

Stack S;

InitStack(S);

PosType curpos=start;//設置當前坐標為入口位置;

int curstep=1;

//當前的步數

bool Find=false;

//是否找到出口

ElemType e;

do{

if(Pass(M,curpos))

{

FootPrint(M,curpos);//在當前位置標記為2

e.step=1;

e.seat=curpos;

e.di=1;//初始化為向右邊位置移動

Push(S,e);

if(curpos.c==end.ccurpos.r==end.r)//如果找到了出口則終止,并返回true

{

Find=true;

return Find;

}

else{

curpos=NextPos(curpos,1);

curstep++;

}

}

else{//當前位置不能通過

if(!StackEmpty(S)){

Pop(S,e);//將已經走過的最近位置彈出,數據保存在e中

while(e.di==4!(StackEmpty(S))){

MarkPrint(M,e.seat);//留下不能通過的標記

Pop(S,e);

curstep--;

}//while

if(e.di4)//不能通過則改變方向

{

e.di++;//方向順時針改變一下

Push(S,e);

curpos = NextPos(e.seat,e.di); //求下一個節點

}

}

}

}while(!StackEmpty(S)!Find);

//(!StackEmpty(S)!Find);//當棧不為空且沒有找到出口

return

false;//沒有找到出口則返回false

求助 java一個二維數組代表迷宮。0代表道路 2表示墻壁。 假設老鼠會從數組[1][0]開始

這個可以用 堆棧 來完成。

用堆棧的基本思路就是。

設置一個起點A。將 A 入棧 。

從A開始找到第一個可以達到的點B。將 B 入棧 。

如果B無路可走。則在A點處重新換一個可達到的點。否則繼續 2-3 。直到達到終點。或者五路可走。

詳細的解釋,這兒有一篇博文:

java迷宮路徑總條數問題

int[][] data是你的迷宮數組,返回值是路徑總條數,不需要遞歸

public int findWayCount(int[][] data) {

int[][] way = new int[data.length][];

for (int m = 0; m data.length; m++) {

way[m] = new int[data[m].length];

for (int n = 0; n data[m].length; n++) {

if (data[m][n] == 0) {

way[m][n] = 0;

} else if (m == 0 n == 0) {

way[m][n] = data[0][0];

} else if (m == 0) {

way[m][n] = way[m][n - 1];

} else if (n == 0) {

way[m][n] = way[m - 1][n];

} else {

way[m][n] = way[m][n - 1] + way[m - 1][n];

}

}

}

JAVA數據結構迷宮求解!

#includestdio.h

#includegraphics.h

#includeconio.h

typedef struct{

int x,y;

int dir;

}pos,elem;

typedef struct{

elem* b,* t;

int size;

}stack;

void initstack(stack* s)

{

s-b=(elem*)malloc(50*sizeof(elem));

if(s-b){

s-t=s-b;

s-size=50;

return;

}

exit(0);

}

void push(stack* s,elem* e)

{

*s-t=*e;

s-t++;

}

void pop(stack* s,elem* e)

{

*e=*--s-t;

}

void gettop(stack* s,elem* e)

{

*e=*(s-t-1);

}

void clearstack(stack* s)

{

s-t=s-b;

}

int stackempty(stack* s)

{

return !(s-t-s-b);

}

int destroystack(stack* s)

{

free(s-b);

free(s);

return 1;

}

int mg[10][10]={

{-1,-0,-1,-1,-1,-1,-1,-1,-1,-1},

{-1,-0,-0,-0,-1,-0,-0,-0,-0,-1},

{-1,-0,-1,-0,-1,-0,-1,-1,-0,-1},

{-1,-0,-1,-1,-0,-0,-0,-0,-0,-1},

{-1,-0,-0,-1,-0,-1,-1,-0,-0,-1},

{-1,-0,-0,-0,-0,-0,-1,-0,-0,-1},

{-1,-0,-1,-0,-0,-0,-0,-1,-0,-1},

{-1,-0,-1,-1,-0,-0,-0,-1,-0,-1},

{-1,-0,-0,-0,-1,-0,-0,-1,-0,-0},

{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}

};

void step(stack* s,pos* cur,stack* result);

void savepath(stack* s,pos* cur,stack* result);

void draw(int y,int x);

void step(stack* s,pos* cur,stack* result)

{

if(stackempty(result)||s-t-s-bresult-t-result-b){

for(cur-dir++;cur-dir5;cur-dir++){

setfillstyle(SOLID_FILL,15);

switch(cur-dir){

case 1:

if(!mg[cur-y-1][cur-x]){

mg[cur-y][cur-x]=1;

push(s,cur);

cur-y--;

cur-dir=0;

draw(cur-y,cur-x);

return;

}

break;

case 2:

if(!mg[cur-y][cur-x+1]){

mg[cur-y][cur-x]=1;

push(s,cur);

cur-x++;

cur-dir=0;

draw(cur-y,cur-x);

return;

}

break;

case 3:

if(!mg[cur-y+1][cur-x]){

mg[cur-y][cur-x]=1;

push(s,cur);

cur-y++;

cur-dir=0;

draw(cur-y,cur-x);

return;

}

break;

case 4:

if(!mg[cur-y][cur-x-1]){

mg[cur-y][cur-x]=1;

push(s,cur);

cur-x--;

cur-dir=0;

draw(cur-y,cur-x);

return;

}

break;

default:

exit(0);

}

}

}

mg[cur-y][cur-x]=0;

setfillstyle(SOLID_FILL,0);

draw(cur-y,cur-x);

pop(s,cur);

}

void savepath(stack* s,pos* cur,stack* result)

{

pos* top=s-t;

if(stackempty(result)){

push(result,cur);

while(tops-b)

push(result,--top);

}

else if(result-t-result-bs-t-s-b){

clearstack(result);

push(result,cur);

while(tops-b)

push(result,--top);

}

}

void draw(int y,int x)

{

bar(100+15*x,100+15*y,115+15*x,115+15*y);

}

void main(void)

{

int i;

int x,y;

int gd=DETECT,gm;

stack* s=NULL;

stack* result=NULL;

pos* cur=NULL;

initgraph(gd,gm,"");

for(x=0;x10;x++)

for(y=0;y10;y++){

if(mg[y][x]){

setfillstyle(SOLID_FILL,3);

draw(y,x);

}

}

result=(stack*)malloc(sizeof(stack));

initstack(result);

s=(stack*)malloc(sizeof(stack));

cur=(pos*)malloc(sizeof(pos));

initstack(s);

cur-x=1;

cur-y=0;

cur-dir=0;

push(s,cur);

cur-x=1;

cur-y=1;

cur-dir=1;

do{

if(cur-x==9cur-y==8)

savepath(s,cur,result);

step(s,cur,result);

}while(!stackempty(s));

if(stackempty(result))

printf("no way available");

else{

int ch=0;

printf("following is the shortest path:\n");

while(!stackempty(result)){

pop(result,cur);

setfillstyle(SOLID_FILL,15);

draw(cur-y,cur-x);

if(ch5){

putchar('\n');

ch=0;

}

printf("(%d,%d,%d) ",cur-x,cur-y,cur-dir);

ch++;

}

}

printf("\n");

destroystack(s);

destroystack(result);

free(cur);

printf("Press any key to end");

while(!kbhit());

closegraph();

}

java迷宮圖形界面

這是我之前課程設計做的一個迷宮,Swing做的,發在javaeye的博客上了,有打包成jar的,安裝了jdk可以直接雙擊運行,有源碼,還有我寫的一個說明文檔,網址如下:

自己下載下吧,我就不給你發到郵箱了。


當前文章:java迷宮的代碼 java迷宮代碼解析
地址分享:http://www.xueling.net.cn/article/hhphje.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 少妇伦子伦精品无吗在线观看 | 披荆斩棘的哥哥第三季在线观看免费 | 久操视频在线看 | 久精品免费视频 | SAO货腿张开JI巴CAO死我 | 日韩1区2区3区 | 亚洲sm另类一区二区三区 | 九色精品国产蝌蚪 | 国产精品啪啪对白自拍 | 含着两个雪乳上下晃动人妻 | 把腿张开抹春药调教男男 | 国产91艳遇在线观看 | 国产综合色在线精品 | 日本极品a级片 | 精品少妇无码一区视频 | 激情视频一区二区三区 | 国产日韩精 | 成人无码区免费a片在线软件 | 五月天中文字幕av | 日本高清免费aaaaa大片视频 | 免费观看欧美日韩亚洲 | japan21xxxxhd日本妞 | 日本中文在线观看 | 国产日韩欧美另类 | av软件(永久免费) | 337p粉嫩日本欧洲亚福利 | 成年黄页网站大全免费 | 欧美四级片 | 中文字幕11 | 年轻的老师4 | 黄色一级免费观看 | 亚洲一区二区三区在线影院 | 欧美亚洲黄色 | 妹妹说有我这种哥哥真不幸短剧在线观看 | 女人18毛片A级毛片嫰阝 | 在线免费观看日本欧美 | 蜜芽亚洲AV无码一区二区三区 | 交换少妇隔壁呻吟 | 中国XXXX做受视频 | 精品一区国产日韩视频在线 | www日韩 |