Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5787264
  • 博文数量: 409
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 8273
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-23 19:15
个人简介

qq:78080458 学习交流群:150633458

文章分类

全部博文(409)

文章存档

2019年(127)

2018年(130)

2016年(20)

2015年(60)

2014年(41)

2013年(31)

分类: 嵌入式

2015-06-15 16:42:37

推箱子
一、修改linux终端的背景色,字体色等属性
    1、printf("\33[%dm", num);
        1)30<= num <=37   修改字体色
            30黑 31红  32绿  33黄  34蓝  35紫  36深绿  37白
        2)40<= num <=47   修改背景色
            40黑 41红  42绿  43黄  44蓝  45紫  46深绿  47白

    2、printf("\33[?25l")  隐藏光标 

    3、printf("\33[%d;%dH", x, y) 控制光标的位置
          x >= 1       y>=1

、游戏设置
    1、用一个二维数组表示游戏区
        int flag[8][8]={
            {0, 0, 1, 1, 1, 0, 0, 0},
            {0, 0, 1, 2, 1, 0, 0, 0},
            {0, 0, 1, 0, 1, 1, 1, 1},
            {1, 1, 1, 3, 0, 3, 2, 1},
            {1, 2, 0, 3, 4, 1, 1, 1},
            {1, 1, 1, 1, 3, 1, 0, 0},
            {0, 0, 0, 1, 2, 1, 0, 0},
            {0, 0, 0, 1, 1, 1, 0, 0}
            };

    2、数组中为1的地方是边框,为2的地方是目的地,为3的地方是箱子,为4的地方是人,为0的地方是空

三、边框
    /*
    打印边框,游戏区是8x8的正方形区域
    用两层for循环打印,在border数组中为1的地方打印"++"
    注意:打印的时候行每次加1,列每次加2
    */
    void draw_border()
    {
        int i,j;

        for(i=0; i<8; i++)
        {
            for(j=0; j<8; j++)
            {
                if(flag[i][j] == 1)
                {
                    printf("\33[%d;%dH", START_ROW+i, START_COL+j*2); //确定坐标
                    printf("\33[40m"); //修改背景色:黑
                    printf("||");
                    printf("\33[47m"); //
                }
            }
        }
    }

四、判断能否人移动
    1、能否向左
        如果 左边没有东西(0,2) 那么可以向左
        如果 左边有东西
        如果左边是墙(1),那么不可移向左
        如果左边是箱子(3)
        如果箱子的左边没东西(0,2),那么可以向左
        如果箱子左边有东西(1,3),那么不能向左

    2、右

    3、上

    4、下

五、人移动
    1、人向左移
        如果人能左移  
        1)flag[people.row][people.col] = 0
        2) flag[people.row][people.col-1] = 4
        3) 如果左边有箱子
            flag[people.row][people.col-2] = 3
        4) peolple.col--;                                    //人的坐标移动
    
    2、

六、过关
    如果flag[][]没有2,过关

阅读(14646) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~