【铛铛源码】【testlink源码配置分析】【速知网源码】c 推箱子源码_c推箱子源码

时间:2024-11-30 00:25:23 来源:代刷源码正版 编辑:龙翔源码

1.请问大佬如何用C语言实现推箱子的推推箱主菜单界面和游戏结束弹出框
2.C语言有什么实质用途
3.c语言推箱子
4.c语言能干什么(会c语言能找什么工作?)

c  推箱子源码_c推箱子源码

请问大佬如何用C语言实现推箱子的主菜单界面和游戏结束弹出框

       可以自己用绘图的方式来实现游戏主菜单,主菜单也可以用Dialog的箱源方式来做,但是源码不友好。

       游戏结束弹出框调用系统对话框就行了

       MessageBox函数或MFC的推推箱AfxMessageBox函数。

       建议去下载推箱子游戏的箱源源代码,自己慢慢研究研究,源码铛铛源码网络是推推箱这种代码应该很好找。

       望采纳谢谢

C语言有什么实质用途

       C语言用途:

       (1)应用软件。箱源Linux操作系统中的源码应用软件都是使用C语言编写的,因此这样的推推箱应用软件安全性非常高。

       (2)对性能要求严格的箱源领域。一般对性能有严格要求的源码地方都是用C语言编写的,比如网络程序的推推箱底层和网络服务器端底层、地图查询等

       (3)系统软件和图形处理。箱源C语言具有很强的源码绘图能力和可移植性,并且具备很强的数据处理能力,可以用来编写系统软件、制作动画、绘制二维图形和三维图形等。

       (4)数字计算。相对于其他编程语言,testlink源码配置分析C语言是数字计算能力超强的高级语言。

       (5)嵌入式设备开发。手机、PDA等时尚消费类电子产品相信大家都不陌生,其内部的应用软件、游戏等很多都是采用C语言进行嵌入式开发的。

       (6)游戏软件开发。游戏大家更不陌生,很多人就是由玩游戏而熟悉了计算机。利用C语言可以开发很多游戏,速知网源码比如推箱子、贪吃蛇等。

扩展资料:

       

       通过对C语言进行研究分析,总结出其主要特点如下:

       (1)简洁的语言

       C语言包含的各种控制语句仅有9种,关键字也只有 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的产品展示源码大全输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

       (2)具有结构化的控制语句

       C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的管理系统静态源码程序设计。 

       (3)丰富的数据类型

       C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。 

       (4)丰富的运算符

       C语言包含个运算符,它将赋值、括号等均是作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。

       (5)可对物理地址进行直接操作

       C语言允许对硬件内存地址进行直接读写,以此可以实现汇编语言的主要功能,并可直接操作硬件。C语言不但具备高级语言所具有的良好特性,又包含了许多低级语言的优势,故在系统软件编程领域有着广泛的应用。 

c语言推箱子

       //空:0  墙:1  箱子:3   巢:4   箱子与巢重合:5

       [MAPCOUNT]

       map_count=8

       [MAP1]

       w=8

       h=8

       nest_count=4

       l1=0 0 0 1 1 1 0 0

       l2=0 0 0 1 3 1 0 0

       l3=1 1 1 1 0 1 0 0

       l4=1 3 2 0 2 1 1 1

       l5=1 1 1 4 2 0 3 1

       l6=0 0 1 2 1 1 1 1

       l7=0 0 1 3 1 0 0 0

       l8=0 0 1 1 1 0 0 0

       [MAP2]

       w=9

       h=9

       nest_count=3

       l1=1 1 1 1 1 0 0 0 0

       l2=1 4 0 0 1 0 0 0 0

       l3=1 0 2 2 1 0 1 1 1

       l4=1 0 2 0 1 0 1 3 1

       l5=1 1 1 0 1 1 1 3 1

       l6=0 1 1 0 0 0 0 3 1

       l7=0 1 0 0 0 1 0 0 1

       l8=0 1 0 0 0 1 1 1 1

       l9=0 1 1 1 1 1 0 0 0

       [MAP3]

       w=

       h=7

       nest_count=4

       l1=0 1 1 1 1 1 1 1 0 0

       l2=0 1 0 0 0 0 0 1 1 1

       l3=1 1 2 1 1 1 0 0 0 1

       l4=1 0 4 0 2 0 0 2 0 1

       l5=1 0 3 3 1 0 2 0 1 1

       l6=1 1 3 3 1 0 0 0 1 0

       l7=0 1 1 1 1 1 1 1 1 0

       [MAP4]

       w=6

       h=8

       nest_count=5

       l1=0 1 1 1 1 0

       l2=1 1 0 0 1 0

       l3=1 4 2 0 1 0

       l4=1 1 2 0 1 1

       l5=1 1 0 2 0 1

       l6=1 3 2 0 0 1

       l7=1 3 3 5 3 1

       l8=1 1 1 1 1 1

       //以上为地图数据文件,保存为boxdata.dat文件

       //空:0  墙:1  箱子:3   巢:4   箱子与巢重合:5

       #include <stdio.h>

       #include <stdlib.h>

       #include <stdbool.h>

       #include <windows.h>

       #include <string.h>

       typedef struct

       {

        int x;

        int y;

       } PT;

       int** s;

       PT man;

       PT* nest=NULL;

       PT prev;

       int nest_count=0;

       int map_count=0;

       int gate=1;

       int w,h;

       char work_dir[]={ '\0'};

       char data_file[]={ '\0'};

       void GetDataFromFile();

       void GetIntFromLineString(char* ch, int len, int i);

       void Draw();

       bool is_Success();

       int main()

       {

        printf("Loading...");

        CONSOLE_CURSOR_INFO cci;

        cci.bVisible = FALSE;

        cci.dwSize = sizeof(cci);

        HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

        SetConsoleCursorInfo(handle, &cci);

        _getcwd(work_dir,);

        strcpy(data_file,work_dir);

        strcat(data_file,"\\boxdata.dat");

        if(access(data_file,0))

        {

        printf("Don't find map data file !");

        getch();

        exit(0);

        }

        while(1)

        {

        GetDataFromFile();

        int sel=0;

        Draw();

        while(1)

        {

        fflush(stdin);

        sel=getch();

        if(sel==)

        {

        sel=getch();

        prev=man;

        if(sel==)  //right

        {

        if(s[man.y][man.x+1]==2)

        {

        if(s[man.y][man.x+2]==0 || s[man.y][man.x+2]==3)

        {

        s[man.y][man.x+2]=2;

        s[man.y][man.x+1]=4;

        s[man.y][man.x]=0;

        }

        else

        {

        continue;

        }

        }

        else if(s[man.y][man.x+1]==0 || s[man.y][man.x+1]==3)

        {

        s[man.y][man.x+1]=4;

        s[man.y][man.x]=0;

        }

        else

        {

        continue;

        }

        }

        else if(sel==)  //down

        {

        if(s[man.y+1][man.x]==2)

        {

        if(s[man.y+2][man.x]==0 || s[man.y+2][man.x]==3)

        {

        s[man.y+2][man.x]=2;

        s[man.y+1][man.x]=4;

        s[man.y][man.x]=0;

        }

        else

        {

        continue;

        }

        }

        else if(s[man.y+1][man.x]==0 || s[man.y+1][man.x]==3)

        {

        s[man.y+1][man.x]=4;

        s[man.y][man.x]=0;

        }

        else

        {

        continue;

        }

        }

        else if(sel==)  //up

        {

        if(s[man.y-1][man.x]==2)

        {

        if(s[man.y-2][man.x]==0 || s[man.y-2][man.x]==3)

        {

        s[man.y-2][man.x]=2;

        s[man.y-1][man.x]=4;

        s[man.y][man.x]=0;

        }

        else

        {

        continue;

        }

        }

        else if(s[man.y-1][man.x]==0 || s[man.y-1][man.x]==3)

        {

        s[man.y-1][man.x]=4;

        s[man.y][man.x]=0;

        }

        else

        {

        continue;

        }

        }

        else if(sel==)  //left

        {

        if(s[man.y][man.x-1]==2)

        {

        if(s[man.y][man.x-2]==0 || s[man.y][man.x-2]==3)

        {

        s[man.y][man.x-2]=2;

        s[man.y][man.x-1]=4;

        s[man.y][man.x]=0;

        }

        else

        {

        continue;

        }

        }

        else if(s[man.y][man.x-1]==0 || s[man.y][man.x-1]==3)

        {

        s[man.y][man.x-1]=4;

        s[man.y][man.x]=0;

        }

        else

        {

        continue;

        }

        }

        int i;

        for(i=0;i<nest_count;i++)

        {

        if(nest[i].x==prev.x && nest[i].y==prev.y)

        {

        s[prev.y][prev.x]=3;

        break;

        }

        }

        Draw();

        if(is_Success()==true)

        {

        gate++;

        if(gate>map_count)

        {

        printf("\n\nmap is end!");

        fflush(stdin);

        getch();

        exit(0);

        }

        break;

        }

        }

        else if(sel=='q' || sel=='Q')

        {

        exit(0);

        }

        else if(sel=='r' || sel=='R')

        {

        break;

        }

        }

        }

        return 0;

       }

       void GetDataFromFile()

       {

        int i;

        if(s!=NULL)

        {

        if(h!=0)

        {

        for(i=0;i<h;i++)

        {

        free(s+i);

        }

        free(s);

        }

        else

        {

        printf("fail");

        getch();

        exit(0);

        }

        }

        if(nest!=NULL)

        {

        free(nest);

        }

        map_count=GetPrivateProfileInt("MAPCOUNT","map_count",0,data_file);

        if(map_count<gate)

        {

        printf("gate finish!");

        getch();

        exit(0);

        }

        char section[]={ '\0'};

        sprintf(section,"MAP%d",gate);

        nest_count=GetPrivateProfileInt(section,"nest_count",0,data_file);

        nest=(PT*)malloc(sizeof(PT)*nest_count);

        w=GetPrivateProfileInt(section,"w",0,data_file);

        h=GetPrivateProfileInt(section,"h",0,data_file);

        if(w<5 || h<5 || nest_count<1)

        {

        printf("w or h or box_nest data error!");

        getch();

        exit(0);

        }

        s=(int**)malloc(sizeof(int*)*h);

        for(i=0;i<h;i++)

        {

        *(s+i)=(int*)malloc(sizeof(int)*w);

        }

        char key[]={ '\0'};

        char line[]={ '\0'};

        int len;

        int j;

        for(i=0;i<h;i++)

        {

        memset(line,'\0',);

        sprintf(key,"l%d",i+1);

        GetPrivateProfileString(section,key,"\0",line,,data_file);

        len=strlen(line);

        if(len>0)

        {

        line[len++]=' ';

        line[len]='\0';

        }

        GetIntFromLineString(line,strlen(line),i);

        }

        len=0;

        for(i=0;i<h;i++)

        {

        for(j=0;j<w;j++)

        {

        if(s[i][j]==3)

        {

        nest[len].y=i;

        nest[len].x=j;

        len++;

        }

        else if(s[i][j]==5)

        {

        nest[len].y=i;

        nest[len].x=j;

        len++;

        s[i][j]=2;

        }

        }

        }

       }

       void strmyncpy(char* source, char* target, int begin, int end)

       {

        int i=0;

        while(1)

        {

        if(source[begin]!=' ')

        {

        target[i]=source[begin];

        }

        i++;

        begin++;

        if(begin>end)

        {

        target[i]='\0';

        break;

        }

        }

       }

       void GetIntFromLineString(char* ch, int len, int i)

       {

        int j=0;

        char c[5]={ '\0'};

        int b=0,e=0;

        while(e<len)

        {

        if(ch[e]==' ')

        {

        memset(c,'\0',5);

        strmyncpy(ch,c,b,e);

        b=e+1;

        e++;

        s[i][j++]=atoi(c);

        }

        e++;

        }

       }

       void Draw()

       {

        int i,j,k;

        bool flag=false;

        system("cls");

        printf("\n\n");

        for(i=0;i<h;i++)

        {

        printf("\n\n");

        for(j=0;j<w;j++)

        {

        if(s[i][j]==0)

        {

        printf("    ");

        }

        else if(s[i][j]==1)

        {

        printf(" ■ ");

        }

        else if(s[i][j]==2)

        {

        printf(" ★ ");

        }

        else if(s[i][j]==3)

        {

        printf(" ☆ ");

        }

        else if(s[i][j]==4)

        {

        printf(" ◎ ");

        man.x=j;

        man.y=i;

        }

        }

        }

       }

       bool is_Success()

       {

        int i,j;

        for(i=0;i<h;i++)

        {

        for(j=0;j<w;j++)

        {

        if(s[i][j]==3)

        {

        return false;

        }

        }

        }

        for(i=0;i<nest_count;i++)

        {

        if(man.x==nest[i].x && man.y==nest[i].y)

        {

        return false;

        }

        }

        return true;

       }

c语言能干什么(会c语言能找什么工作?)

       c语言是一种面向过程、抽象化的通用程序设计语言,它可以用来编写应用软件、编写系统软件和图形处理、开发嵌入式设备和开发游戏软件。下面是详细介绍:

       1、编写应用软件,Linux操作系统中的应用软件都是使用C语言编写的,这样的应用软件安全性非常高。

       2、编写系统软件和图形处理,C语言具有很强的绘图能力和可移植性,并且具备很强的数据处理能力,可以用来编写系统软件、制作动画、绘制二维图形和三维图形等。

       3、开发嵌入式设备,手机等消费类电子产品内部的应用软件、游戏等很多都是采用C语言进行嵌入式开发的。

       4、开发游戏软件,利用C语言可以开发很多游戏,比如推箱子、贪吃蛇等。

       总结

       c语言是一种面向过程、抽象化的通用程序设计语言,它可以用来编写应用软件、编写系统软件和图形处理、开发嵌入式设备和开发游戏软件。

copyright © 2016 powered by 皮皮网   sitemap