廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3088 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
abc10227
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][求助] 求助老鼠迷宮問題
編譯都可以過

要問的是 地圖是因為太大所以他一直跑嗎??


有試著把地圖改成8X8 他有跑出3種走法


可是我只要1種就好

他怎麼會一直跑哩??

#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int vert;
int horiz;
}offsets;
offsets move ={
{1,0},{-1,0},{0,-1},{0,1},{1,1},{-1,1},{1,-1},{-1,-1}
};


int maze={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1},
{1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,1,1},
{1,0,1,1,0,0,0,0,1,1,1,1,0,0,1,1,1},
..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容




獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2010-04-11 14:50 |
su5gsm
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x5
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

#include <stdio.h>
#include <stdlib.h>
typedef struct
{
    int vert;
    int horiz;
}offsets;
offsets move[8] ={
    {1,0},{-1,0},{0,-1},{0,1},{1,1},{-1,1},{1,-1},{-1,-1}
    };


int maze[13][17]={
        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
        {1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1},
        {1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,1,1},
        {1,0,1,1,0,0,0,0,1,1,1,1,0,0,1,1,1},
        {1,1,1,0,1,1,1,0,0,1,1,0,1,1,0,0,1},
        {1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,1},
        {1,0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1},
        {1,0,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1},
        {1,0,0,1,1,0,1,1,0,1,1,1,1,1,0,1,1},
        {1,1,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1},
        {1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,0,1},
        {1,0,1,0,0,1,1,1,1,1,0,1,1,1,1,0,1},
        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
     
        };   //迷宮
       
void print_ans()
{
  int i,j;
  for(i=0;i<13;i++)
    {
    for(j=0;j<17;j++) printf("%d ",maze[j]);
    printf("\n");
    }
    printf("\n");
  return ;  

}       //印答案
     
     
     
void findpath(int row, int col)
{
  int direct,next_row,next_col,k,l;
  direct = 0;
  maze[row][col]=2;
  while(direct<8)
  {
            next_row =row + move[direct].vert;
            next_col =col + move[direct].horiz;
    if(maze[next_row][next_col]==0)
    {
      maze[next_row][next_col] =2;
      if(next_row==11 && next_col==15) print_ans();
        else {
            findpath(next_row,next_col);
            maze[next_row][next_col] = 0;
            }
    }
      direct++;
    }    
}


int main() {
    findpath(1,1);
system("pause");
  }


獻花 x0 回到頂端 [1 樓] From:台灣中華電信 | Posted:2010-11-24 20:17 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.033523 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言