c语言小游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言小游戏
#include
#include
#include
#include
#include
#define LEN 30
#define WID 25
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
int 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(h Console, pos); //定位光标位置的函数
}
void Hide_Cursor()//隐藏光标固定函数
CONSOLE_CURSOR_INFO cursor_info = {1, 0}; SetConsoleCursorInfo(hCon sole, &cursor_info);
}
void SetColor(int color)//设置颜色
{ SetConsoleTextAttribute(hC onsole, color);
//是API设置字体颜色和背景色的函数格式:SetConsoleTextAttribute(句柄,颜色);
}
void Print_Snake()//打印蛇头和蛇的脖子和蛇尾
{
int iy, ix, color;
for(iy = 0; iy < WID; ++iy) for(ix = 0; ix < LEN; ++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 < WID; ++iy) for(ix = 0; ix < LEN; ++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 < LEN; ++ix)//先标记蛇头
for(iy = 0; iy < WID; ++iy) if(Snake[ix][iy] == 1)
{