c 小游戏

c  小游戏

【编写游戏的软件】用c语言编写小游戏编出来的游戏用什么软件来实…

我的楼主可以自己玩一下 试试吧 #define N 200 #include #include #include #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b int i,key; int score=0;/*得分*/ int gamespeed=50000;/*游戏速度自己调整*/ struct Food { int x;/*食物的横坐标*/ int y;/*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/ }food;/*食物的结构体*/ struct Snake { int x[N]; int y[N]; int node;/*蛇的节数*/ int direction;/*蛇移动方向*/ int life;/* 蛇的生命,0活着,1死亡*/ }snake; void Init(void);/*图形驱动*/ void Close(void);/*图形结束*/ void DrawK(void);/*开始画面*/ void GameOver(void);/*结束游戏*/ void GamePlay(void);/*玩游戏具体过程*/ void PrScore(void);/*输出成绩*/ /*主函数*/ void main(void) { Init();/*图形驱动*/ DrawK();/*开始画面*/ GamePlay();/*玩游戏具体过程*/ Close();/*图形结束*/ } /*图形驱动*/ void Init(void) { int gd=DETECT,gm; initgraph(&gd,&gm,"c:\\tc"); cleardevice(); } /*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/ void DrawK(void) { /*setbkcolor(LIGHTGREEN);*/ setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/ for(i=50;i { rectangle(i,40,i+10,49); /*上边*/ rectangle(i,451,i+10,460);/*下边*/ } for(i=40;i { rectangle(50,i,59,i+10); /*左边*/ rectangle(601,i,610,i+10);/*右边*/ } } /*玩游戏具体过程*/ void GamePlay(void) { randomize();/*随机数发生器*/ food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/ snake.life=0;/*活着*/ snake.direction=1;/*方向往右*/ snake.x[0]=100;snake.y[0]=100;/*蛇头*/ snake.x[1]=110;snake.y[1]=100; snake.node=2;/*节数*/ PrScore();/*输出得分*/ while(1)/*可以重复玩游戏,压ESC键结束*/ { while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/ { if(food.yes==1)/*需要出现新食物*/ { food.x=rand()%400+60; food.y=rand()%350+60; while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/ food.x++; while(food.y%10!=0) food.y++; food.yes=0;/*画面上有食物了*/ } if(food.yes==0)/*画面上有食物了就要显示*/ { setcolor(GREEN); rectangle(food.x,food.y,food.x+10,food.y-10); } for(i=snake.node-1;i>0;i–)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ { snake.x[i]=snake.x[i-1]; snake.y[i]=snake.y[i-1]; } /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction) { case 1:snake.x[0]+=10;break; case 2: snake.x[0]-=10;break; case 3: snake.y[0]-=10;break; case 4: snake.y[0]+=10;break; } for(i=3;i { if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) { GameOver();/*显示失败*/ snake.life=1; break; } } if(snake.x[0]595||snake.y[0] snake.y[0]>455)/*蛇是否撞到墙壁*/ { GameOver();/*本次游戏结束*/ snake.life=1; /*蛇死*/ } if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/ break; if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/ { setcolor(0);/*把画面上的食物东西去掉*/ rectangle(food.x,food.y,food.x+10,food.y-10); snake.x[snake.node]=-20;snake.y[snake.node]=-20; /*新的一节先放在看不见的位置,下次循环就取前一节的位置*/ snake.node++;/*蛇的身体长一节*/ food.yes=1;/*画面上需要出现新的食物*/ score+=10; PrScore();/*输出新得分*/ } setcolor(4);/*画出蛇*/ for(i=0;i rectangle(snake.x[i],snake.y[i],snake.x[i]+10, snake.y[i]-10); delay(gamespeed); setcolor(0);/*用黑色去除蛇的的最后一节*/ rectangle(snake.x[snake.node-1],snake.y[snake.node-1], snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } /*endwhile(!kbhit)*/ if(snake.life==1)/*如果蛇死就跳出循环*/ break; key=bioskey(0);/*接收按键*/ if(key==ESC)/*按ESC键退出*/ break; else if(key==UP&&snake.direction!=4) /*判断是否往相反的方向移动*/ snake.direction=3; else if(key==RIGHT&&snake.direction!=2) snake.direction=1; else if(key==LEFT&&snake.direction!=1) snake.direction=2; else if(key==DOWN&&snake.direction!=3) snake.direction=4; }/*endwhile(1)*/ } /*游戏结束*/ void GameOver(void) { cleardevice(); PrScore(); setcolor(RED); settextstyle(0,0,4); outtextxy(200,200,"GAME OVER"); getch(); } /*输出成绩*/ void PrScore(void) { char str[10]; setfillstyle(SOLID_FILL,YELLOW); bar(50,15,220,35); setcolor(6); settextstyle(0,0,2); sprintf(str,"score:%d",score); outtextxy(55,20,str); } /*图形结束*/ void Close(void) { getch(); closegraph(); }

小游戏C语言程序

呵呵~~查了库函数,我知道怎么编了,等我下,抓紧编程中…. 哎,编了一天,终于大功告成!!!有疑问之处qq我:281754179#include #include //用来计算时间差#include //rand(),srand()函数所需头文件#include //getch()所需函数#include int i=0; int*down_i,*up_i; time_t first_time, end_time;//time_t在time.h中被定义为long型 int main() { void pai_hang_bang(FILE*,char**,double*,time_t);//排行榜 int j; int rand_i,guess; char **nickname; double *time_sum; FILE*fp; if((fp=fopen("d:/游戏排行榜.txt","a+"))==NULL)//防错处理 { puts("error!"); exit(1);//异常退出 } //下面为申请动态数组 nickname=(char**)malloc(1*sizeof(char*)); nickname[0]=(char*)malloc(555*sizeof(char)); down_i=(int*)malloc(1*sizeof(int)); up_i=(int*)malloc(1*sizeof(int)); time_sum=(double*)malloc(1*sizeof(double)); restart://goto的标记 puts("输入你的昵称:"); fflush(stdin);//清空输入流,避免gets函数受到空格等因素影响 gets(nickname[i]); puts("你想猜的数字范围是?(用空格分开):"); while((scanf("%d%d",&down_i[i],&up_i[i])==0)||down_i[i]>up_i[i])//如果输入有误,scanf函数将返回0 { printf("输入错误,请重新输入(按任意键继续):"); getch(); printf("\r \r");//清除上面这一句话 fflush(stdin);//清空输入流,避免getch()、及scanf()函数受到空格等因素影响 } rand_i=rand()%(up_i[i]-down_i[i]+1)+down_i[i];//生成down_i~up_i之间的随机数 printf("按任意键开始(按下后即进行游戏计时):"); getch(); printf("\r \r");//清除上面这一句话 first_time=time(NULL);//记录游戏开始时间 printf("请输入一个数(%d~%d):\n",down_i[i],up_i[i]); while(1) { scanf("%d",&guess); if(guess>rand_i) puts("大了"); else if(guess puts("小了"); else { puts("恭喜你,答对了!(按Esc键退出,其他键继续)"); break; } } end_time=time(NULL);//记录游戏结束时间 time_sum[i]=difftime(end_time,first_time);//difftime()函数用来得到时间差 printf("本轮游戏时间为: %.0Lf seconds",time_sum[i]); if(‘\x1b’==getch())//注意这里有getch() { pai_hang_bang(fp,nickname,time_sum,end_time); return 0; } system("cls");//清除当前屏幕 i++; //下面为动态扩充数组 nickname=(char**)realloc(nickname,(i+1)*sizeof(char*)); nickname[i]=(char*)malloc(555*sizeof(char)); down_i=(int*)realloc(down_i,(i+1)*sizeof(int)); up_i=(int*)realloc(up_i,(i+1)*sizeof(int)); time_sum=(double*)realloc(time_sum,(i+1)*sizeof(double)); goto restart; getch(); fclose(fp); //下面为释放动态内存 for(j=0;j free(nickname[j]); free(nickname); free(down_i); free(up_i); free(time_sum); return 0; } void pai_hang_bang(FILE*fp,char**nickname,double*time_sum,time_t end_time) { void deal_rank(char**,double*);//生成排行榜(rank) int j; system("cls");//清除当前屏幕 deal_rank(nickname,time_sum); puts("已将游戏结果将保存在d:/游戏排行榜.txt\n"); printf("本轮排行榜为:\n\n保存时间:%s\n\n",ctime(&end_time)); puts("时间格式:星期,月,日,小时:分:秒,年\n"); puts("排名 成绩 范围 昵称 "); fprintf(fp,"\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n"); fprintf(fp,"\n本轮排行榜为:\n保存时间:%s",ctime(&end_time)); fputs("时间格式:星期,月,日,小时:分:秒,年\n",fp); for(j=0;j { printf("\n%-2d %.0LfS %d~%d %s \n",j+1,time_sum[j],down_i[j],up_i[j],nickname[j]); fputs("*******************************************************************",fp); fprintf(fp,"\n排名:%-2d",j+1); fprintf(fp,"\n成绩:%.0LfS",time_sum[j]); fprintf(fp,"\n范围:%d~%d",down_i[j],up_i[j]); fprintf(fp,"\n昵称:%s\n",nickname[j]); } } void deal_rank(char**nickname,double*time_sum)//插入排序法 { double t_time; int t_up,t_down; char t_name[555]; int dai_cha,bi_jiao,hou_yi;//待插,比较,后移 if(time_sum[0]>time_sum[1]) { t_time=time_sum[0],time_sum[0]=time_sum[1],time_sum[1]=t_time; } for(dai_cha=2;dai_cha for(bi_jiao=0;bi_jiao if(time_sum[dai_cha] { t_time=time_sum[dai_cha]; t_down=down_i[dai_cha]; t_up=up_i[dai_cha]; strcpy(t_name,nickname[dai_cha]); for(hou_yi=dai_cha;hou_yi>bi_jiao;hou_yi–) { time_sum[hou_yi]=time_sum[hou_yi-1]; down_i[hou_yi]=down_i[hou_yi-1]; up_i[hou_yi]=up_i[hou_yi-1]; strcpy(nickname[hou_yi],nickname[hou_yi-1]); } time_sum[bi_jiao]=t_time; down_i[bi_jiao]=t_down; up_i[bi_jiao]=t_up; strcpy(nickname[bi_jiao],t_name); } }

教你如何使用C语言编写简单小游戏

//声明#include#include#include#include#include#define SIZE 4 static int score=0; void putn(int n[][SIZE]); void getn(int n[][SIZE]); int isempty(int n[][SIZE]); int isfull(int n[][SIZE]); void math(int n[][SIZE],char c); void tow(int n[][SIZE]); void toa(int n[][SIZE]); void tos(int n[][SIZE]); void tod(int n[][SIZE]);//主函数 int main() { int i,j; int n[SIZE][SIZE]; char c=’ ‘; for(i=0;i { for(j=0;j { n[i][j]=0; } } printf( "***********************\n" " 2048(%dX%d) \n" " control:W/A/S/D \n" "press any key to begin \n" "***********************\n",SIZE,SIZE); getch(); system("cls"); //n[0][1]=2048; //n[0][3]=2048; while(1) { if(isempty(n)) getn(n); putn(n); if(!isempty(n)&&isfull(n)) break; sleep(200); c=getch(); while(c!=’w’&&c!=’a’&&c!=’s’&&c!=’d’) c=getch(); math(n,c); system("cls"); } printf(" Game Over!\n",score); return 0; }//函数 void putn(int n[][SIZE]) { int i,j; for(i=0;i { for(j=0;j printf("| "); printf("|\n"); for(j=0;j { if(n[i][j]==0) printf("| "); else printf("|%4d ",n[i][j]); } printf("|\n"); for(j=0;j printf("|_____"); printf("|\n"); } printf("score: %d",score); } void getn(int n[][SIZE]) { int a,b; a=rand()%SIZE; b=rand()%SIZE; while(n[a][b]!=0) { a=rand()%SIZE; b=rand()%SIZE; } n[a][b]=2; } int isempty(int n[][SIZE]) { int i,j,count=0; for(i=0;i for(j=0;j if(n[i][j]==0) count++; return count; } int isfull(int n[][SIZE]) { int i,j,count=0; for(i=0;i { for(j=1;j { if(n[i][j]==n[i][j+1]||n[i][j]==n[i][j-1]) count++; } } for(j=0;j { for(i=1;i { if(n[i][j]==n[i+1][j]||n[i][j]==n[i-1][j]) count++; } } return count>0?0:1; } void math(int n[][SIZE],char c) { switch(c) { case ‘w’:tow(n);break; case ‘a’:toa(n);break; case ‘s’:tos(n);break; case ‘d’:tod(n);break; default :; } } void tow(int n[][SIZE]) { int i,j,a; int m[SIZE]; for(a=0;a m[a]=0; for(j=0;j{ for(a=0;a { for(i=0;i { if(n[i][j]==0) { n[i][j]=n[i+1][j]; n[i+1][j]=0; } } } } for(j=0;j{ for(a=0,i=0;i { if(n[i][j]!=n[i+1][j]&&n[i][j]!=0||n[i][j]==2048) { m[a++]=n[i][j]; n[i][j]=0; } else if(n[i][j]==n[i+1][j]) { m[a++]=n[i][j]+n[i+1][j]; score+=m[a-1]; n[i][j]=0,n[i+1][j]=0; } } for(i=0;i { n[i][j]=m[i]; m[i]=0; } } } void toa(int n[][SIZE]) { int i,j,a; int m[SIZE]; for(a=0;a m[a]=0; for(i=0;i{ for(a=0;a { for(j=0;j { if(n[i][j]==0) { n[i][j]=n[i][j+1]; n[i][j+1]=0; } } } } for(i=0;i{ for(a=0,j=0;j { if(n[i][j]!=n[i][j+1]&&n[i][j]!=0||n[i][j]==2048) { m[a++]=n[i][j]; n[i][j]=0; } else if(n[i][j]==n[i][j+1]) { m[a++]=n[i][j]+n[i][j+1]; score+=m[a-1]; n[i][j]=0,n[i][j+1]=0; } } for(j=0;j { n[i][j]=m[j]; m[j]=0; } } } void tos(int n[][SIZE]) { int i,j,a; int m[SIZE]; for(a=0;a m[a]=0; for(j=SIZE-1;j>=0;j–) { for(a=SIZE-1;a>=0;a–) { for(i=SIZE-1;i>0;i–) { if(n[i][j]==0) { n[i][j]=n[i-1][j]; n[i-1][j]=0; } } } } for(j=SIZE-1;j>=0;j–) { for(a=SIZE-1,i=SIZE-1;i>=0;i–) { if(n[i][j]!=n[i-1][j]&&n[i][j]!=0||n[i][j]==2048) { m[a–]=n[i][j]; n[i][j]=0; } else if(n[i][j]==n[i-1][j]) { m[a–]=n[i][j]+n[i-1][j]; score+=m[a+1]; n[i][j]=0,n[i-1][j]=0; } } for(i=SIZE-1;i>=0;i–) { n[i][j]=m[i]; m[i]=0; } } } void tod(int n[][SIZE]) { int i,j,a; int m[SIZE]; for(a=0;a m[a]=0; for(i=SIZE-1;i>=0;i–) { for(a=SIZE-1;a>=0;a–) { for(j=SIZE-1;j>0;j–) { if(n[i][j]==0) { n[i][j]=n[i][j-1]; n[i][j-1]=0; } } } } for(i=SIZE-1;i>=0;i–) { for(a=SIZE-1,j=SIZE-1;j>=0;j–) { if(n[i][j]!=n[i][j-1]&&n[i][j]!=0||n[i][j]==2048) { m[a–]=n[i][j]; n[i][j]=0; } else if(n[i][j]==n[i][j-1]) { m[a–]=n[i][j]+n[i][j-1]; score+=m[a+1]; n[i][j]=0,n[i][j-1]=0; } } for(j=SIZE-1;j>=0;j–) { n[i][j]=m[j]; m[j]=0; } } } 需要注意的是:srand((unsigned) time(0);rand();是固定形式,不要更改任何一个字符!如果不能编译,请把sleep(200);注释掉,如果提示不能找到system("cls");请把system("cls")更换为clrscr();

C语言小游戏

贪吃蛇的源代码#include#include#include#include typedef struct snake { int a; int b; struct snake *u; struct snake *n; }snake,*snake1; typedef struct food { int a; int b; }food; void main() { char c,c0 = ‘d’; int i,j,k,n=1,t,at; snake p,q; snake *dd,*dd0,*dd1,*dd2; food f; srand(time(NULL)); p.u = NULL; p.n = &q; p.a = 5;p.b = 6;q.a = 5;q.b = 5; q.u = &p;q.n = NULL; dd=dd2= &q; f.a=(rand()%15+1); f.b=(rand()%15+1); while(1) { srand(time(NULL)); system("cls"); for(i = 0;i { for(j = 0; j { if(i == 0 ) printf("▁"); else if(i == 16) printf("▔"); else if(j == 0) printf("▕"); else if(j == 16) printf("▏"); else if(i == p.a && j == p.b) printf("■"); else if(i == f.a && j == f.b) printf("★"); else { t = 0; dd = dd2; for(k = 0; k { if(i == dd->a && j == dd->b) { printf("□"); t = 1; break; } dd = dd->u; } if(t == 0) printf(" "); } }printf("\n"); } at = 0; dd =dd2; for(i=0;i { if(p.a == dd->a && p.b == dd->b) { printf("game over!!\n"); exit(0); } dd = dd->u; } if(p.a == f.a && p.b == f.b) { dd = dd2; at =1; f.a = (rand()%15+1); f.b = (rand()%15+1); for(i=0;i { if(f.a == dd->a && f.b == dd->b) { f.a = dd2->a; f.b = dd2->b; break; } } n++; } if(kbhit()) { c = getch(); dd = dd2; if(c == ‘w’ && c0 != ‘s’) { if(at == 1) { dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; } dd = dd2; for(i = 0; i { dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; } if(p.a == 1) p.a = 15; else p.a = (p.a-1)%15; } else if(c == ‘s’ && c0 != ‘w’) { if(at == 1) { dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; } dd = dd2; for(i = 0; i { dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; } p.a = (p.a%15)+1; } else if(c == ‘a’ && c0 != ‘d’) { if(at == 1) { dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; } dd = dd2; for(i = 0; i { dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; } if(p.b == 1) p.b = 15; else p.b = (p.b-1)%15; } else if(c == ‘d’ && c0 != ‘a’) { if(at == 1) { dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; } dd = dd2; for(i = 0; i { dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; } p.b = (p.b%15)+1; } else { goto qq; } c0 = c; } else { qq: if(c0 == ‘w’) { if(at == 1) { dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; } dd = dd2; for(i = 0; i { dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; } if(p.a == 1) p.a = 15; else p.a=(p.a-1)%15; } else if(c0 == ‘s’) { if(at == 1) { dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; } dd = dd2; for(i = 0; i { dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; } p.a=(p.a%15)+1; } else if(c0 == ‘a’) { if(at == 1) { dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; } dd = dd2; for(i = 0; i { dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; } if(p.b == 1) p.b = 15; else p.b=(p.b-1)%15; } else if(c0 == ‘d’) { if(at == 1) { dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; } dd = dd2; for(i = 0; i { dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; } p.b=(p.b%15)+1; } } fflush(stdin); dd = &q; _sleep(0); } }

用c语言编一个小游戏

#include "stdio.h" #include "graphics.h" #include "conio.h" #include "stdlib.h" #include "math.h" void initgr(void){ int gd=DETECT,gm; registerbgidriver(EGAVGA_driver); initgraph(&gd,&gm,""); } int x1=200,y1=100; char accept,*p,*q; int *you; void turn_right(char accept); void turn_left(char accept) ; void turn_down(char accept) ; void change(); void main() { int i; int polygon1[18],polygon2[18],polygon3[18],polygon4[18]; /*第一方块*/ polygon1[0]=x1; polygon1[1]=y1; polygon1[2]=x1+30; polygon1[3]=y1; polygon1[4]=x1+30; polygon1[5]=y1+10; polygon1[6]=x1+20; polygon1[7]=y1+10; polygon1[8]=x1+20; polygon1[9]=y1+20; polygon1[10]=x1+10; polygon1[11]=y1+20; polygon1[12]=x1+10; polygon1[13]=y1+10; polygon1[14]=x1; polygon1[15]=y1+10; polygon1[16]=x1; polygon1[17]=y1; /*第二方块*/ polygon2[0]=x1+10; polygon2[1]=y1; polygon2[2]=x1+20; polygon2[3]=y1; polygon2[4]=x1+20; polygon2[5]=y1+30; polygon2[6]=x1+10; polygon2[7]=y1+30; polygon2[8]=x1+10; polygon2[9]=y1+20; polygon2[10]=x1; polygon2[11]=y1+20; polygon2[12]=x1; polygon2[13]=y1+10; polygon2[14]=x1+10; polygon2[15]=y1+10; polygon2[16]=x1+10; polygon2[17]=y1; you=polygon2; initgr(); /*设置方块*/ setcolor(RED); setbkcolor(8); setfillstyle(1,RED); drawpoly(9,polygon2); floodfill(x1+14,y1+14,RED); setcolor(14); drawpoly(9,polygon2); /*把方块信息载入*/ p=malloc(imagesize(x1,y1,x1+30,y1+20)); /*enter=13*/ getimage(x1,y1,x1+30,y1+30,p); /*接受字符判断和实现方块的具体移动*/ accept=getch(); while(accept!=’*’){ if(accept==’d’||accept==’D’) turn_right(accept); else if(accept==’a’||accept==’A’) turn_left(accept); else if(accept==’s’||accept==’S’) turn_down(accept); accept=getch(); /* if(accept==13) change(); */ } /*结束函数*/ closegraph(); } void turn_right(char accept) /*把方块向右移动*/ { while(accept==’d’||accept==’D’){ putimage(x1,y1,p,1); x1+=10; putimage(x1,y1,p,1); accept=getch(); /* if(accept==13) change(); */ delay(100000000000000000000000000); } } void turn_left(char accept) /*把方块向左移动*/ { while(accept==’a’||accept==’A’){ putimage(x1,y1,p,1); x1-=10; putimage(x1,y1,p,1); accept=getch(); /* if(accept==13) change(); */ delay(100000000000000000000000000); } } void turn_down(char accept) /*把方块向下移动*/ { while(accept==’s’||accept==’S’){ putimage(x1,y1,p,1); y1+=3; putimage(x1,y1,p,1); accept=getch(); /* if(accept==13) change(); */ delay(1000000); } } /*void change() { setcolor(8); setfillstyle(1,8); rectangle(x1,y1,x1+30,y1+30); floodfill(x1+15,y1+15,8); setcolor(RED); setbkcolor(8); setfillstyle(1,RED); drawpoly(9,you); floodfill(x1+14,y1+14,RED); setcolor(14); drawpoly(9,you); p=malloc(imagesize(x1,y1,x1+30,y1+20)); getimage(x1,y1,x1+30,y1+30,p); } */

【c程序软件】哪些是用c语言编写的程序谁知道现在各种流行的软件或…

COBOL(COmmon Business Oriented Language)——是数据处理领域最为广泛的程序设计语言。

COBOL历史 COBOL(COmmon Business Oriented Language)是第一个广泛使用的高级编程语言。

在企业管理中,数值计算并不复杂,但数据处理信息量却很大。

为专门解决经企管理问题,于1959年,由美国的一些计算机用户组织设计了专用于商务处理的计算机语言COBOL,并于1961年美国数据系统语言协会公布。

经不断修改、丰富完善和标准化,已发展为多种版本。

COBOL重视数据项合输入/输出记录的处理,对具有大量数据的文件提供了简单的处理方式。

从名字可以看出,它主要用于解决商业和企业管理等领域的大量数据处理问题,又称为企业管理语言、数据处理语言等。

Cobol语言的研制始于50年代末,当时计算机的生产已进入第二代,计算机应用领域开始从数值计算扩大到数据处理。

商业和企业事务管理中需要进行处理的数据量急剧增加,迫切需要有适用于这个领域的程序设计语言,以提高编制程序的质量和速度。

Cobol语言就是在这种社会背景下应运而生的。

也就是说,Cobol已经年过半百了。

Cobol正式发布于1960年4月,称为Cobol-60。

现在最新的版本应该是Cobol-2002了,而且还在不断改进中,未来的Cobol将支持XML等Web时代的新技术。

换言之,Cobol还将继续……但与C语言或FORTRAN语言相比,COBOL的数值运算、逻辑运算能力比较弱。

1959年,美国国防部召开了一个有政府机关、企业、计算机厂商参加的会议,大家认为有必要设计一种数据处理专用的语言,这就是著名的数据系统语言会议CODASYL(Congference on Data Systems Languages)。

1959年12月出现了第一个COBOL语言文本,并于1960年4月正式发表,因此也被称为COBOL-60。

1968年美国国家标准委员会ANSI又通过了新的标准ANSI COBOL X.3.23-1968。

1972年国际标准化组织ISO将其作为ISO COBOL-72。

1974年ANSI对COBOL-68作出了修订扩充,形成了ANSI COBOL X3.23-1974,随后1978年ISO采用其形成ISO COBOL-78Monday, 2004-09-06ANG="ZH-CN">又提出了ANSI X3.23-85,增加了很多结构化程序设计的内容,ISO标准ISO1989:1985也采用了该标准。

COBOL标准还在不断地改进和完善,最新的标准COBOL 2002主体已经于2002年12月出版,其他部分还在不断地完善之中,具体内容请参考NCITS和COBOLStandards。

COBOL特性 COBOL语言使用了300多个英语保留字,大量采用普通英语词汇和句型,COBOL程序通俗易懂,素有"英语语言"之称。

COBOL语言语法规则严格。

用COBOL语言编写的任一源程序,都要依次按标识部、环境部、数据部和过程部四部分书写,COBOL程序结构的"部"内包含"节","节"内包含"段",段内包含语句,语句由字或字符串组成,整个源程序象一棵由根到干,由干到枝,由枝到叶的树,习惯上称之为树型结构。

目前COBOL语言主要应用于情报检索、商业数据处理等管理领域。

Java擅长使用者接口的设计,而Cobol则是在商业逻辑(business logic)上十分强大。

Cobol被用来开发存货、银行、支付、流通和股票交易系统,可说大部份重要应用都是用Cobol开发的,而且这些都是企业里最最重要的系统 Cobol一直是符合业界标准,像是近年分别取得ANSI以及ISO的标准认证,随着环境的变迁,Cobol也不断增加许多新的功能,其中最大的特色在于我们转变为对象导向(object-oriented)的程序语言,这使得IBM一直持续和Cobol的合作。

早在Java出现以前,Acucorp在公司创立的第一天,就已经可以达到写一次,任何地方都能执行;目前我们可以在600种平台上执行,包括Windows、Linux、J2EE、Novell等。

Cobol现在就是以协助企业开发组件化的应用为目的。

COBOL主要应用在哪些领域 作为一种元老级的高级编程语言,COBOL拥有庞大的用户群和代码,据称用COBOL书写的程序超过了1000亿行( )。

另有调查发现世界上目前使用的商业应用软件之中的百分之七十是用COBOL代码编写的,并且以每年大约五十亿行代码的速度在增长。

看来,历史赋予了COBOL语言特殊的使命。

另外,只要大型机存在,其上就还要运行COBOL程序,而且很多资深的程序员已经习惯于COBOL,加入大型机环境的新程序员(例如我) 也不得不开始使用COBOL。

其实COBOL也有自身的一些优点,比如它对数据的显示格式有较强的控制。

另外,我想最重要的是,即使对于具有相当经验的IT公司来说,重新编写可靠的应用软件也是不实际或是从商业角度上并不可行的,而且还要花上很长的时间。

如上介绍,Cobol主要是应用在商业数据处理领域。

其中占最大百分比的是银行、金融和会计行业,其次是Computer VAR/Retail/Consulting行业,这是美国的调查资料。

Cobol在中国的应用应该也差不多。

(或更少) 常见的COBOL编译器有哪些? 由于COBOL最初是用于主机系统,所以它和主机系统联系得非常紧密。

主流的主机系统,例如IBM的大型机、中型机等都配备了相应的COBOL编译程序,例如VS COBOL II等。

微机的广泛使用…

c语言小游戏代码

最基础的贪吃蛇的代码#include#include//基本型态定义。

支援型态定义函数。

使用者界面函数 图形装置界面函数。

#include //用户通过按键盘产生的对应操作 (控制台) #include#include //日期和时间头文件 #define LEN 30#define WID 25int Snake[LEN][WID] = {0}; //数组的元素代表蛇的各个部位 char Sna_Hea_Dir = ‘a’;//记录蛇头的移动方向int Sna_Hea_X, Sna_Hea_Y;//记录蛇头的位置int Snake_Len = 3;//记录蛇的长度clock_t Now_Time;//记录当前时间,以便自动移动int Wait_Time ;//记录自动移动的时间间隔int Eat_Apple = 1;//吃到苹果表示为1int Level ;int All_Score = -1;int Apple_Num = -1;HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //获取标准输出的句柄 //句柄 :标志应用程序中的不同对象和同类对象中的不同的实例 方便操控,void gotoxy(int x, int y)//设置光标位置 { COORD pos = {x,y}; //定义一个字符在控制台屏幕上的坐标POS SetConsoleCursorPosition(hConsole, pos); //定位光标位置的函数}void Hide_Cursor()//隐藏光标 固定函数 { CONSOLE_CURSOR_INFO cursor_info = {1, 0}; SetConsoleCursorInfo(hConsole, &cursor_info); }void SetColor(int color)//设置颜色 { SetConsoleTextAttribute(hConsole, color);//是API设置字体颜色和背景色的函数 格式:SetConsoleTextAttribute(句柄,颜色); }void Print_Snake()//打印蛇头和蛇的脖子和蛇尾 { int iy, ix, color; for(iy = 0; iy for(ix = 0; ix { if(Snake[ix][iy] == 1)//蛇头 { SetColor(0xf); //oxf代表分配的内存地址 setcolor:34行自定义设置颜色的函数 gotoxy(ix*2, iy); printf("※"); } if(Snake[ix][iy] == 2)//蛇的脖子 { color = rand()%15 + 1; //rand()函数是产生随机数的一个随机函数。

C语言里还有 srand()函数等。

//头文件:stdlib.h if(color == 14) color -= rand() % 13 + 1; //变色 SetColor(color); gotoxy(ix*2, iy); printf("■"); } if(Snake[ix][iy] == Snake_Len) { gotoxy(ix*2, iy); SetColor(0xe); printf("≈"); } } }void Clear_Snake()//擦除贪吃蛇 { int iy, ix; for(iy = 0; iy for(ix = 0; ix { gotoxy(ix*2, iy); if(Snake[ix][iy] == Snake_Len) printf(" "); } }void Rand_Apple()//随机产生苹果 { int ix, iy; do { ix = rand() % LEN; iy = rand() % WID; }while(Snake[ix][iy]); Snake[ix][iy] = -1; gotoxy(ix*2, iy); printf("⊙"); Eat_Apple = 0; }void Game_Over()//蛇死掉了 { gotoxy(30, 10); printf("Game Over"); Sleep(3000); system("pause > nul"); exit(0); }void Move_Snake()//让蛇动起来 { int ix, iy; for(ix = 0; ix for(iy = 0; iy if(Snake[ix][iy] == 1) { switch(Sna_Hea_Dir)//根据新的蛇头方向标志蛇头 { case ‘w’: if(iy == 0) Game_Over(); else Sna_Hea_Y = iy – 1; Sna_Hea_X = ix; break; case ‘s’: if(iy == (WID -1)) Game_Over(); else Sna_Hea_Y = iy + 1; Sna_Hea_X = ix; break; case ‘a’: if(ix == 0) Game_Over(); else Sna_Hea_X = ix – 1; Sna_Hea_Y = iy; break; case ‘d’: if(ix == (LEN – 1)) Game_Over(); else Sna_Hea_X = ix + 1; Sna_Hea_Y = iy; break; default: break; } } if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1&&Snake[Sna_Hea_X][Sna_Hea_Y]!=0&&Snake[Sna_Hea_X][Sna_Hea_Y]!=-1) Game_Over(); if(Snake[Sna_Hea_X][Sna_Hea_Y] { ++Snake_Len; Eat_Apple = 1; } for(ix = 0; ix for(iy = 0; iy { if(Snake[ix][iy] > 0) { if(Snake[ix][iy] != Snake_Len) Snake[ix][iy] += 1; else Snake[ix][iy] = 0; } }Snake[Sna_Hea_X][Sna_Hea_Y] = 1;//处理蛇头 }void Get_Input()//控制蛇的移动方向 { if(kbhit()) { switch(getch()) { case 87: Sna_Hea_Dir = ‘w’; break; case 83: Sna_Hea_Dir = ‘s’; break; case 65: Sna_Hea_Dir = ‘a’; break; case 68: Sna_Hea_Dir = ‘d’; break; default: break; } } if(clock() – Now_Time >= Wait_Time)//蛇到时间自动行走 { Clear_Snake(); Move_Snake(); Print_Snake(); Now_Time = clock(); } }void Init()//初始化 { system("title 贪吃毛毛蛇"); system("mode con: cols=80 lines=25"); Hide_Cursor(); gotoxy(61, 4); printf("You Score:"); gotoxy(61, 6); printf("You Level:"); gotoxy(61, 8); printf("The Lenght:"); gotoxy(61, 10); printf("The Speed:"); gotoxy(61, 12); printf("Apple Num:"); int i; for(i = 0; i Snake[10+i][15] = i+1; int iy, ix;//打印蛇 for(iy = 0; iy for(ix = 0; ix { if(Snake[ix][iy]) { SetColor(Snake[ix][iy]); gotoxy(ix*2, iy); printf("■"); } } }void Pri_News()//打印信息 { SetColor(0xe); gotoxy(73,4); All_Score += Level; printf("%3d", All_Score); gotoxy(73, 6); printf("%3d", Level); gotoxy(73, 8); printf("%3d",Snake_Len); gotoxy(73, 10); printf("0.%3ds", Wait_Time/10); gotoxy(73, 12); printf("%d", Apple_Num); }void Lev_Sys()//等级系统 { if(((Apple_Num-1) / 10) == Level) { ++…

用C语言编写小游戏

我这有本《C游戏编程从入门到精通》电子书!《C语言课程设计案例精编》案例一 贪吃蛇游戏案例二 计算器案例三 黑白棋游戏案例四 迷宫问题案例五 扫地雷游戏案例六 速算24案例七 数据结构CAI系统案例八 进程调度案例九 存储管理分区分配算法案例十 通讯录案例十一 学生成绩管理案例十二 工资管理案例十三 图书借阅管理案例十四 教师工作量计算需要的话留下邮箱,给你发过去!

教你如何使用C语言编写简单小游戏

C语言是计算机专业都要学习的一门基础学科。

一般来说,是比较枯燥的.那么,我们能不能通过编一些小游戏来提高它的趣味性呢?这样学习程序设计,就不会是一件艰苦 ,枯燥的事,它变得象电脑游戏一样充满好奇,富有乐趣。

例如2048这款游戏: 方法/步骤: #include #include #include #include #include #define SIZE 4 static int score=0; void putn(int n[][SIZE]); void getn(int n[][SIZE]); int isempty(int n[][SIZE]); int isfull(int n[][SIZE]); void math(int n[][SIZE],char c); void tow(int n[][SIZE]); void toa(int n[][SIZE]); void tos(int n[][SIZE]); void tod(int n[][SIZE]); //主函数 int main() { int i,j; int n[SIZE][SIZE]; char c=’ ‘; for(i=0;i0?0:1; } void math(int n[][SIZE],char c) { switch(c) { case ‘w’:tow(n);break; case ‘a’:toa(n);break; case ‘s’:tos(n);break; case ‘d’:tod(n);break; default :; } } void tow(int n[][SIZE]) { int i,j,a; int m[SIZE]; for(a=0;a=0;j–) { for(a=SIZE-1;a>=0;a–) { for(i=SIZE-1;i>0;i–) { if(n[i][j]==0) { n[i][j]=n[i-1][j]; n[i-1][j]=0; } } } } for(j=SIZE-1;j>=0;j–) { for(a=SIZE-1,i=SIZE-1;i>=0;i–) { if(n[i][j]!=n[i-1][j]&&n[i][j]!=0||n[i][j]==2048) { m[a–]=n[i][j]; n[i][j]=0; } else if(n[i][j]==n[i-1][j]) { m[a–]=n[i][j]+n[i-1][j]; score+=m[a+1]; n[i][j]=0,n[i-1][j]=0; } } for(i=SIZE-1;i>=0;i–) { n[i][j]=m[i]; m[i]=0; } } } void tod(int n[][SIZE]) { int i,j,a; int m[SIZE]; for(a=0;a=0;i–) { for(a=SIZE-1;a>=0;a–) { for(j=SIZE-1;j>0;j–) { if(n[i][j]==0) { n[i][j]=n[i][j-1]; n[i][j-1]=0; } } } } for(i=SIZE-1;i>=0;i–) { for(a=SIZE-1,j=SIZE-1;j>=0;j–) { if(n[i][j]!=n[i][j-1]&&n[i][j]!=0||n[i][j]==2048) { m[a–]=n[i][j]; n[i][j]=0; } else if(n[i][j]==n[i][j-1]) { m[a–]=n[i][j]+n[i][j-1]; score+=m[a+1]; n[i][j]=0,n[i][j-1]=0; } } for(j=SIZE-1;j>=0;j–) { n[i][j]=m[j]; m[j]=0; } } }

970797游戏攻略网 » c 小游戏

赞 (0)