c语言游戏代码大全
一、用C语言编写的小游戏代码是什么 1、“猜数字小游戏”,每个数字后按空格,*后按回车确认 2、{ printf("\n\n猜数字小游戏\n\n"); 3、 printf(“猜四个数字,如数字与顺序都正确记为A,数字正确位置不对记为B.\n”); 4、{int m,n;//m是完全猜对的个数,n是顺序不对的个数 5、{srand((unsigned)time(NULL))
1、“猜数字小游戏”,每个数字后按空格,*后按回车确认
2、{ printf("\n\n猜数字小游戏\n\n");
3、 printf(“猜四个数字,如数字与顺序都正确记为A,数字正确位置不对记为B.\n”);
4、{int m,n;//m是完全猜对的个数,n是顺序不对的个数
5、{srand((unsigned)time(NULL));//初始化随机数发生器srand()
6、while(1){ for(int i=0;i<4;i++) a[i]=rand()%10;//rand()函数每次随机产生一个0-9的数
7、if((a[3]!=a[2]&&a[3]!=a[1]&&a[3]!=a[0])&&
8、(a[2]!=a[1]&&a[2]!=a[0])&&a[1]!=a[0]) break;}//4个随机数各自不相等
9、printf("请依次输入4个一位整数:\n\n");
10、{for(int i=0;i<4;i++) scanf(“%d”,&b[i]);
11、printf("你输入的是:%d%d%d%d",b[0],b[1],b[2],b[3]);
12、{ if(b[i]==a[j]&&i==j)m=m+1; if(b[i]==a[j]&&i!=j)n=n+1;}
13、printf("%dA%dB你试了%d次\n",m,n,count);
14、if(count==8){ count=0; break;}
15、if(m==4)printf("你猜对了(^-^)!就是:%d%d%d%d\n",a[0],a[1],a[2],a[3]);
16、else printf("你输了(T-T)!哈哈!应该是:%d%d%d%d\n",a[0],a[1],a[2],a[3]);
17、printf("(要继续吗?1或0)\n");
#include<windows.h>//基本型态定义。支援型态定义函数。使用者界面函数图形装置界面函数。
#include<conio.h>//用户通过按键盘产生的对应操作(控制台)
#include<time.h>//日期和时间头文件
int 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;//吃到苹果表示为1
HANDLE hConsole= GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出的句柄<windows.h>
//句柄:标志应用程序中的不同对象和同类对象中的不同的实例方便操控,
void gotoxy(int x, int y)//设置光标位置
COORD pos={x,y};//定义一个字符在控制台屏幕上的坐标POS
SetConsoleCursorPosition(hConsole, pos);//定位光标位置的函数<windows.h>
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()//打印蛇头和蛇的脖子和蛇尾
SetColor(0xf);//oxf代表分配的内存地址 setcolor:34行自定义设置颜色的函数
if(Snake[ix][iy]== 2)//蛇的脖子
color= rand()%15+ 1;//rand()函数是产生随机数的一个随机函数。C语言里还有 srand()函数等。
if(Snake[ix][iy]== Snake_Len)
void Clear_Snake()//擦除贪吃蛇
if(Snake[ix][iy]== Snake_Len)
void Rand_Apple()//随机产生苹果
for(ix= 0; ix< LEN;++ix)//先标记蛇头
switch(Sna_Hea_Dir)//根据新的蛇头方向标志蛇头
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)
if(Snake[Sna_Hea_X][Sna_Hea_Y]< 0)//吃到苹果
for(ix= 0; ix< LEN;++ix)//处理蛇尾
if(Snake[ix][iy]!= Snake_Len)
Snake[Sna_Hea_X][Sna_Hea_Y]= 1;//处理蛇头
void Get_Input()//控制蛇的移动方向
if(clock()- Now_Time>= Wait_Time)//蛇到时间自动行走
system("mode con: cols=80 lines=25");
for(i= 0; i< Snake_Len;++i)//生成蛇
printf("0.%3ds", Wait_Time/10);
if(((Apple_Num-1)/ 10)== Level)
srand((unsigned)time(NULL));//设置随机数的**
printf("请输入你想要的速度\n");
printf("请输入你想要的苹果数\n");
int gamespeed=50000;/*游戏速度自己调整*/
int yes;/*判断是否要出现食物的变量*/
int life;/*蛇的生命,0活着,1死亡*/
void GameOver(void);/*结束游戏*/
void GamePlay(void);/*玩游戏具体过程*/
void PrScore(void);/*输出成绩*/
initgraph(&gd,&gm,"c:\\tc");
/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/
for(i=50;i<=600;i+=10)/*画围墙*/
rectangle(i,40,i+10,49);/*上边*/
rectangle(i,451,i+10,460);/*下边*/
rectangle(50,i,59,i+10);/*左边*/
rectangle(601,i,610,i+10);/*右边*/
food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/
snake.direction=1;/*方向往右*/
snake.x[0]=100;snake.y[0]=100;/*蛇头*/
snake.x[1]=110;snake.y[1]=100;
while(1)/*可以重复玩游戏,压ESC键结束*/
while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/
if(food.yes==1)/*需要出现新食物*/
while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/
if(food.yes==0)/*画面上有食物了就要显示*/
rectangle(food.x,food.y,food.x+10,food.y-10);
for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/
/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/
for(i=3;i<snake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||
snake.y[0]>455)/*蛇是否撞到墙壁*/
if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/
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;/*画面上需要出现新的食物*/
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,
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);
if(snake.life==1)/*如果蛇死就跳出循环*/
if(key==UP&&snake.direction!=4)
if(key==RIGHT&&snake.direction!=2)
if(key==LEFT&&snake.direction!=1)
if(key==DOWN&&snake.direction!=3)
outtextxy(200,200,"GAME OVER");
setfillstyle(SOLID_FILL,YELLOW);
sprintf(str,"score:%d",score);