c 编写小游戏

c  编写小游戏

教你如何使用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语言编写小游戏

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

求一个用C语言编写的小游戏代码

/*也不知道你是什么级别的,我是一个新手,刚接触编程语言,以下是我自己变得一个小程序,在所有c语言的编译器(vc++6.0、turbo…………)上都能运行,你还可以进一步改进。

这是一个类似贪吃蛇的小游戏。

祝你好运*//*贪吃蛇*/#include#include#include#includeint head=3 ,tail=0;int main(){ int i,j,k=0; int zuobiao[2][80]; long start; int direction=77; int gamespeed; int timeover; int change(char qipan[20][80],int zuobiao[2][80],char direction); zuobiao[0][tail]=1;zuobiao[1][tail]=1;zuobiao[0][1]=1;zuobiao[1][1]=2;zuobiao[0][2]=1;zuobiao[1][2]=3;zuobiao[0][head]=1;zuobiao[1][head]=4; /*处理棋盘*/ char qipan[20][80];//定义棋盘 for(i=0;i for(j=0;j qipan[i][j]=’ ‘;//初始化棋盘 for(i=0;i qipan[0][i]=’_’; for(i=0;i qipan[i][0]=’|’; for(i=0;i qipan[i][79]=’|’; for(i=0;i qipan[19][i]=’_’; qipan[1][1]=qipan[1][2]=qipan[1][3]=’*’;//初始化蛇的位置 qipan[1][4]=’#’; printf("This is a game of a SNAKE.\nGOOD LUCK TO YOU !\n"); printf("Input your game speed,please.(e.g.300)\n"); scanf("%d",&gamespeed);while(direction!=’q’){ system("cls"); for(i=0;i for(j=0;j printf("%c",qipan[i][j]); timeover=1; start=clock(); while(!kbhit()&&(timeover=clock()-start if(timeover) { getch(); direction=getch(); } else direction=direction; if(!(direction==72||direction==80||direction==75||direction==77)) { return 0; system("cls"); printf("GAME OVER!\n"); } if(!change(qipan,zuobiao,direction)) { direction=’q’; system("cls"); printf("GAME OVER!\n"); }}return 0;} int change(char qipan[20][80],int zuobiao[2][80],char direction) { int x,y; if(direction==72) x=zuobiao[0][head]-1;y=zuobiao[1][head]; if(direction==80) x=zuobiao[0][head]+1;y=zuobiao[1][head]; if(direction==75) x=zuobiao[0][head];y=zuobiao[0][head]-1; if(direction==77) x=zuobiao[0][head];y=zuobiao[1][head]+1; if(x==0||x==18||y==78||y==0) return 0; if(qipan[x][y]!=’ ‘) return 0; qipan[zuobiao[0][tail]][zuobiao[1][tail]]=’ ‘; tail=(tail+1)%80; qipan[zuobiao[0][head]][zuobiao[1][head]]=’*’; head=(head+1)%80; zuobiao[0][head]=x; zuobiao[1][head]=y; qipan[zuobiao[0][head]][zuobiao[1][head]]=’#’; return 1; }

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

拼图游戏,在TC下能正常运行,已经试过,求追加。

#include #include /*使用其中的int random(int a): 产生一个在0到a-1之间的整数 和 randomize():复位随机发生器*/ #include /*使用其中的gotoxy(int x,int y): 把光标移动到屏幕的x(1~80),y(1~25/50)处*/ /*和clrscr():清屏*/ int num[]={1,2,3,4,5,6,7,8,0}; /*方块的数字*/ main(){ char key=0; /*键盘码*/ int pos; /*九格中,空格的位置*/ clrscr(); /*清屏*/ randomize(); /*初始化随机发生器*/ newGame(); for(;;){ key=getch(); /*获得键盘输入*/ if(key==0) continue; pos=GetTheNull(); /*得到空格*/ switch(key){ /*测试按键*/ case 72: /*按下*/ if(pos break; case 80: /*按上*/ if(pos>=3) change(pos,pos-3); break; case 77: /*按左*/ if(pos%3!=0) change(pos,pos-1); break; case 75: /*按右*/ if(pos%3!=2) change(pos,pos+1); break; case 110: /*按下’n’新建游戏*/ newGame(); } update(); /*更新*/ if(isSuccess()){ /*看是否游戏成功*/ gotoxy(26,10); /*成功了,输出一个写有Well done!的外框*/ printf("\332\304\304\304\304\304\304\304\304\304\304\304\304\267"); gotoxy(26,11); printf("\263 \272"); gotoxy(26,12); printf("\263 Well Done! \272"); gotoxy(26,13); printf("\263 \272"); gotoxy(26,14); printf("\324\315\315\315\315\315\315\315\315\315\315\315\315\274\n"); getch(); newGame(); /*新游戏*/ } if(key==27) break; /*退出*/ } clrscr(); /*清屏*/ } newGame(){ /*新建游戏,实际上就是把有数字的八个方格打散, 这种效果的实现就是随机的两两交换,而怎么不与空的那个交换呢? 这涉及有没有解的问题 不管怎么样,九格游戏最后的结果只有两个: 123 | 123 456 | 456 78 | 87 (证明从略) 而要两两交换而始终有解的话,(从原序列开始)必须:相邻交换的次数为偶 但我们用一种更有效的方法: 每一个总与其下第二个交换. 第7,8个与0,1交换,只要交换次数多,仍可获得相同的效果. 而这些的前提是其中的0不能与其第奇数个作奇数次交换. 为了省事,不处理0… 其中产道理,请自己思考 */ int i,a,b; for(i=0;i num[8]=0; /*将数组复原*/ for(i=0;i a=random(8); /*产生随机数*/ b=(a+2)%8; /*得到下第二个的数组下标*/ change(a,b); /*交换*/ } update(); } update(){ /*在屏幕上画出整个九格图像,关于定位的问题自己分析*/ int i,j; for(i=0;i gotoxy(24,8+i*3); for(j=0;j if (num[j+i*3]!=0) printf("\332\304\304\304\304\267"); else printf(" "); } gotoxy(24,9+i*3); for(j=0;j if (num[j+i*3]!=0) printf("\263 %d \272",num[j+i*3]); else printf(" "); } gotoxy(24,10+i*3); for(j=0;j if (num[j+i*3]!=0) printf("\324\315\315\315\315\274"); else printf(" "); } printf("\n"); } } int isSuccess(){ /*判断是否游戏*/ int i,ret=1; for(i=0;i ret=ret&&(num[i]==(i+1)); return ret; } int GetTheNull(){ /*获得空格的位置*/ int i; for(i=0;i if (num[i]==0) return i; } } change(int a,int b){ /*交换num[a],num[b]*/ int temp; temp=num[a]; num[a]=num[b]; num[b]=temp; }

用C++编写的小游戏源代码

以下是贪吃蛇源代码:#include#include#include#include#include#define N 21void gotoxy(int x,int y)//位置函数{COORD pos;pos.X=2*x;pos.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}void color(int a)//颜色函数{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}void init(int apple[2])//初始化函数(初始化围墙、显示信息、苹果){int i,j;//初始化围墙int wall[N+2][N+2]={{0}};for(i=1;i{for(j=1;jwall[i][j]=1;}color(11);for(i=0;i{for(j=0;j{if(wall[i][j])coutelse cout}cout}gotoxy(N+3,1);//显示信息color(20);coutgotoxy(N+3,2);color(20);coutgotoxy(N+3,3);color(20);coutapple[0]=rand()%N+1;//苹果apple[1]=rand()%N+1;gotoxy(apple[0],apple[1]);color(12);cout}int main(){int i,j;int** snake=NULL;int apple[2];int score=0;int tail[2];int len=3;char ch=’p’;srand((unsigned)time(NULL));init(apple);snake=(int**)realloc(snake,sizeof(int*)*len);for(i=0;isnake[i]=(int*)malloc(sizeof(int)*2);for(i=0;i{snake[i][0]=N/2;snake[i][1]=N/2+i;gotoxy(snake[i][0],snake[i][1]);color(14);cout}while(1)//进入消息循环{tail[0]=snake[len-1][0];tail[1]=snake[len-1][1];gotoxy(tail[0],tail[1]);color(11);coutfor(i=len-1;i>0;i–){snake[i][0]=snake[i-1][0];snake[i][1]=snake[i-1][1];gotoxy(snake[i][0],snake[i][1]);color(14);cout}if(kbhit()){gotoxy(0,N+2);ch=getche();}switch(ch){case ‘w’:snake[0][1]–;break;case ‘s’:snake[0][1]++;break;case ‘a’:snake[0][0]–;break;case ‘d’:snake[0][0]++;break;default: break;}gotoxy(snake[0][0],snake[0][1]);color(14);coutSleep(abs(200-0.5*score));if(snake[0][0]==apple[0]&&snake[0][1]==apple[1])//吃掉苹果后蛇分数加1,蛇长加1{score++;len++;snake=(int**)realloc(snake,sizeof(int*)*len);snake[len-1]=(int*)malloc(sizeof(int)*2);apple[0]=rand()%N+1;apple[1]=rand()%N+1;gotoxy(apple[0],apple[1]);color(12);coutgotoxy(N+5,3);color(20);cout}if(snake[0][1]==0||snake[0][1]==N||snake[0][0]==0||snake[0][0]==N)//撞到围墙后失败{gotoxy(N/2,N/2);color(30);coutfor(i=0;ifree(snake[i]);Sleep(INFINITE);exit(0);}}return 0;}参考资料:从C++吧看来的

【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++编写一个小游戏?

这类游戏,你可以去图书馆借一本 ”C语言课程设计”这本书真的认认真真学完,敲出每一行代码,你的面向过程编程能力,基本可以放心了。

有什么代码细节搞不定,上 CSDN, 博客园,overflow 去问,去发帖问。

一:C++他爹Bjarne Stroustrup说过的一句话“我特别讨厌语言的设计者把自己的喜好强加给用户”(看向go)。

结果C++为了不限制你的想法,于是也就变成了现在这个样子——包含若干范式,大概有1,面向对象(灵活应用virtual继承+shared_ptr可以达到java/C#的效果)2,模板(这里分两类,分别为type rich programming和meta programming,区别很大)3,函数式编程(如今有了lambda,配合文件,简直无敌了)二:C++学习建议C++缺点之一,是相对许多语言复杂,而且难学难精。

许多人说学习C语言只需一本K&R《C程序设计语言》即可,但C++书籍却是多不胜数。

我是从C进入C++,皆是靠阅读自学。

在此分享一点学习心得。

个人认为,学习C++可分为4个层次:第一层次,C++基础:挑选一本入门书籍,如《C++ Primer》、《C++大学教程》、或Stroustrup撰写的经典《C++程序设计语言》或他一年半前的新作《C++程序设计原理与实践》,而一般C++课程也止于此,另外《C++ 标准程序库》及《The C++ Standard Library Extensions》可供参考;第二层次,正确高效地使用C++:此层次开始必须自修,阅读过《(More)Effective C++》、《(More)Exceptional C++》、《Effective STL》及《C++编程规范》等,才适宜踏入专业C++开发之路;第三层次,深入了解C++:关于全局问题可读《深入探索C++对象模型》、《Imperfect C++》、《C++沉思录》、《STL源码剖析》,要挑战智商,可看关于模版及模版元编程的书籍如《C++ Templates》、《C++设计新思维》、《C++模版元编程》;第四层次,研究C++:阅读《C++语言的设计和演化》、《编程的本质》(含STL设计背后的数学根基)、C++标准文件《ISO/IEC 14882:2003》、C++标准委员会的提案书和报告书、关于C++的学术文献。

用C++编写的小游戏源代码

以下是贪吃蛇源代码:#include#include#include#include#include#define N 21 void gotoxy(int x,int y)//位置函数 { COORD pos; pos.X=2*x; pos.Y=y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos); } void color(int a)//颜色函数 { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a); } void init(int apple[2])//初始化函数(初始化围墙、显示信息、苹果) { int i,j;//初始化围墙 int wall[N+2][N+2]={{0}}; for(i=1;i{ for(j=1;jwall[i][j]=1; } color(11); for(i=0;i{ for(j=0;j{ if(wall[i][j]) coutelse cout} cout} gotoxy(N+3,1);//显示信息 color(20); coutgotoxy(N+3,2); color(20); coutgotoxy(N+3,3); color(20); coutapple[0]=rand()%N+1;//苹果 apple[1]=rand()%N+1; gotoxy(apple[0],apple[1]); color(12); cout} int main() { int i,j; int** snake=NULL; int apple[2]; int score=0; int tail[2]; int len=3; char ch=’p’; srand((unsigned)time(NULL)); init(apple); snake=(int**)realloc(snake,sizeof(int*)*len); for(i=0;isnake[i]=(int*)malloc(sizeof(int)*2); for(i=0;i{ snake[i][0]=N/2; snake[i][1]=N/2+i; gotoxy(snake[i][0],snake[i][1]); color(14); cout} while(1)//进入消息循环 { tail[0]=snake[len-1][0]; tail[1]=snake[len-1][1]; gotoxy(tail[0],tail[1]); color(11); coutfor(i=len-1;i>0;i–) { snake[i][0]=snake[i-1][0]; snake[i][1]=snake[i-1][1]; gotoxy(snake[i][0],snake[i][1]); color(14); cout} if(kbhit()) { gotoxy(0,N+2); ch=getche(); } switch(ch) { case ‘w’:snake[0][1]–;break; case ‘s’:snake[0][1]++;break; case ‘a’:snake[0][0]–;break; case ‘d’:snake[0][0]++;break; default: break; } gotoxy(snake[0][0],snake[0][1]); color(14); coutSleep(abs(200-0.5*score)); if(snake[0][0]==apple[0]&&snake[0][1]==apple[1])//吃掉苹果后蛇分数加1,蛇长加1 { score++; len++; snake=(int**)realloc(snake,sizeof(int*)*len); snake[len-1]=(int*)malloc(sizeof(int)*2); apple[0]=rand()%N+1; apple[1]=rand()%N+1; gotoxy(apple[0],apple[1]); color(12); coutgotoxy(N+5,3); color(20); cout} if(snake[0][1]==0||snake[0][1]==N||snake[0][0]==0||snake[0][0]==N)//撞到围墙后失败 { gotoxy(N/2,N/2); color(30); coutfor(i=0;ifree(snake[i]); Sleep(INFINITE); exit(0); } } return 0; }参考资料:从C++吧看来的

970797游戏攻略网 » c 编写小游戏

赞 (0)