广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 18086 个阅读者
 
<<   1   2  下页 >>(共 2 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
湛蓝威尼斯
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
文章表情[C/C++][求助] 请老大们帮忙~ 迷宫题
随机会有不同的地图~
走迷 ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



献花 x0 回到顶端 [楼 主] From:台湾教育部 | Posted:2005-11-11 08:43 |
aa 手机 会员卡 葫芦墩家族
个人文章 个人相簿 个人日记 个人地图 个人商品
特殊贡献奖 社区建设奖
头衔:            
站长
级别: 站长 该用户目前不上站
推文 x1964 鲜花 x5260
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

你是要用程式产生不同的迷宫还是用程式去走迷宫..? 表情


献花 x0 回到顶端 [1 楼] From:台湾台湾固网 | Posted:2005-11-11 11:13 |
湛蓝威尼斯
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

产生迷宫后~ 走迷宫~~
需有图~!
例如
100000
010000
001110
000011

要看到有在走~
表情


献花 x0 回到顶端 [2 楼] From:台湾教育部 | Posted:2005-11-11 21:14 |
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用湛蓝威尼斯于2005-11-11 21:14发表的 :
产生迷宫后~ 走迷宫~~
需有图~!
例如
100000
010000
.......

题目再给明确一点....
例如老师有规定阵列要多大还是有些什么限定的...
晚点写一个产生迷宫的参考程式给你 ....
走的部份这里有可以参考的程式 表情...


没东西可以抓
献花 x0 回到顶端 [3 楼] From:美国 | Posted:2005-11-12 09:50 |
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

刚花了点时间帮你把自动产生迷宫的程式写出来了 表情 .....
33*33的迷宫应该够你用了吧....
至于走的方法请你自己参考程式区有你要的写法....
下面我帮你加了些注解...
但也许对你会有些复杂....
请自己努力看懂吧....
不然就参考一些有关游戏设计的书吧....
我自己也有东西要做....
所以我没时间解释给你听 表情 ....

复制程式
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#define row 35
#define column 35

int maze[row][column];

void generatemaze(int x,int y)
{
       int direction;
       maze[x][y] |= 0x1;  // 标示此格已设定
    
       while (maze[x][y+2]==0 || maze[x+2][y]==0 || maze[x][y-2]==0 || maze[x-2][y]==0) // 如果不是外墙
    {
         direction = rand()%4+1;  // 决定下一个位置
         
               if (direction==1 && maze[x][y+2]==0) // 向右走
               {
                      maze[x][y+1] |= 0x1; // 拆掉右墙
                      generatemaze(x,y+2);
         }
         else if (direction==2 && maze[x-2][y]==0) // 向上走
               {
                      maze[x-1][y] |= 0x1; // 拆掉上墙
                      generatemaze(x-2,y);
         }
         else if (direction==3 && maze[x][y-2]==0) // 向左走
               {
                      maze[x][y-1] |= 0x1; // 拆掉右墙
                      generatemaze(x,y-2); 
         }
         else if (direction==4 && maze[x+2][y]==0) // 向下走
               {
                      maze[x+1][y] |= 0x1; // 拆掉上墙
                      generatemaze(x+2,y); 
         }
    }      
}
void main()
{
       int Si=2,Sj=2,Ei=row-3,Ej=column-3;
       int x,y;
       
       srand(time(NULL));
       
       for (x=0;x<row;x++)
       {
              for (y=0;y<column;y++)
              {
                     if (x==0 || y==0 || y==1 || x==row-2 || x==row-1 || y==column-1 )
                            maze[x][y]=2; // 设定外墙
            else
                            maze[x][y]=0;  // 初始迷宫内部
        }
    }
       
       generatemaze(Ei,Ej); // 产生迷宫
    maze[Si-1][Sj] |= 0x1; // 拆掉入口上墙
       maze[Ei][Ej+1] |= 0x1; // 拆掉出口右墙

       for(x=1; x<row-1; x++)
       {
              for(y=1; y<column-1; y++)
              {
                     if (maze[x][y] == 0 || maze[x][y] == 2)
                            cout<<"█"; 
            else
                            cout<<"  ";
              }
              cout<<endl;
       }
}
请自己排版吧...好懒 表情 .....


没东西可以抓
献花 x1 回到顶端 [4 楼] From:美国 | Posted:2005-11-16 11:09 |
湛蓝威尼斯
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

最近忙期中~ 忙报告~ 今天才有时间上来看~
看谢大大回答~ 我们作业是随机产生一个 1024*768 的地图~
老鼠走迷宫~ 从左上(入口)到右下(出口)走迷宫~
所以根据大大给的程式码~ 改个变数数据应该就可以 1024*768
非常感谢大大给的范例~ 走迷宫方式我再爬文~
研究不出来~ 再题出来问~!! 表情 表情


献花 x0 回到顶端 [5 楼] From:台湾教育部 | Posted:2005-11-28 21:24 |
rakish
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x18
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

书上的..刚好看到...
复制程式
int maze[7][10]={
 1,1,1,1,1,1,1,1,1,1,
 1,0,1,0,1,0,0,0,0,1,
 1,0,1,0,1,0,1,1,0,1,
 1,0,1,0,1,1,1,0,0,1,
 1,0,1,0,0,0,0,0,1,1,
 1,0,0,0,1,1,1,0,0,1,
 1,1,1,1,1,1,1,1,1,1};

int find(int x,int y){//入口
 if(x==1&&y==1){ //出口
  maze[x][y]=2;
  return 1;
 }else{
  if(maze[x][y]==0){
   maze[x][y]=2;  //表示走过
   if(( find(x-1,y)
    +find(x+1,y)
    +find(x,y+1)
    +find(x,y-1))>0)
    return 1;
   }else{
    maze[x][y]=0;
    return 0;
   }
  }else{
    return 0;
  }
 }
}

void main(){
 int i,j;
 find(2,5); //入口
}


人一但长大了
就发现世上的事不像想的那么好
你总是会一天天长大的
会看得越来越清楚
献花 x0 回到顶端 [6 楼] From:台湾 | Posted:2005-11-30 15:00 |
teexit
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

呵呵
大家都会在这边提供OTZ
一说到迷宫
我们最近也要写
听说教到POINT的时候还要我们写RPG的迷宫
听说还要打怪物
XD


献花 x0 回到顶端 [7 楼] From:台湾中华电信 | Posted:2005-11-30 21:22 |
湛蓝威尼斯
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

还要打怪物
好难唷~!! 表情


献花 x0 回到顶端 [8 楼] From:台湾中华电信 | Posted:2005-12-09 22:44 |
湛蓝威尼斯
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用唐老鸭于2005-11-16 11:09发表的 :
刚花了点时间帮你把自动产生迷宫的程式写出来了 表情 .....
33*33的迷宫应该够你用了吧....
至于走的方法请你自己参考程式区有你要的写法....
下面我帮你加了些注解...
但也许对你会有些复杂....
.......

唐老鸭大大~ 可以跟我讲 0x1 <== 这是? 是随便给的初始值吗~?
|= <== 这符号在您的程式码中的意义
我查到这 |= 符号的意义是 执行运算子之后设定
direction = rand()%4+1; // 决定下一个位置
rand()%4+1; <= 这大概低意思~
如果唐老鸭大大很忙低话~
有哪位大大可以告诉我呢~
拜托拜托~


献花 x0 回到顶端 [9 楼] From:台湾中华电信 | Posted:2005-12-13 02:34 |

<<   1   2  下页 >>(共 2 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.017534 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言