精华内容
下载资源
问答
  • 儿童迷宫图清晰可直接打印.doc
  • 基于安卓的儿童蚂蚁迷宫游戏的设计与研究.pdf
  • Task_Programmed_2 开发儿童应用程序,包括迷宫游戏。
  • 行业文档-设计装置-3--6岁儿童室内组合式益智迷宫玩教具
  • 教育科研-学习工具-3--6岁儿童室内组合式益智迷宫玩教具.zip
  • 迷宫进阶

    2021-02-25 17:50:53
    前言:今天比赛打完了以后有几个题目值得深思,是关于迷宫DFS的处理的。标记一下,便于以后复习。 文章目录迷宫进阶一、摆题目--迷宫进阶二、想法1.前期准备2.dfs()模块展示3.AC代码总结 迷宫进阶 提示:走迷宫的...

    前言:迷宫DFS的处理。标记一下,便于以后复习。


    迷宫进阶

    提示:走迷宫的模板昨天其实已经在博客发布了,今天的是一个进阶的处理,如果你想看昨天的模板,点这—> 贪吃蛇.


    一、摆题目–迷宫进阶

    经过思考蒜头君终于解决了怎么计算一个迷宫的最短路问题,于是蒜头君找到一个新的迷宫图,来验证自己是否真的会计算一个迷宫的最短路。

    为了检验自己计算的是否正确,蒜头君特邀你一起来计算。

    输入格式
    第一行输入两个整数 nn 和 mm,表示这是一个 n×m 的迷宫。

    接下来的输入一个 nn 行 mm 列的迷宫。其中’@‘表示蒜头君的位置,’#‘表示墙,蒜头君无法通过,’.‘表示路,蒜头君可以通过’.‘移动,所有在迷宫最外围的’.'都表示迷宫的出口(蒜头君每次只能移动到四个与他相邻的位置——上,下,左,右)。

    输出格式
    输出整数,表示蒜头君逃出迷宫的最少步数,如果蒜头君无法逃出迷宫输出 -1−1。

    数据范围
    1 \le n,m \le 151≤n,m≤15。

    输出时每行末尾的多余空格,不影响答案正确性

    样例输入1
    9 13
    #############
    #@..........#
    #####.#.#.#.#
    #...........#
    #.#.#.#.#.#.#
    #.#.......#.#
    #.#.#.#.#.#.#
    #...........#
    
    样例输出1
    11
    样例输入2
    4 6
    #.####
    #.#.##
    #...@#
    ######
    样例输出2
    5
    

    二、想法

    其实看到这个题目我是很兴奋的,估计是只要使用DFS或者BFS模板一套就解决的,后来仔细读题发现这个是要走出迷宫的,也就是说弹出条件是走到墙里面,而且墙是一个’.’,这是第一个区别,第二个就是输出最短的步数,所以会看到后边引入了dis数组,协助解决这个问题

    1.前期准备

    const int INF = 0x3f3f3f3f;
    const int maxn = 1005;
    int dx[]={1,0,-1,0},dy[]={0,1,0,-1};
    //这里其实可以建一个pair来解决,当然结构体适合初学者使用,重点就是要存储每个节点的x,y的坐标
    typedef struct node{
        int x,y;
    }P;
    int n,m;
    int xs,ys;
    char mp[maxn][maxn];
    int dis[maxn][maxn];
    int ans;
    

    2.dfs()模块展示

    代码如下(示例):

    int bfs()
    {
    	//初始化将每个点的距离设置为无穷大
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                dis[i][j]=INF;
    	
        queue<P>que;
        que.push(P{xs,ys});
        dis[xs][ys] = 0;
        //确保que在未空之前都能把里面的数据跑完
        while(!que.empty())
        {
            P p = que.front();
            que.pop();
            //跑四个情况,上下左右
            for(int i=0;i<4;i++)
            {
                int h = p.x + dx[i];
                int l = p.y + dy[i];
                if(h>=0&&l>=0&&h<n&&l<m&&mp[h][l]!='#'&&dis[h][l]==INF)
                {
                    que.push(P{h,l});
                    //距离在原来的基础上+1,也就是走了一步
                    dis[h][l] = dis[p.x][p.y] + 1,这样输出的时候我们只用输出最后一个
                }
                //判断弹出条件,走到墙里头了(奇怪的比喻)
                if(mp[h][l]=='.'&&(h==0||l==0||h==n-1||l==m-1)) {
                    ans = dis[h][l];
                    return ans;
                }
            }
    
        }
        //如果在que等于空了以后还没跳出说明走不到终点,也就是找不到出路,那就直接返回INF
        return INF;
    
    }
    

    3.AC代码

    代码如下(示例):

    #include<bits/stdc++.h>
    using namespace std;
    const int INF = 0x3f3f3f3f;
    const int maxn = 1005;
    int dx[]={1,0,-1,0},dy[]={0,1,0,-1};
    typedef struct node{
        int x,y;
    }P;
    int n,m;
    int xs,ys;
    char mp[maxn][maxn];
    int dis[maxn][maxn];
    int ans;
    int bfs()
    {
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                dis[i][j]=INF;
    
        queue<P>que;
        que.push(P{xs,ys});
        dis[xs][ys] = 0;
        while(!que.empty())
        {
            P p = que.front();
            que.pop();
            for(int i=0;i<4;i++)
            {
                int h = p.x + dx[i];
                int l = p.y + dy[i];
                if(h>=0&&l>=0&&h<n&&l<m&&mp[h][l]!='#'&&dis[h][l]==INF)
                {
                    que.push(P{h,l});
                    dis[h][l] = dis[p.x][p.y] + 1;
                }
                //判断弹出条件
                if(mp[h][l]=='.'&&(h==0||l==0||h==n-1||l==m-1)) {
                    ans = dis[h][l];
                    return ans;
                }
            }
    
        }
        return INF;
    
    }
    int main(){
        while(~scanf("%d%d",&n,&m))
        {
            for(int i=0;i<n;i++)
               scanf("%s",mp[i]);
    
    		//寻找起点
            for(int i=0;i<n;i++)
                for(int j=0;j<m;j++)
                    if(mp[i][j]=='@')
                    {
                        xs = i;
                        ys = j;
                        break;
                    }
    
            if(bfs()>=INF)cout << "-1" << endl;
            else cout << bfs() << endl;
        }
        return 0;
    }
    
    

    总结

    总而言之,其实bfs这类搜索题都有特点,但是万变不离其宗 这里总结一下用法: 1.存数据 2.找起点 3.设置bfs 4.将初始数据推入队列 5.开始队列循环,设置结束条件 6.推出
    展开全文
  • 该项目旨在通过在2D图形环境中开发各种基于仓鼠的游戏来特别支持儿童学习C编程语言。 它被设计用于教学课程,并包含一个可能的教案(目前仅以德语提供)。 特别感谢Oliver Saalfeld绘制纹理图形。 请注意,该软件...
  • 精品教育教学资料
  • 儿童智力游戏的一种,同时也锻炼人的思维能力。当我们在一个迷宫中时怎样避免重复的走一些路,避免怎样走投无路,无路可走,什么样的迷宫可走,怎样就知道迷宫无出口了,通过回溯法帮我们解答,动脑子想办法,看看...
  • 专为devoxx4kids研讨会设计,旨在向孩子们展示如何进行目标编程以及了解他们在虚拟现实中的迷宫是什么样的 甚至还有一个编辑器,您可以在其中在线破解迷宫 :right_arrow: 和...(鼓卷)-最新版本支持多人游戏!...
  • 儿童绘本故事PPT下载:《迷宫游戏》PPT; 迷宫,在这里既是一个实在的游戏,又是一个极具意义的象征。越是强烈的情感,越是实实在在,而我们越是无法看透它,因为深陷其中。站在入口处,从上面、从 外面看,迷宫...
  • 迷宫小游戏

    千次阅读 2018-11-30 19:05:52
    想法:设计一个迷宫,走出迷宫,获得奖励。 思路: 1.首先要有个游戏开始界面,主要就是显示一些东西。 printf("\n\t\t\t"); for(int i = 0;i &lt; 20;i ++){ printf("-"); //输出...

    想法:设计一个迷宫,走出迷宫,获得奖励。

    思路:

    1.首先要有个游戏开始界面,主要就是显示一些东西。

        printf("\n\t\t\t");
        for(int i = 0;i < 20;i ++){
            printf("-");  //输出界面上界
        }
        printf("\n");
        printf("The * is the symbol of you.\n");  //*表示你所处的位置
        printf("You can press (up,down,left,right) to move the (*).\n");  //你可以按上、下、左右键控制移动
        printf("If your keyboard doesn't have these buttons,you can also press (w,s,a,d) to move the (*).\n");  //也可以按w/s/a/d控制移动
        printf("Please press Enter to enter the maze.\n");  //请按回车键进入游戏界面
        getch();  //don't show in the screen,不回显
        system("cls");  //清屏

    2.画迷宫。4表示*,输出*;0表示道路,输出空格;1表示墙,输出#。在这之前要对迷宫数组进行初始化,这里我用的迷宫数组是参照的网上的一个。

                int maze[20][20] = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
    		                {4,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1},
    		                {1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,1},
    		                {1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,1,0,0,1},
    		                {1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,0,0,1},
    		                {1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1},
    		                {1,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,1},
    		                {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1},
    		                {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1},
    		                {1,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1},
    		                {1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1},
    		                {1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1},
    		                {1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1},
    		                {1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1},
    		                {1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,1},
    		                {1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1},
    		                {1,0,0,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1},
    		                {1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1},
    		                {1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0},
    		                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};

    把迷宫打印出来:

    //画迷宫
    void draw(int maze[20][20]){
        int i,j;
        for(i = 0;i < 20;i ++){
            printf("\t\t\t");                          //display int the center of the screen
            for(j = 0;j < 20;j ++){
                if(maze[i][j] == 4) printf("*");       //4---you
                else if(maze[i][j] == 0) printf(" ");  //0---road
                else printf("#");                      //1---wall
            }
            printf("\n");
        }
    }

    3.移动。

    初始化a和b,a表示*所在的行坐标,b表示*所在的列坐标。用了do while循环。每次用getch()读入一个按键,然后判断*当前位置的上下左右四个位置,如果不是1,表示不是墙,有路可以走,记得要break。这里有一个注意点,就是判断完一个if之后,如果不符合条件,是不会break的,因为用的是switch,所以如果对应到case,不符合条件,会跳到下一个if,所以会出现“下边是墙,然后你按→键会神奇地出现往左移的情况”。为了避免这种情况,所以要在if外面再加个break,这样就好啦。每移动一次,就用cls清一下屏。最后*如果出现在迷宫出口,就表示成功,退出并且输出“儿童节快乐”。

    //移动
    void move(int maze[20][20]){
        int a = 1;  //row
        int b = 0;  //col
        char num;
        do{
            num = getch();
            //only change four locations of *
            switch(num){
                case 72:  //↑的ASCII
                case 87:  //大写W的ASCII
                case 119: //小写w的ASCII
                if(maze[a-1][b] != 1){  //up
                    swap(maze[a][b],maze[a-1][b]);
                    a --;
                    system("cls");  //clear the screen
                    draw(maze);
                    break;
                }
                break;
                case 80:
                case 83:
                case 115:
                if(maze[a+1][b] != 1){  //down
                    swap(maze[a+1][b],maze[a][b]);
                    a ++;
                    system("cls");
                    draw(maze);
                    break;
                }
                break;
                case 75:
                case 65:
                case 97:
                if(maze[a][b-1] != 1){  //left
                    swap(maze[a][b-1],maze[a][b]);
                    b --;
                    system("cls");
                    draw(maze);
                    break;
                }
                break;
                case 77:
                case 68:
                case 100:
                if(maze[a][b+1] != 1){  //right
                    swap(maze[a][b+1],maze[a][b]);
                    b ++;
                    system("cls");
                    draw(maze);
                    break;
                }
                break;
                default:break;
            }
            if(maze[18][19] == 4){
                printf("\n\t\t    Happy Children's Day to You!\n\n\n");
                Sleep(2000);  //delay
                break;
            }
        }while(1);
    }

    4.这里我还美化了一下程序,改了界面的字体颜色,插入了一个BGM

    改字体:我看的百度经验用了一行代码

    system("color 0D");  //color

    插入BGM:BGM要和exe文件放在同一个文件夹里,另外,PlaySound函数只支持wav,我用mp3试了半天没成功。

    PlaySound("1.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);

    5.最后两个注意点:

    一:编译的时候,要进行链接,因为用到了winmm文件,所以要链接。打开菜单栏“项目”选项,选择“构建选项”,进入界面,选择链接器设置,添加winmm进行链接。

    二:本着送给同学作为儿童节礼物,结果把exe和BGM,还有使用说明压缩打包发给同学,反映打不开,说缺少dll文件(有些同学不学编程,电脑里没编程软件)。

    上网查了一下,说要进行静态链接-static-libgcc。但是我用Code Blocks进行链接器设置的时候,一直没成功,不知道为啥。觉得要凉了。突然灵机一动,把dll文件也发给他们不就好了嘛。于是加进打包文件里,果然成功了。

    完整程序:

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>               //get the ASCII of up, down, left and right
    #include<windows.h>
    #include<mmsystem.h>
    #pragma comment(lib,"winmm.lib") //PlaySound()
    #include<time.h>
    #include<algorithm>
    using namespace std;
    
    
    //画迷宫
    void draw(int maze[20][20]){
        int i,j;
        for(i = 0;i < 20;i ++){
            printf("\t\t\t");                          //display int the center of the screen
            for(j = 0;j < 20;j ++){
                if(maze[i][j] == 4) printf("*");       //4---you
                else if(maze[i][j] == 0) printf(" ");  //0---road
                else printf("#");                      //1---wall
            }
            printf("\n");
        }
    }
    
    
    //移动
    void move(int maze[20][20]){
        int a = 1;  //row
        int b = 0;  //col
        char num;
        do{
            num = getch();
            //only change four locations of *
            switch(num){
                case 72:  //↑的ASCII
                case 87:  //大写W的ASCII
                case 119: //小写w的ASCII
                if(maze[a-1][b] != 1){  //up
                    swap(maze[a][b],maze[a-1][b]);
                    a --;
                    system("cls");  //clear the screen
                    draw(maze);
                    break;
                }
                break;
                case 80:
                case 83:
                case 115:
                if(maze[a+1][b] != 1){  //down
                    swap(maze[a+1][b],maze[a][b]);
                    a ++;
                    system("cls");
                    draw(maze);
                    break;
                }
                break;
                case 75:
                case 65:
                case 97:
                if(maze[a][b-1] != 1){  //left
                    swap(maze[a][b-1],maze[a][b]);
                    b --;
                    system("cls");
                    draw(maze);
                    break;
                }
                break;
                case 77:
                case 68:
                case 100:
                if(maze[a][b+1] != 1){  //right
                    swap(maze[a][b+1],maze[a][b]);
                    b ++;
                    system("cls");
                    draw(maze);
                    break;
                }
                break;
                default:break;
            }
            if(maze[18][19] == 4){
                printf("\n\t\t    Happy Children's Day to You!\n\n\n");
                Sleep(2000);  //delay
                break;
            }
        }while(1);
    }
    
    
    
    int main(){
    	system("color 0D");  //color
    	//system("pause");
    	PlaySound("1.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);
    	//mciSendString("open D:\\Code\\一时兴起\\1.wav",NULL,0,NULL);  //这种方法没有成功
            int maze[20][20] = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
    		                {4,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1},
    		                {1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,1},
    		                {1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,1,0,0,1},
    		                {1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,0,0,1},
    		                {1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1},
    		                {1,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,1},
    		                {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1},
    		                {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1},
    		                {1,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1},
    		                {1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1},
    		                {1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1},
    		                {1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1},
    		                {1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1},
    		                {1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,1},
    		                {1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1},
    		                {1,0,0,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1},
    		                {1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1},
    		                {1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0},
    		                {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
        printf("\n\t\t\t");
        for(int i = 0;i < 20;i ++){
            printf("-");  //输出界面上界
        }
        printf("\n");
        printf("The * is the symbol of you.\n");  //*表示你所处的位置
        printf("You can press (up,down,left,right) to move the (*).\n");  //你可以按上、下、左右键控制移动
        printf("If your keyboard doesn't have these buttons,you can also press (w,s,a,d) to move the (*).\n");  //也可以按w/s/a/d控制移动
        printf("Please press Enter to enter the maze.\n");  //请按回车键进入游戏界面
        getch();  //don't show in the screen,不回显
        system("cls");  //清屏
        draw(maze);
        move(maze);
        return 0;
    }

    效果展示:

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    展开全文
  • 上篇的文章-------每日一练 28 语文试卷中惊现数学问题?...迷宫书一直是我们家娃的最爱,乘着我翻出库存的迷宫书写这篇文章的时候,转头的这会儿,孩子早就抱去已经开始在玩了。孩子对未知的好奇,是可以吸...

    1726f468919ede114b71684352004b24.png

    上篇的文章-------

    每日一练 28 语文试卷中惊现数学问题?!(文理什么时候都是一家。)​mp.weixin.qq.com
    37f36420e3bd2fda9f366f49d94baa0a.png

    提到了方位感是数学里很重要的一项技能,同时分享了几个锻炼方位感的小游戏,其中就包括了走迷宫。今天就想推荐几套个人觉得很不错的迷宫游戏书。

    迷宫书一直是我们家娃的最爱,乘着我翻出库存的迷宫书写这篇文章的时候,转头的这会儿,孩子早就抱去已经开始在玩了。

    9bf407486c6adfad097e6bb88f173904.png

    孩子对未知的好奇,是可以吸引到他们一直不停的探索出答案。迷宫书里弯弯绕绕的线路他们来说就是一次极好的探险游戏。

    玩迷宫游戏的好处

    锻炼专注力:想要找到迷宫里面的出路就必须不能走神,眼睛和大脑同时作用。用眼睛跟着选择的路线前进,用手指正方向保证不能跳行,走错路还会绕回到之前起点。遇到此路不通时还要回到之前的岔路上,再试一次。锻炼的是孩子视觉跟踪能力,在之后快速阅读书本内容时更容易做到一目十行,用眼睛扫视文字内容,提高阅读速度。

    精细运动控制:

    在走迷宫的时候,要求孩子具备一定的精细动作能力,有的孩子喜欢用线条标注路线。提前锻练好了画线的技能,对以后的书写会是很大帮助。

    对我们家娃是就是保证书上必须没有一点痕迹。所以每次就是用手指头描一遍线路。

    遇上比较细的通路,也会换成铅笔头来指挥线路。不管怎么样,通过大脑中的辅助线来走迷宫也是进阶的标配技能。

    b7f86ddd92a8b1553f044d2a15e16da3.png

    解决问题能力:

    高阶段的迷宫设计是很有挑战性的,需要不断的试错过程。尤其是只有唯一正确路线的迷宫图,运气不好的时候可能要试过所有的不正确道路,最后才剩下一条对的。还可能遇到对的路线路里还包括了好几个小岔路需要选择。孩子一步步排除错误过程,需要极大耐心,在错误中慢慢寻找到正确的路,对孩子的情绪处理也是个很大的挑战。

    培养自信心:

    玩迷宫书的时候,慢慢会遇到不同的设计和风格,随着年龄的上升难度也会不断加大。知名的公文式教育迷宫系列就是按照难度逐渐上升的。最后一本的迷宫难度,几乎大人看了都头晕,孩子却一发不可收拾。还会记下每次完成的时间,看看自己越来越快的速度,成就感油然而生。

    所以其实孩子玩迷宫也需要和年龄搭配起来的,找到配套合适的素材,再慢慢引导孩子玩起来。

    学龄前的孩子更多做的平面的迷宫游戏,小学后可以尝试一些3D立体图形迷宫。类似这样的迷宫,孩子需要掌握空间思维能力,在大脑中模拟出可行的线路,排除图片里其他的干扰。

    如何和孩子玩迷宫游戏?

    3周岁前低龄的宝宝,对事物的探索还是在感官上。多运用家里的桌椅和毛毯类的用品让孩子钻和爬,寻找空间感知的不同。一个大纸箱就能孩子玩得很high,还能想出各种花样玩法。对于低幼的孩子来说,平面的图像并不适合他们的感官,通过空间和高度的变化,更容易让他们产生对位置的学习。

    但很多DIY 的管道游戏也是很有意思的玩法,结合日常的玩具或生活用品就可以玩起来。

    fadeebf3b88039a553cb86bdd04b19d8.png

    3-6岁的孩子,可以做开始提供平面的图形迷宫。

    由最初的直线距离多岔道少,慢慢过渡到弯道加多,里面有更多选择的路线。还可以鼓励孩子自己动手绘制一幅迷宫来让其他人玩。

    按照孩子的年龄不断升级难度,但无论什么难度的迷宫,目标就是要找到一条路径。

    常用办法是起点玩法或终点倒推法,中间遇上难关了,怎么也找不到合适的出路,可以从终点倒退回来找。

    在不同的岔路上做出记号,叉号表示此路不通,原点表示可以前进,运用排除法不断地递进发现所有可能的选择,剩下最后一条就是正确的线路。

    高级难度的迷宫,更要大脑的专注力,指挥手眼共同协作,也是相当烧脑的一项益智活动。遇上特别难的关卡也需要注意让眼睛休息一下。

    迷宫书籍推荐:

    b2bcd9a5995f5cde998d22d510349870.png

    公文式教育迷宫书套装

    这套是最早买来玩的一套书,全篇是黑白线条的组合,没有多余的色彩。比较适合低龄孩子,有不同的难度可以选择。看孩子完成度和兴趣程度。

    到最后一本的难度其实并不小,大人看了都会觉得有困难,选择上要看好难度。

    《尤斯伯恩英国幼儿经典情景大迷宫-三册》

    1e21026686e139e5ff105a0b5cfa043e.png

    ★ 一套美到让你不想走出来的迷宫书

    ★ 从简单到复杂,从平面到立体,从古代到现代,从海洋到森林,从棋盘到星球

    ★ 超过150个迷宫场景,带你一起慢慢着“迷”

    ★ Usborne出版社经典作品

    这本书每一幅插画都值得仔细品味,色彩和主题都很绚烂,难度也不小。各种场景的脑洞都很大,整本书尺幅也不小很适合孩子细细研究很久。

    c925ec4591a20d1ad8c4c1306c741d13.png

    儿童世界历史迷宫大冒险全3册

    ★ 不同视觉的训练,锻炼孩子的立体思维能力!

    ★ 有趣的逻辑思维训练,开启孩子活跃的大脑!

    ★ 精彩的故事谜题训练,激发孩子的语言表达能力!

    ★深具现场感的迷宫插图,揭开古埃及金字塔、中世纪城堡、危险海盗船的神秘面纱,精彩的历史故事、名词解释、关键词索引,让人记忆深刻。是儿童学习世界历史知识的入门宝典。

    ★以故事代入游戏,让孩子在游戏中获取知识,这注定不是一套平凡的游戏书。

    3b5a3a126da3a30f2465b1019aa88fab.png

    这套书类似一个大型的游戏迷宫,里面有很多任务,故事本身的驱动性更加吸引孩子找寻答案,这套书是还立体型迷宫,适合孩子在大脑中建立空间模型,旁边的插画还有很多科普的历史小知识,呈现的三个主题都是最能激发孩子兴趣的内容。分别为《勇闯金字塔》、《夺宝海盗船》、《激战古城堡》。

    26ebafdd8d1e9905a6f35c9a170eb7b4.png

    通过故事的形式将你带入游戏,置身其中。拯救被困在金字塔的父亲、从可恶的海盗手中夺回属于自己的财宝、以及围攻城堡,拯救生活在苦难中的人民。书中的建筑物与绘画风格,均尽量呈现真实的历史风貌。

    法国系列科普迷宫书:就是出不去(全三册)人体/太空/地下

    没有比“人体、太空、地下”这三大主题,更适合做迷宫书的内容!

    人体的内部结构、太空的神秘未知、地下世界的蜿蜒曲折,呈现这些事物本身,就很像一个迷宫。比如拿出一副人体内部构造图,神经网络、血管、肠道等系统,都像极了迷宫;太空中星体的运行轨道、未知空间的神秘莫测,这与迷宫的特点紧密相连;地下世界就更不用说了,比如一些生活在地下的生物,他们挖出的栖息所,就是一座天然的迷宫所在。

    e7d075e7262cb35d39bdd4c88e1a5822.gif

    “就是出不去”系列迷宫书的形式是依托主题而存在的,不是为了“游戏”而生成的“迷宫”,这是这套书区别于其他迷宫书的大特点。

    7cdd5479eac279d71ef28a93cc947f7b.gif

    它不单纯为了消耗孩子的时间而存在。难度也大幅提升,多条道路通向出口,有岔路、有死路。既考察孩子的观察力、规划力,又锻炼了孩子的耐心。

    是不是真的“出不去”,试一次你就知道啦!

    除了书籍的推荐,我同时准备了两套国外的可打印版本迷宫游戏,有黑白线条,也有一版彩色图片版。

    843896576b419347e9e0cd0a408d69fa.png

    中级难度

    aa35ac2087fab52177d2fada405a3ce4.png

    初级难度
    有感兴趣的,在公众号:安家妈妈的小小学堂 消息一栏输入:迷宫 即可获取网盘下载链接。

    我们总是希望能让孩子在学中玩、玩中学,如何通过更多自发性的学习机会,引发孩子探究的兴趣,是所有教育中最先应该做到的第一步。

    祝大家和孩子玩的开心!

    6e37a02393a307531550c40bacb53fa7.gif

    带着孩子一起玩好玩的事吧!

    谢谢你的关注。

    7d2c714a4d8d9e3ae2b27e7a533f3771.png
    展开全文
  • 迷宫小游戏2.0版本

    2018-11-30 19:05:56
    控制“*”在迷宫中移动,走出迷宫即可获得儿童节祝福。 “#”表示墙,空格表示路。 游戏总共三个BGM,分别是1——ninelie。2——Dream。3——光辉岁月。 你可以自己选择BGM。 游戏总共三个难度,分别是简单,普...

    操作说明:
            这是一款迷宫小游戏。
    请选择使用电脑打开。
    按“上”、“下”、“左”、“右”键
    或者“w”、“s”、“a”、“d”(大小写均可,但是要在英文状态下)
    控制“*”在迷宫中移动,走出迷宫即可获得儿童节祝福。
    “#”表示墙,空格表示路。
    游戏总共三个BGM,分别是1——ninelie。2——Dream。3——光辉岁月。
    你可以自己选择BGM。
    游戏总共三个难度,分别是简单,普通,困难。
    你可以自己选择游戏难度。
    简单模式和普通模式都是20*20的地图,起点“*”在左上角。
    困难模式是43*43的地图,起点在右上角(大概第九行最右的位置)怕你们看花了找不到起点。
    一个模式结束之后,可以等待一两秒,返回到主界面,继续选择新的BGM和新的模式,不会退出。
    如果想要退出,可以在选择BGM或者选择模式的时候输入0,即可退出游戏。

    更新日志:
    此版本为2.0版本。
    增加了不止一个BGM,暂时只支持1-3,共三个BGM。
    你也可以自己添加喜欢的音乐作为BGM,但是注意只支持wav格式,且命名要命名为1或2或3。
    增加了不止一个地图,暂时只有简单、普通、困难三种模式,共三张地图。
    增加了一张地图走完,不退出程序的功能。

    建议:移动的时候移慢一点,多听点BGM_(:з」∠)_

     

     

    一点吐槽:每移动一次,屏幕都会闪一下,特别是困难模式,如果引起不适,请选择关闭游戏。

     

     

    选择BGM功能:

        printf("Please choose the BGM, you can choose 1,2,3 or 0--exit:");  //choose BGM
        scanf("%d",&bgm);
        switch(bgm){
            case 1:PlaySound("1.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);break;
            case 2:PlaySound("2.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);break;
            case 3:PlaySound("3.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);break;
            case 0:return;break;
            default:break;
        }

    选择游戏难度功能:

        printf("Please choose the level of the maze, you can choose 1--easy,2--ordinary,3--hard,0--exit,please input the number:");
        scanf("%d",&level);
        if(bgm != 0) printf("Please press Enter to enter the maze.\n");  //请按回车键进入游戏界面
        getch();  //don't show in the screen,不回显
        system("cls");  //清屏
        switch(level){
            case 1:draw1(maze1);move1(maze1);break;
            case 2:draw1(maze2);move1(maze2);break;
            case 3:draw3(maze3);move3(maze3);break;
            case 0:return;break;
            default:break;
        }

    将游戏主界面写在了menu子函数里,这样就可以实现迷宫走完回到主界面,继续游戏,而不是退出。

    //menu
    void menu(){
        int bgm,level;
        system("color 0D");  //color
    	//system("pause");
    	//PlaySound("1.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);
    	//mciSendString("open D:\\Code\\1.wav",NULL,0,NULL);
        printf("\n\t\t\t");
        for(int i = 0;i < 20;i ++){
            printf("-");  //输出界面上界
        }
        printf("\n");
        printf("The * is the symbol of you.\n");  //*表示你所处的位置
        printf("You can press (up,down,left,right) to move the (*).\n");  //你可以按上、下、左右键控制移动
        printf("If your keyboard doesn't have these buttons,you can also press (w,s,a,d) to move the (*).\n");  //也可以按w/s/a/d控制移动
        printf("Please choose the BGM, you can choose 1,2,3 or 0--exit:");  //choose BGM
        scanf("%d",&bgm);
        switch(bgm){
            case 1:PlaySound("1.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);break;
            case 2:PlaySound("2.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);break;
            case 3:PlaySound("3.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);break;
            case 0:return;break;
            default:break;
        }
        printf("Please choose the level of the maze, you can choose 1--easy,2--ordinary,3--hard,0--exit,please input the number:");
        scanf("%d",&level);
        if(bgm != 0) printf("Please press Enter to enter the maze.\n");  //请按回车键进入游戏界面
        getch();  //don't show in the screen,不回显
        system("cls");  //清屏
        switch(level){
            case 1:draw1(maze1);move1(maze1);break;
            case 2:draw1(maze2);move1(maze2);break;
            case 3:draw3(maze3);move3(maze3);break;
            case 0:return;break;
            default:break;
        }
    }

    主程序:

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>               //get the ASCII of up, down, left and right
    #include<windows.h>
    #include<mmsystem.h>
    #pragma comment(lib,"winmm.lib") //PlaySound()
    #include<time.h>
    #include<algorithm>
    using namespace std;
    
    void draw1(int maze[20][20]);
    void draw3(int maze[43][43]);
    void menu();
    void move1(int maze[20][20]);
    void move3(int maze[43][43]);
    
    
    //easy
    int maze1[20][20] = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
    		            {4,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1},
    		            {1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,1},
    		            {1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,1,0,0,1},
    		            {1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,0,0,1},
    		            {1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1},
    		            {1,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,1},
    		            {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1},
    		            {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1},
    		            {1,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1},
    		            {1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1},
    		            {1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1},
    		            {1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1},
    		            {1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1},
    		            {1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,1},
    		            {1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1},
    		            {1,0,0,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1},
    		            {1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1},
    		            {1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0},
    		            {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
    
    
    //ordinary
    int maze2[20][20] = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
    		            {4,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1},
    		            {1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,1},
    		            {1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,1,0,0,1},
    		            {1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,0,0,1},
    		            {1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1},
    		            {1,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1},
    		            {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1},
    		            {1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1},
    		            {1,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1},
    		            {1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1},
    		            {1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1},
    		            {1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1},
    		            {1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1},
    		            {1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,1},
    		            {1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1},
    		            {1,0,0,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1},
    		            {1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1},
    		            {1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0},
    		            {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
    
    
    //hard
    int maze3[43][43] = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                         {1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                         {1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,1},
                         {1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1},
                         {1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,0,0,1},
                         {1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1},
                         {1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1},
                         {1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1},
                         {1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1},
                         {0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,4},
                         {1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,0,0,1,0,1,0,1,0,1,0,1},
                         {1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,1},
                         {1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,0,1},
                         {1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1},
                         {1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1},
                         {1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1},
                         {1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,0,1},
                         {1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,1},
                         {1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,0,1},
                         {1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,1},
                         {1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1},
                         {1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1},
                         {1,0,0,0,1,1,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1},
                         {1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1},
                         {1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1},
                         {1,1,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1,1,1,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,0,1},
                         {1,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,1},
                         {1,0,1,0,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,1},
                         {1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,1},
                         {1,0,1,0,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,0,1},
                         {1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1},
                         {1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,0,1},
                         {1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,1},
                         {1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1,0,0,1},
                         {1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1},
                         {1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,1,0,0,1},
                         {1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1},
                         {1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,1},
                         {1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1},
                         {1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1},
                         {1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                         {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
    
    
    //画迷宫1
    void draw1(int maze[20][20]){
        int i,j;
        for(i = 0;i < 20;i ++){
            printf("\t\t\t");                          //display int the center of the screen
            for(j = 0;j < 20;j ++){
                if(maze[i][j] == 4) printf("*");       //4---you
                else if(maze[i][j] == 0) printf(" ");  //0---road
                else printf("#");                      //1---wall
            }
            printf("\n");
        }
    }
    
    
    //画迷宫3
    void draw3(int maze[43][43]){
        int i,j;
        for(i = 0;i < 43;i ++){
            printf("\t\t\t");                          //display int the center of the screen
            for(j = 0;j < 43;j ++){
                if(maze[i][j] == 4) printf("*");       //4---you
                else if(maze[i][j] == 0) printf(" ");  //0---road
                else printf("#");                      //1---wall
            }
            printf("\n");
        }
    }
    
    
    //menu
    void menu(){
        int bgm,level;
    	system("color 0D");  //color
    	//system("pause");
    	//PlaySound("1.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);
    	//mciSendString("open D:\\Code\\1.wav",NULL,0,NULL);
        printf("\n\t\t\t");
        for(int i = 0;i < 20;i ++){
            printf("-");  //输出界面上界
        }
        printf("\n");
        printf("The * is the symbol of you.\n");  //*表示你所处的位置
        printf("You can press (up,down,left,right) to move the (*).\n");  //你可以按上、下、左右键控制移动
        printf("If your keyboard doesn't have these buttons,you can also press (w,s,a,d) to move the (*).\n");  //也可以按w/s/a/d控制移动
        printf("Please choose the BGM, you can choose 1,2,3 or 0--exit:");  //choose BGM
        scanf("%d",&bgm);
        switch(bgm){
            case 1:PlaySound("1.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);break;
            case 2:PlaySound("2.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);break;
            case 3:PlaySound("3.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);break;
            case 0:return;break;
            default:break;
        }
        printf("Please choose the level of the maze, you can choose 1--easy,2--ordinary,3--hard,0--exit,please input the number:");
        scanf("%d",&level);
        if(bgm != 0) printf("Please press Enter to enter the maze.\n");  //请按回车键进入游戏界面
        getch();  //don't show in the screen,不回显
        system("cls");  //清屏
        switch(level){
            case 1:draw1(maze1);move1(maze1);break;
            case 2:draw1(maze2);move1(maze2);break;
            case 3:draw3(maze3);move3(maze3);break;
            case 0:return;break;
            default:break;
        }
    }
    
    
    //移动1
    void move1(int maze[20][20]){
        int a = 1;  //row
        int b = 0;  //col
        char num;
        do{
            num = getch();
            //only change four locations of *
            switch(num){
                case 72:  //↑的ASCII
                case 87:  //大写W的ASCII
                case 119: //小写w的ASCII
                if(maze[a-1][b] != 1){  //up
                    swap(maze[a][b],maze[a-1][b]);
                    a --;
                    system("cls");  //clear the screen
                    draw1(maze);
                    break;
                }
                break;
                case 80:
                case 83:
                case 115:
                if(maze[a+1][b] != 1){  //down
                    swap(maze[a+1][b],maze[a][b]);
                    a ++;
                    system("cls");
                    draw1(maze);
                    break;
                }
                break;
                case 75:
                case 65:
                case 97:
                if(maze[a][b-1] != 1){  //left
                    swap(maze[a][b-1],maze[a][b]);
                    b --;
                    system("cls");
                    draw1(maze);
                    break;
                }
                break;
                case 77:
                case 68:
                case 100:
                if(maze[a][b+1] != 1){  //right
                    swap(maze[a][b+1],maze[a][b]);
                    b ++;
                    system("cls");
                    draw1(maze);
                    break;
                }
                break;
                default:break;
            }
            if(maze[18][19] == 4){
                printf("\n\t\t    Happy Children's Day to you!\n\n\n");
                Sleep(2000);  //delay
                //if(++n != 1) //printf("Please press Enter to return the maze.\n");  //请按回车键返回主界面
                //Sleep(2000);  //delay
                break;
            }
        }while(1);
        system("cls");
        menu();
    }
    
    
    //移动3
    void move3(int maze[43][43]){
        int a = 9;  //row
        int b = 42;  //col
        char num;
        do{
            num = getch();
            //only change four locations of *
            switch(num){
                case 72:  //↑的ASCII
                case 87:  //大写W的ASCII
                case 119: //小写w的ASCII
                if(maze[a-1][b] != 1){  //up
                    swap(maze[a][b],maze[a-1][b]);
                    a --;
                    system("cls");  //clear the screen
                    draw3(maze);
                    break;
                }
                break;
                case 80:
                case 83:
                case 115:
                if(maze[a+1][b] != 1){  //down
                    swap(maze[a+1][b],maze[a][b]);
                    a ++;
                    system("cls");
                    draw3(maze);
                    break;
                }
                break;
                case 75:
                case 65:
                case 97:
                if(maze[a][b-1] != 1){  //left
                    swap(maze[a][b-1],maze[a][b]);
                    b --;
                    system("cls");
                    draw3(maze);
                    break;
                }
                break;
                case 77:
                case 68:
                case 100:
                if(maze[a][b+1] != 1){  //right
                    swap(maze[a][b+1],maze[a][b]);
                    b ++;
                    system("cls");
                    draw3(maze);
                    break;
                }
                break;
                default:break;
            }
            if(maze[9][0] == 4){
                printf("\n\t\t\t\tHappy Children's Day to you!\n\n\n");
                Sleep(2000);  //delay
                //if(++n != 1) //printf("Please press Enter to return the maze.\n");  //请按回车键返回主界面
                //Sleep(2000);  //delay
                break;
            }
        }while(1);
        system("cls");
        menu();
    }
    
    
    
    int main(){
        menu();
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    展开全文
  • 在这些令人惊叹的儿童和成人迷宫游戏中,请不要迷路。 无论您处于何种级别,此系列都为您提供了迷宫游戏。 对于孩子们来说,迷宫迷宫是一种更简单,更无分支的迷宫迷宫中的图案通过复杂的布局清晰地引向出口。 玩...
  • HEATER Ralston 公立学校评估天赋的迷宫子测试 通过将两个子测试包括在 WISC-R 的天赋评估中,研究了用迷宫代替编码的建议50 名儿童转介进行资格验证。 迷宫的量表分数显着高于该组的编码,尽管在计算全量表分数时...
  • 迷宫子测试的管理和评分的说明 METROPOLITAN READINESS TEST 143 LINEHAN, E. 字母名称和发音的早期指导与成功开始阅读有关。 教育学报,1958,140,​​4448。 MITCHELL, B. 大都会准备测试和 Murphy-Durrell 阅读...
  • 给定一个迷宫,由 ‘*’ 和 ‘.’ 组成,*表示此处有障碍。给定一个起始点,以及 l 和 r ,l 代表这个点可以向右移动的次数,r表示这个点可以向左移动的次数,求从起始点出发,可以到达多少个不同的点。 思路: ...
  • 迷宫(多出口)

    2011-12-10 12:09:00
    /* * ===================================================================================== * * Filename: maze.c * * Description: * * Version: 1.0 * Created: 2011年12月09日 21时33分32秒 * Revision: ...
  • Scratch少儿编程——迷宫游戏项目学习 专注于linux开源体系的知识传...
  • 副标题为家长行动指南,揭开特殊教育迷宫是一项认真的尝试,旨在帮助家长应对试图为残疾儿童提供服务的公立学校系统。 卡特勒强调法律权利不是恩惠,而是残疾儿童有权获得某些治疗和服务的概念。 作者还讨论了学校...
  • 作者 | 刘早起来源 | 早起Python大家好,儿童节就要来了,虽然秃头程序员没有头发,但是童心还是一直都在的,今天就分享一个私藏的GitHub项目——free-python-games,一行代码就能进入使用Python开发的小游戏快乐...
  • 一只“迷途”的机器人跑进了迷宫当中,没有指引、没有帮助,只能自己四处“碰壁”,再自动寻路,十几秒之后,碰得“头破血流”的机器人跌跌撞撞地找到了出口,一个孩子兴奋地欢呼:“这一次最快”…… 这是在7月14...
  • 儿童绘本

    2020-09-16 11:59:59
    《祖拜尔和迷宫》 《沼泽地的孩子们》 《花园》 《星际信使》 《生命之树》 《玛德琳卡》 《当世界还不存在的时候》 《大嗓门妈妈》 《爷爷的天使》 《尖叫的母亲》 《木偶奇遇记》 《铁丝网上的小花儿》 《迈尔太太...
  • 没错,就是那个儿童游戏公司任天堂开发了这个世界上 首款主机FPS游戏 ,同时这也是第一款能 爆头 的游戏。 任天堂在游戏中加入了 伤害计算机制 ,打中不同的部位可以造成不同的结算伤害。除此之外,游戏还引入 潜行...
  • Meipuro是面向儿童的编程学习材料。您可以在解决迷宫的同时学习编程。 ##功能 在Meipuro中,您可以主要按照以下说明创建程序。 移动指令 重复指令(同时,用于) 条件分支指令(如果有) ## 如何使用 在浏览器...
  • 包括三层床,最高一层不做床是一个游戏平台,还有一个乐高平台,一个钻入式攀爬柜(像简易迷宫,将来可以做衣柜或者床头书柜),台阶(内置钻入式门,有隐蔽感,也可以做书架),滑梯,还有一个挂梯(没有做设计,...
  • 您必须找到各个领域的钥匙,保护自己免受龙的侵害,避免蛇和讨厌的蝙蝠偷东西而将它们丢在随机的位置,并在迷宫中生存。 现在伴随着库尔拉·潘迪特(Korla Pandit)的音乐。 提取归档文件并维护目录结构的正确命令...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 705
精华内容 282
关键字:

儿童迷宫