三九宝宝网宝宝教育教学论文

求C语言小游戏设计

01月09日 编辑 39baobao.com

[学VB好还是学c语言好还是V好]Basic语言 & Visual Basic 优点 (1)Basic 简单易学,很容易上手。 (2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。 (3)众多的控件让编程变得象垒...+阅读

我写了个贪吃蛇,有单人版,也有双人版这是单人版:#include#include#include#include#include#includeint food[2];int feng;int dengji=3;int speed=150;struct snake{ int x,y,life; struct snake *next;};void welcome(){ system("MODE con: COLS=79 LINES=24"); system("color 8F"); printf("欢迎来到贪吃蛇的世界\n"); printf(" By HB\n"); printf("↑ ↓ ← →\n"); printf("上 下 左 右\n"); printf("食物为:★\n"); printf("按空格暂停\n"); printf("按Z(大写)切换等级\n"); printf("等级从5级到1级是从高到低\n"); printf("注意:每次增加的分数=当前等级*10\n"); printf("按任意键开始游戏!\n"); getch(); system("cls");}void gotoxy(int x, int y){ COORD coord; coord.X = x;coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);}void makefood(struct snake*p){ int fx; struct snake*p1=p; srand(time(NULL)); fx=rand()%77+2; if(fx%2==0) { fx--; } food[0]=fx; food[1]=rand()%22+1; while(p!=NULL) { if(p->x==food[0]&p->y==food[1]) { makefood(p1); } p=p->next; }}void drawmap(struct snake* p){ system("cls"); printf("你的分数为:%d分 当前等级为:%d级",feng,dengji); gotoxy(p->x,p->y); printf("◇"); p=p->next; while(p!=NULL) { gotoxy(p->x,p->y); printf("※"); p=p->next; } gotoxy(food[0],food[1]); printf("★");}struct snake *mvsnake(struct snake *p,int z){ struct snake *p2,*p3; int x,y; x=p->x; y=p->y; switch(z) { case 1: { x-=2; break; } case 2: { x+=2; break; } case 3: { y--; break; } case 4: { y++; break; } } p2=(struct snake*)malloc(sizeof(struct snake)); p2->x=x; p2->y=y; p2->life=1; p2->next=p; if(p2->x>=79||p2->y>=24||p2->xylife=0; } p3=p; while(p3!=NULL) { if(p2->x==p3->x&p2->y==p3->y) { p2->life=0; } p3=p3->next; } if(p2->x==food[0]&p2->y==food[1]) { feng+=dengji*10; makefood(p2); } else { while(p->next->next!=NULL) { p=p->next; } p3=p->next; p->next=NULL; free(p3); } return p2;}int scan(int z){ char ch; if(kbhit()){ ch=getch(); switch(ch) { case 75:if(z!=2)z=1;break; case 77:if(z!=1)z=2;break; case 72:if(z!=4)z=3;break; case 80:if(z!=3)z=4;break; case 32:z=5;break; case 'Z':speed-=50; dengji++; if(speed==0){speed=250;dengji=1;} break; default :break; } if(ch==27)z=27; fflush(stdin); } return z;}int main(int argc, char *argv[]){ welcome(); loop:system("cls"); struct snake *snakenext; struct snake *snk=(struct snake*)malloc(sizeof(struct snake)); snk->x=15; snk->y=15; snk->life=1; snk->next=(struct snake*)malloc(sizeof(struct snake)); snk->next->x=14; snk->next->y=snk->y; snk->next->next=(struct snake*)malloc(sizeof(struct snake)); snk->next->next->x=13; snk->next->next->y=snk->y; snk->next->next->next=NULL; int z=2; makefood(snk); while(1) { int temp_z=z; z=scan(z); if(z==27)exit(0); if(z==5) { gotoxy(30,15); printf("暂停"); getch();z=temp_z; } snk=mvsnake(snk,z); if(snk->life==0)break; drawmap(snk); Sleep(speed); } system("cls"); gotoxy(25,11); printf("GAME OVER,你的最终分数为:%d分\n",feng); gotoxy(25,12); printf("按空格重新开始,按其他键结束!\n"); while(snk!=NULL) { snakenext=snk->next; free(snk); snk=snakenext; } Sleep(500); char cha; cha=getch(); if(cha==32) { goto loop; } return 0;}这是双人版:#include#include#include#include#include#includeint food[2];int feng1,feng2;int speed=150;int dengji=3;int chi;struct snake{ int x,y,life; struct snake *next;};void welcome(){ system("MODE con: COLS=79 LINES=24"); system("color 8F"); printf("欢迎来到双人贪吃蛇游戏\n"); printf(" By HB\n"); printf("玩家1:□□◇\n"); printf("W S A D(大写)\n"); printf("上 下 左 右\n"); printf("玩家2:■■◆\n"); printf("↑ ↓ ← →\n"); printf("上 下 左 右\n"); printf("食物为:★\n"); printf("按空格暂停\n"); printf("按Z(大写)切换等级\n"); printf("等级从5级到1级是从高到低\n"); printf("注意:每次增加的分数=当前等级*10\n"); printf("按任意键开始游戏!\n"); getch(); system("cls");}void gotoxy(int x, int y){ COORD coord; coord.X = x;coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);}void makefood(struct snake *p,struct snake *p2){ int fx; struct snake*p1=p; struct snake*p3=p2; srand(time(NULL)); fx=rand()%77+2; if(fx%2==0) { fx--; } food[0]=fx; food[1]=rand()%22+1; while(p!=NULL&p2!=NULL) { if((p->x==food[0]&p->y==food[1])||(p2->x==food[0]&p2->y==food[1])) { makefood(p1,p3); } p=p->next; p2=p2->next; }}void drawmap(struct snake *p,struct snake *p2){ system("cls"); printf("玩家1的分数为:%d分 当前等级为:%d级 玩家2的分数为:%d分",feng1,dengji,feng2); gotoxy(p->x,p->y); printf("◇");...

以下为关联文档:

学习c语言好还是Vb好对于c语言和VB无论先学习哪种都可以,因为2者都属于高级编程语言,不过建议选择先学习c语言,因为现在很多大学都是在大一下学期开设c语言课,在大一上学期课程不多的情况下,学习c语...

C语言和VB学哪个好给你点建议,如果你是编程初学者,那么建议你先学VB,VB可以快速的在WIN32平台上建立程序,学习起来相对简单,当你能使用VB完成一些比较有难度的项目任务时,这是可以考虑学习C,C语言...

用C语言编个小游戏// pukepai.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include#include#define N 100 #define M 21 void swapnum(int n, int m) { int tmp = 0; tmp = n;...

C语言编的小游戏谁帮我看看估计是把回车也接收了,我自定义了一个ch函数解决这个问题,但阁下还要注意一点,用户输入的数据可能是大写也肯能是小写字母,但程序中好像认大写字母。。 #include#include#includ...

教你如何使用C语言编写简单小游戏编写程序,实现如下表所示的5-魔方阵。 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 5-魔方阵 问题分析 所谓“n-魔方阵”,指的是使用1〜n2共n2个自然...

C语言编写小游戏求指导写东本,主要在于思路,做之前,先把思路整好,我先给你开个头吧 当点击开始后,就开始记时,下东西的速度,与时间成正比,记时越长,速度越快,然后以左右键来控制躲避物的方向,移动的速度就发...

求C语言小游戏程序答案 void main() { int sele=1,t; float x; system("cls");printf("欢迎使用简易菜单!本菜单在VC++平台编译通过\n"); printf("有何建议请联系本人!\n"); printf("成绩管理菜单\n"); printf...

关于c语言编写小游戏或小软件这个你问的和我以前想的一样,考二级那种东西,真没啥用,学C语言的把数据结构和算法一并学了,然后再学windows编程,怎么说呢?C语言的执行效率是相当高的,估计你学得东西看不出来,学C不...

C语言编程小朋友做游戏# include int main() { int a[50], total, number, i,j=0,k; scanf("%d%d",&total,&number); k=total; for(i=0;ia[i]=1; while(total!=1) { if(total>=number) { j=0; } els...

推荐阅读
图文推荐