应天论坛

 找回密码
 参与我们

QQ登录

只需一步,快速开始

搜索
查看: 1040|回复: 0

分享VC下的推箱子!给童鞋参考,给我加分也不介意的

[复制链接]

68

主题

72

帖子

451

积分

少校

勘查大队长

Rank: 6Rank: 6

积分
451
发表于 2017-4-29 21:11:19 | 显示全部楼层 |阅读模式
分享VC下无聊的推箱子!给童鞋参考,给我加分也不介意的

[mw_shl_code=cpp,true]#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int i,j;
void MAP(int map[10][10]);
int main()
{
    char input;   
    int point=0;
    int map[10][10] = {   
        {0,0,0,0,0,0,0,0,0,0},
        {0,0,0,1,1,1,0,0,0,0},
        {0,0,0,1,3,1,0,0,0,0},
        {0,0,0,1,2,1,1,1,1,0},
        {0,1,1,1,4,4,2,3,1,0},
        {0,1,3,2,4,6,1,1,1,0},
        {0,1,1,1,1,4,1,0,0,0},
        {0,0,0,0,1,3,1,0,0,0},
        {0,0,0,0,1,1,1,0,0,0},
        {0,0,0,0,0,0,0,0,0,0},
    };
       while (true)
    {
        system("CLS");
        MAP(map);
        
        //找到初始位置
        for (i=0;i<10;i++)
        {
            for (j=0;j<10;j++)
            {
                if (map[j]==6)
                    break;
            }
            if (map[j]==6)
                break;
        }
        printf("确认找到%d  %d",i,j);        
        input = getch();
        switch (input)
        {case 'w':
            if(map[i-1][j]==2)
            {
                map[j]=2;
                map[i-1][j]=6;
               
            }
            else if(map[i-1][j]==4)
            {
                if (map[i-2][j]==2)
                {
                    map[j]=2;
                    map[i-1][j]=6;
                    map[i-2][j]=4;
                }
                else if (map[i-2][j]==3)
                {
                    map[j]=2;
                    map[i-1][j]=6;
                    map[i-2][j]=5;
                    point++;   
                }
               
            }
            break;
        case 's':
            if(map[i+1][j]==2)
            {
                map[j]=2;
                map[i+1][j]=6;
               
            }
            else if(map[i+1][j]==4)
            {
                if (map[i+2][j]==2)
                {
                    map[j]=2;
                    map[i+1][j]=6;
                    map[i+2][j]=4;
                }
                else if (map[i+2][j]==3)
                {
                    map[j]=2;
                    map[i+1][j]=6;
                    map[i+2][j]=5;
                    point++;     
                }
               
            }
            break;
        case 'a':
            if(map[j-1]==2)
            {
                map[j]=2;
                map[j-1]=6;
               
            }
            else if(map[j-1]==4)
            {
                if (map[j-2]==2)
                {
                    map[j]=2;
                    map[j-1]=6;
                    map[j-2]=4;
                }
                else if (map[j-2]==3)
                {
                    map[j]=2;
                    map[j-1]=6;
                    map[j-2]=5;
                    point++;   
                }
            }            
            break;
        case 'd':
            if(map[j+1]==2)
            {
                map[j]=2;
                map[j+1]=6;
               
            }
            else if(map[j+1]==4)
            {
                if (map[j+2]==2)
                {
                    map[j]=2;
                    map[j+1]=6;
                    map[j+2]=4;
                }
                else if (map[j+2]==3)
                {
                    map[j]=2;
                    map[j+1]=6;
                    map[j+2]=5;
                    point++;     
                }                                
            }
            break;
        }


        if (point==4)
        {
        system("CLS");
        MAP(map);
        break;
        }
            
    }
    printf("\n恭喜通关!");
    return 0;
}
void MAP(int map[10][10])
{
            
                for(i=0;i<10;i++)
                {
                    for(j=0;j<10;j++)
                    {
                        switch(map[j])
                        {
                        case 0:
                            printf("  ");
                            break;
                        case 1:
                            printf("■");
                            break;
                        case 2:
                            printf("  ");
                            break;
                        case 3:
                            printf("×");
                            break;
                        case 4:
                            printf("◎");
                            break;
                        case 5:
                            printf("☆");
                            break;
                        case 6:
                            printf("♂");
                            break;
                        }            
                    }
                    printf("\n");
                }
}[/mw_shl_code]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 参与我们

本版积分规则

QQ|Archiver|手机版|小黑屋|应天社区 ( 湘ICP备17015224号 )

GMT+8, 2024-4-28 00:52 , Processed in 0.484363 second(s), 25 queries .

Powered by Discuz!

© 2001-2017 Comsenz Inc.


免责声明:
本站所发布的第三方软件及资源(包括但不仅限于文字/图片/音频/视频等仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢某程序或某个资源,请支持正版软件及版权方利益,注册或购买,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To: admin@yzqz.cn

快速回复 返回顶部 返回列表