资源简介

项目描述: 主函数分为两部分:1.登录函数 2.主菜单功能函数 一、登录函数运用到坐标读取,bmp图片显示,文件读写等操作,其中,注册用户用到了文件的写入, 把注册的信息写入到用户信息文本。登录时,用到文件的读,把存放用户信息的文本内容读取出来并存放在单向链表中, 登录时,通过字符串比较函数匹配账号密码时候正确 二、是主菜单功能函数,该函数主要有四部分功能函数组成,分别为音乐播放函数,视频播放函数,电子相册,2048小游戏函数组成 音乐播放函数:主要利用递归读取目录把读到的.mp3后缀名的文件的路径名用双向循环链表存放起来,利用madplay相关命令进行播放,暂停等操作。 视频播放函数:主要利用递归读取目录把读到的.mp4或者.avi后缀名的文件的路径名用双向循环链表存放起来,利用mplayer相关命令进行播放,暂停等操作。 电子相册:主要利用归读取目录把读到的.bmp后缀名的文件的路径名用双向循环链表存放起来,利用读取坐标判断点击或者滑动的相关操作进行图片显示 其中,进入电子相册,默认路径下的所有图片均按一定比例缩放在一定区域浏览,可通过滑动翻至另外预览图片页, 也可通过点击预览图片进入原始比例大小查看,在原始比例大小查看期间,可点击放大或者缩小,也可以通过滑动显示下一张图片的原始比例大小的查看。 在图片显示过程中,图片显示效果主要是由中间向两边扩散。不足之处:图片缩放利用的是直接改变前54字节头结点的信息,当图片宽度w*3%4不等于0时 缩放图片变形(原因:bmp图片特点导致,利用该方法无法解决该缺点) 2048小游戏:利用二维数组表示每行每列的数字,通过方向键或者左右上下滑动来确定数字要移动的方向,通过左右移,上下移的函数算法,进行相应的逻辑处理 最后以图片显示和打印的结果显示。在每一次改变后,把改变后的二维数组,以及剩余的空白格子数存放在栈式链中,利用栈的后进先出的逻辑实现 返回上一步的功能

资源截图

代码片段和文件信息

 #include “myhead.h“
/*
函数说明:
功能:2048游戏
*/

int i j ktxy;                  //定义的全局变量
int space;                          //空格数,根据空格数来判断游戏是否结束
int temp[4];                        //将移动后的数字放在 temp[4] 中,再传递给arr[4]
int arr[4][4] copy[4][4];          //copy数组用于判断一次操作后arr数组是否发生变化
int flog = 0;                       //判断是否需要增加数字
struct linkstack *gamedata ;//利用栈式链把每次变化的二维数组的值存起来

//打印数字及界面
void show()
{

char path[1000]={0};
    printf( “—————————————————————————\n“ );
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            if (arr[i][j] == 0)
            {
                printf(“|    0“);                      //如果arr[i][j]没有数字 则打印0
            }
            else
            {
                printf(“|%5d“ arr[i][j]);             //如果arr[i][j]有数字 则打印数字
            }
sprintf(path“/project/%d.bmp“arr[i][j]);
showbmp(322+j*1204+120*ipath);
        }
        printf(“|\n—————————————————————————\n“);
    }
push(arrspacegamedata); 
printf(“剩余%d\n“space);

}

//开始出现第一个随机数
void inter()
{
    srand(time(0));
    int x = rand() % 4;                  //随机数对4取余,  即x在4以内取值,
    int y = rand() % 4;                  //随机数对4取余,  即y在4以内取值,
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            copy[i][j] = arr[i][j] = 0;      //先将数组全部置为0
        }
    }
    copy[x][y] = arr[x][y] = 2;        //在随机的地方出现第一个数字2
    space = 15;                       //空格数为15,根据空格数来判断游戏是否结束
}



//上移
void up()
{
    for (i = 0; i < 4; i++)      //先从第0列开始判断
    {
        for (j = 0; j < 4; j++)      //第i列第一个开始判断
        {
            if (arr[j][i] == 0)         continue;     //为0  则跳过  
            else                                      
            {
                for (k = j + 1; k < 4; k++)           //第i列第2个开始判断,从上往下依次判断
                {
                    if (arr[k][i] == 0)     continue;  //为0  则跳过
                    if (arr[k][i] == arr[j][i])        //相等则可以相加
                    {
                        arr[j][i] *= 2;                  //相同数字相加即*2
                        arr[k][i] = 0;                  //相加后因为上移将下方的数字归0
                        space++;                        //数字少了则空格多一
                        k = j = 0;                      //再从头开始判断是否有相同数字
                        break;
                    }
                    else            break;
                }
            }

        }                                           //第i列全部相加完成后,
        t = 0;                                     //使temp数组从0开始
        for (j = 0; j < 4; j++)                    //遍历第i列
        {                                          //
            if (arr[j][i] != 0)                    //不为0
            {                                      //
                temp[t++] = arr[j][i];             //上移后,有数字则数字永远在上面,
                arr[j][i] = 0;                     //使 不会影响temp数组
            }                

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-08-20 16:00  基于arm的车载娱乐系统\
     文件       18055  2020-08-02 17:07  基于arm的车载娱乐系统\2048.c
     文件       38092  2020-08-02 17:14  基于arm的车载娱乐系统\a.out
     文件        4173  2020-08-02 17:07  基于arm的车载娱乐系统\bmp_bigger_or_smaller.c
     文件        1330  2020-07-28 13:01  基于arm的车载娱乐系统\coordinate.c
     文件        1176  2020-07-30 16:04  基于arm的车载娱乐系统\double_list.c
     文件        1192  2020-08-02 17:07  基于arm的车载娱乐系统\linkstack.c
     文件        1630  2020-07-30 13:05  基于arm的车载娱乐系统\list_usr.c
     文件        2526  2020-08-02 18:56  基于arm的车载娱乐系统\login.c
     文件        1171  2020-08-01 19:07  基于arm的车载娱乐系统\menu.c
     文件        2737  2020-08-02 17:07  基于arm的车载娱乐系统\music_play.c
     文件        2217  2020-08-01 22:58  基于arm的车载娱乐系统\myhead.h
     文件        9217  2020-08-02 21:08  基于arm的车载娱乐系统\photo.c
     文件        2739  2020-08-20 16:01  基于arm的车载娱乐系统\project(main).c
     文件        1475  2020-08-02 17:08  基于arm的车载娱乐系统\readdir.c
     文件        1425  2020-08-01 15:56  基于arm的车载娱乐系统\register.c
     文件        2345  2020-08-01 19:07  基于arm的车载娱乐系统\showbmp.c
     文件          52  2020-08-02 17:16  基于arm的车载娱乐系统\user_information.txt
     文件        2858  2020-08-02 17:07  基于arm的车载娱乐系统\video_play.c

评论

共有 条评论