創作內容

5 GP

老鼠走迷宮

作者:仙狼│2017-02-01 18:57:33│巴幣:508│人氣:526
#include <iostream>
#include <cstdio>
#define MAX_Y 10
#define MAX_X 12

using namespace std;

int walk(int [MAX_Y][MAX_X],int ,int );
void print(int [MAX_Y][MAX_X]);

int step=0;

int main(int argc, char *argv[]){
int map[MAX_Y][MAX_X] = {1,1,1,1,1,1,1,1,1,1,1,1,  
            1,0,0,0,1,1,1,1,1,1,1,1,
            1,1,1,0,1,1,0,0,0,0,1,1,
            1,1,1,0,1,1,0,1,1,0,1,1,  
            1,1,1,0,0,0,0,1,1,0,1,1,  
            1,1,1,0,1,1,0,1,1,0,1,1,  
            1,1,1,0,1,1,0,1,1,0,1,1,  
            1,1,1,1,1,1,0,1,1,0,1,1,  
            1,1,0,0,0,0,0,0,1,0,0,1,  
            1,1,1,1,1,1,1,1,1,1,1,1};//1 is wall, 0 is road.
  printf("Map:\n");
  print(map);
  int sx=1,sy=1;
  walk(map,sx,sy);
  printf("\nResult:\n");
  print(map);
  printf("step count=%d",step);
   return 0;
}

int walk(int m[MAX_Y][MAX_X],int x, int y){
 if(m[y][x]==0 && m[MAX_Y-2][MAX_X-2]!=2){
  m[y][x]=2;//walking
  step++;
  if(m[MAX_Y-2][MAX_X-2]!=2){
   //printf("m[%d][%d]=%d ",y,x,m[y][x]);  //Test
   if((!(walk(m,x+1,y)==0  || //right
    walk(m,x,y+1)==0  ||//down
    walk(m,x-1,y)==0  ||//left
    walk(m,x,y-1)==0)) &&//up//if don't walking
    m[MAX_Y-2][MAX_X-2]!=2){
     m[y][x]=0;
     step--;
     return 1;
    }
  else
   return m[y][x];
  }
 }
}
void print(int m[MAX_Y][MAX_X]){
 for(int i=0;i<MAX_Y;i++){
  for(int j=0;j<MAX_X;j++){
   if(j!=0)
    printf(",");
   printf("%d",m[i][j]);
  }
  printf("\n");
 }
}

寫了好久,遞迴好難活用...
原始碼連結
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3465862
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 4 篇留言

養鮭魚
排版爛掉了QQ

02-01 19:09

仙狼
原來有人在看QQ 原本想說沒人看的02-01 19:59
仙狼
改好了 還有Idone的連結02-01 20:00
養鮭魚
可以去寫USACO 裡面第一章都是爆搜
[e16]

02-01 20:07

仙狼
是英文...最爛的科目[e3][e3]02-01 20:42
養鮭魚
有很多翻譯 別怕

02-01 20:49

仙狼
註冊翻了一下,看不懂...以後再用好了,找其他的來寫[e13]02-01 21:15
薯條控
<(_ _)>

02-02 08:05

我要留言提醒:您尚未登入,請先登入再留言

5喜歡★abab46abab 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:hello world!...

追蹤私訊切換新版閱覽

作品資料夾

jason990505各位巴友
歡迎各位巴友來我小屋觀看小說及文章 或單純交流認識!看更多我要大聲說1小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】