贪吃蛇的实现—C语言

目录

简单解释几个函数:

1、记录最高分的函数

2、 隐藏光标

3、初始化蛇身

 4、播放背景音乐的函数

完整代码如下:

 运行界面显示:


█ 开发工具:Dev C++

 

简单解释几个函数:

1、记录最高分的函数

分为读取和储存,即分为 File_out() 和 File_in();

/**
 * 储存最高分进文件
 */
void File_in()
{
	FILE *fp;
	fp = fopen("save.txt", "w+");       //以读写的方式建立一个名为save.txt的文件
	fprintf(fp, "%d", score);           //把分数写进文件中
	fclose(fp);                         //关闭文件
}



/**
 * 在文件中读取最高分
 */
void File_out()
{
	FILE *fp;
	fp = fopen("save.txt", "a+");       //打开文件save.txt
	fscanf(fp, "%d", &HighScore);       //把文件中的最高分读出来
	fclose(fp);                         //关闭文件
}

 ✔ 文件中写入数据的步骤,首先使用fopen()方法来打开文件,如果要打开的文件不存在,那么创建此文件;然后通过fprintf()方法把数据写入文件;最后使用fclose()方法关闭文件。

 

2、 隐藏光标

//隐藏光标
void HideCursor()
{
 CONSOLE_CURSOR_INFO curInfo; //定义光标信息的结构体变量
 curInfo.dwSize = 1;  //如果没赋值的话,隐藏光标无效
 curInfo.bVisible = FALSE; //将光标设置为不可见
 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台句柄
 SetConsoleCursorInfo(handle, &curInfo); //设置光标信息
}

 

3、初始化蛇身

/**
 * 初始化蛇身,画蛇身
 */
void initsnake()
{
    snakee *tail;   //定义蛇尾指针 
    int i;
    tail=(snakee*)malloc(sizeof(snakee));  //初始化指针,给指针开辟一块初始空间 
	                         //从蛇尾开始,头插法,以x,y设定开始的位置//
    tail->x=24;         	//蛇的初始位置(24,5)
    tail->y=5;
    tail->next=NULL;
    for(i=1;i<=4;i++)       //设置蛇身,长度为5
    {
        head=(snakee*)malloc(sizeof(snakee)); //初始化蛇头   lgm 前面已经全局变量蛇头指针 snake *head
        head->next=tail;        //蛇头的下一位为蛇尾
        head->x=24+2*i;         //设置蛇头位置
        head->y=5;
        tail=head;              //蛇头变成蛇尾,然后重复循环
    }
    while(tail!=NULL)		//从头到尾,输出蛇身
    {
        gotoxy(tail->x,tail->y);
		color(2);
        printf("★");       //输出蛇身,蛇身使用★组成
        tail=tail->next;    //蛇头输出完毕,输出蛇头的下一位,一直输出到蛇尾
    }
}

 4、播放背景音乐的函数

	#include<mmsystem.h>    //多媒体设备接口 
    #pragma comment(lib,"winmm.lib")  //预处理命令 
    mciSendString("open music1.MP3",0,0,0);
	mciSendString("play music1.MP3 repeat",0,0,0); 

✔ music1.MP3 是同路径下的一个MP3文件。

如果报错,可能需要在编译器环境里添加-lwinmm;即点击工具-->点击编译选项-->在下图位置添加。

完整代码如下:

注:有借鉴他人博客。

//#include<stdafx.h>			//vc自带头文件  在Dev-c++中不需要 
#include<stdio.h>
#include<conio.h>			//标准输入输出函数库
#include<time.h>			//用于获得随机数
#include<windows.h>		//控制dos界面
#include<mmsystem.h>    //多媒体设备接口 
#pragma comment(lib,"winmm.lib")  //预处理命令 
#include<stdlib.h>			//即standard library标志库头文件,里面定义了一些宏和通用工具函数

		//接收键盘输入输出
/*******宏  定  义*******/
#define U 1
#define D 2
#define L 3 
#define R 4      //蛇的状态,U:上 ;D:下;L:左 R:右
/*******定  义  全  局  变  量 *******/
typedef struct snake 		//蛇身的一个节点
{
    int x;
    int y;
    struct snake *next;
}snakee;

int score=0,add=10;			//总得分与每次吃食物得分
int HighScore = 0;			//最高分
int status,sleeptime=400;	//蛇前进状态,每次运行的时间间隔
snakee *head, *food;			//蛇头指针,食物指针
snakee *q;					//遍历蛇的时候用到的指针
int endgamestatus=0;		//游戏结束的情况,1:撞到墙;2:咬到自己;3:主动退出游戏。
HANDLE hOut;				//控制台句柄

/*******函  数  声  明 *******/
void gotoxy(int x,int y);   //设置光标位置
int color(int c);           //更改文字颜色
void printsnake();          //字符画---蛇
void welcometogame();       //开始界面
void createMap();           //绘制地图
void scoreandtips();		//游戏界面右侧的得分和小提示
void initsnake();           //初始化蛇身,画蛇身
void createfood();          //创建并随机出现食物
int biteself();             //判断是否咬到了自己
void cantcrosswall();       //设置蛇撞墙的情况
void speedup();				//加速
void speeddown();			//减速
void snakemove();           //控制蛇前进方向
void keyboardControl();     //控制键盘按键
void Lostdraw();            //游戏结束界面
void endgame();             //游戏结束
void choose();				//游戏失败之后的选择
void File_out();            //在文件中读取最高分
void File_in();            	//储存最高分进文件
void HideCursor();          //隐藏光标 
void explation();           //游戏说明

//主函数 
int main() 
{

	HideCursor();
	mciSendString("open music1.MP3",0,0,0);
	mciSendString("play music1.MP3 repeat",0,0,0); 
	system("mode con cols=100 lines=30");  //设置控制台的宽高 
	printsnake();                       //to draw the snake by character
	
	welcometogame();                      //start to play game
	File_out();
    keyboardControl();
    
	endgame(); 
	return 0;
} 

//
/**
 * 设置光标位置
 */
void gotoxy(int x,int y)
{
    COORD c;
    c.X=x;
    c.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}

//隐藏光标
void HideCursor()
{
 CONSOLE_CURSOR_INFO curInfo; //定义光标信息的结构体变量
 curInfo.dwSize = 1;  //如果没赋值的话,隐藏光标无效
 curInfo.bVisible = FALSE; //将光标设置为不可见
 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台句柄
 SetConsoleCursorInfo(handle, &curInfo); //设置光标信息
}

/**
 * 文字颜色函数      此函数的局限性:1、只能Windows系统下使用   2、不能改变背景颜色
 */
int color(int c)
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c);        //更改文字颜色
	return 0;
}

/*
*   使用字符画---snake 
*/

void printsnake()
{
	color(2);
	printf("                                                                                         \n");
	printf("                       __________       ___                                              \n");
	printf("                      /          \\     / \\ \\    |____      __\\__                     \n");
	printf("                     /  ________  \\   / ___ \\  _/ __     | |   /                       \n");
	printf("                     |  |      |__|     _/_   |_|  /    [|] |/                           \n");
	printf("                     |  |              | | |      /     _|_ \\__/                        \n");
	printf("                     \\  \\_______        / \\      |___/        ____                    \n");
	printf("                      \\         \\    ____ ____      ____   __ |  |  ___   ______       \n");
	printf("                       \\_______  \\   |  |/    \\    /    \\_/ / |  | /  /  /      \\   \n");
	printf("                               \\  \\  |    ___  \\  / ____   /  |  |/  /  /  ____  \\   \n");
	printf("                     __        |  |  |   /   \\  \\ | |  |  /   |     /  |  /____\\  |   \n");
	printf("                    \\  \\_______|  |  |  |    |  | | |__|  |   |     \\  |  ________/   \n");
	printf("                     \\            /  |  |    |  |  \\       \\  |  |\\  \\  \\  \\____  \n");
	printf("                      \\__________/   |__|    |__|   \\___/\\__\\ |__| \\__\\  \\______/ \n");	
}

void welcometogame()
{
	int n;
	int i,j = 1;
	gotoxy(43,18);
	color(15);
	printf("贪 吃 蛇 大 作 战");
	color(15);          			//黄色边框
	for (i = 20; i <= 26; i++)   	//输出上下边框┅
	{
		for (j = 27; j <= 74; j++)  //输出左右边框┇
		{
			gotoxy(j, i);
			if (i == 20 || i == 26)
			{
				printf("-");
            }
			else if (j == 27 || j == 74)
            {
				printf("|");
            }
		}
	}
	color(2);
	gotoxy(35, 22);
	printf("1.开始游戏");
	gotoxy(55, 22);
	printf("2.游戏说明");
	gotoxy(35, 24);
	printf("3.退出游戏");
	gotoxy(29,27);
	color(15);
	printf("请选择[1  2  3]:[  ]\b\b");        //\b为退格,使得光标处于[]中间
	color(2);
    scanf("%d", &n);    		//输入选项
    switch (n)
    {
    	case 1:
    		system("cls");
			createMap();        //创建地图
    		initsnake();        //初始化蛇身
    		createfood();       //创建食物
    		keyboardControl();	//按键控制
        	break;
    	case 2:
        	explation(); 
        	break;
    	case 3:
        	exit(0);     		//退出游戏
        	break;
		default:				//输入非1~3之间的选项
			color(12);
			gotoxy(40,28);
			printf("请输入1~3之间的数!");
			getch();			//输入任意键
			system("cls");		//清屏
			printsnake();
			welcometogame();
    }
}

/**
 * 创建地图
 */
void createMap()
{
    int i,j;
    for(i=0;i<58;i+=2)		//打印上下边框
    {
        gotoxy(i,0);
		color(2);			//深紫色的边框
        printf("□");
        gotoxy(i,26);
        printf("□");
    }
    for(i=1;i<26;i++)		//打印左右边框
    {
        gotoxy(0,i);
        printf("□");                        
        gotoxy(56,i);
        printf("□");        
    }
	for(i = 2;i<56;i+=2)	//打印中间网格
	{
		for(j = 1;j<26;j++)
		{
			gotoxy(i,j);
			color(15);
			printf("■");
		}
	}
}
/**
 *  游戏界面右侧的得分和小提示
 */
void scoreandtips()
{
	File_out();
	gotoxy(64,4);
	color(11);
	printf("☆最高记录☆:%d",HighScore);
	gotoxy(64,8);
	color(14);
	printf("得分:%d  ",score);
	gotoxy(64,9);
	color(14);
	printf("等级:%d",score/100); 
	color(13);
	gotoxy(73,11);
	printf("小 提 示");
	gotoxy(60,13);
	color(6);
	printf("╬ ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ ╬");
	gotoxy(60,25);
	printf("╬ ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ ╬");
	color(3);
	gotoxy(64,14);
	printf("每个食物得分:%d分",add);
	gotoxy(64,16);
	printf("不能穿墙,不能咬到自己");
	gotoxy(64,18);
	printf("用↑ ↓ ← →分别控制蛇的移动");
	gotoxy(64,20);
	printf("F1 为加速,F2 为减速");
	gotoxy(64,22);
	printf("space:暂停游戏");
	gotoxy(64,24);
    printf("ESC :退出游戏");
}



/**
 * 初始化蛇身,画蛇身
 */
void initsnake()
{
    snakee *tail;   //定义蛇尾指针 
    int i;
    tail=(snakee*)malloc(sizeof(snakee));  //初始化指针,给指针开辟一块初始空间 
	                         //从蛇尾开始,头插法,以x,y设定开始的位置//
    tail->x=24;         	//蛇的初始位置(24,5)
    tail->y=5;
    tail->next=NULL;
    for(i=1;i<=4;i++)       //设置蛇身,长度为5
    {
        head=(snakee*)malloc(sizeof(snakee)); //初始化蛇头   lgm 前面已经全局变量蛇头指针 snake *head
        head->next=tail;        //蛇头的下一位为蛇尾
        head->x=24+2*i;         //设置蛇头位置
        head->y=5;
        tail=head;              //蛇头变成蛇尾,然后重复循环
    }
    while(tail!=NULL)		//从头到尾,输出蛇身
    {
        gotoxy(tail->x,tail->y);
		color(2);
        printf("★");       //输出蛇身,蛇身使用★组成
        tail=tail->next;    //蛇头输出完毕,输出蛇头的下一位,一直输出到蛇尾
    }
}

/**
 * 随机出现食物
 */
void createfood()
{
    snakee *food_1;                   //定义临时食物指针 
    //srand((unsigned)time(NULL));        	//初始化随机数
   
    food_1=(snakee*)malloc(sizeof(snakee));   //初始化food_1
    srand(time(NULL));        	//初始化随机数
                            
				 			//保证其为偶数,使得食物能与蛇头对其,然后食物会出现在网格线上
    food_1->x=rand()%52+2; 
    //food_1->x=23;
	while((food_1->x%2)!=0)    			
    {
        food_1->x=rand()%52+2;              //食物随机出现
    }
	food_1->y=rand()%24+1;
    q=head;
    while(q->next==NULL)
    {
        if(q->x==food_1->x && q->y==food_1->y) //判断蛇身是否与食物重合
        {
            free(food_1);               //如果蛇身和食物重合,那么释放食物指针
            createfood();               //重新创建食物
        }
        q=q->next;
    }
    gotoxy(food_1->x,food_1->y);
    food=food_1;
	color(12);
    printf("◎");           //输出食物
}


/**** to see if the snake bite himdelf**/
int biteself()
{
    snakee *self;            //定义self为蛇身上的一个节点
    self=head->next;        //self是蛇头之外的蛇身上的节点,从蛇头的下一个节点开始 
    while(self!=NULL)
    {
        if(self->x==head->x && self->y==head->y)    //如果self和蛇身上的节点重合
        {
            return 1;       //返回1
        }
        self=self->next;
    }
    return 0;
}
/**
 * 设置蛇撞墙的情况
 */
void cantcrosswall()
{  
    if(head->x==0 || head->x==56 ||head->y==0 || head->y==26) //如果蛇头碰到了墙壁
    {
        endgamestatus=1;        //返回第一种情况
        endgame();              //出现游戏结束界面
    }
}
/**
 *  加速,蛇吃到食物会自动提速,并且按F1会加速
 */
void speedup()
{
	if(sleeptime>=50)        //如果时间间隔大于等于50 
	{
		sleeptime=sleeptime-10;    //时间间隔减10 
		add=add+2;                //每吃一次食物,得分加2 

    }
}
/**
 *  减速,按F2会减速
 */
void speeddown()
{
	if(sleeptime<350)               //如果时间间隔小于350
    {
        sleeptime=sleeptime+30;     //时间间隔加上30
        add=add-2;                  //每吃一次食物的得分减2

    }
}
void keyboardControl()
{
	status=D;       //初始蛇向下移动
    while(1)
    {
		scoreandtips();
        if(GetAsyncKeyState(VK_UP) && status!=D)            //GetAsyncKeyState函数用来判断函数调用时指定虚拟键的状态
        {
            status=U;           //如果蛇不是向下前进的时候,按上键,执行向上前进操作
        }
        else if(GetAsyncKeyState(VK_DOWN) && status!=U)     //如果蛇不是向上前进的时候,按下键,执行向下前进操作
        {
            status=D;
        }
        else if(GetAsyncKeyState(VK_LEFT)&& status!=R)      //如果蛇不是向右前进的时候,按左键,执行向左前进
        {
            status=L;
        }
        else if(GetAsyncKeyState(VK_RIGHT)&& status!=L)     //如果蛇不是向左前进的时候,按右键,执行向右前进
        {
            status=R;
        }
        if(GetAsyncKeyState(VK_SPACE))		//按暂停键,执行pause暂停函数
        {
            while(1)
			{
				Sleep(300); //sleep()函数,头文件#include <unistd.h>  另进程暂停,知道达到里面设定的参数的时间。
				if(GetAsyncKeyState(VK_SPACE))      //按空格键暂停
				{
					break;
				}
				
			}       
        }
        else if(GetAsyncKeyState(VK_ESCAPE))
        {
            endgamestatus=3;    //按esc键,直接到结束界面
            break;
        }
        else if(GetAsyncKeyState(VK_F1))    //按F1键,加速
        {
            speedup();
        }
        else if(GetAsyncKeyState(VK_F2))    //按F2键,减速
        {
        	speeddown();
            
        }
        Sleep(sleeptime);
        snakemove();
    }
}

/**
 *  控制方向    
 */
void snakemove()	//蛇前进,上U,下D,左L,右R
{
	snakee *nexthead;
    cantcrosswall();
    nexthead=(snakee*)malloc(sizeof(snakee));		//为下一步开辟空间
    //
	//   向上运动程序段 
	//
	if(status==U)
    {
        nexthead->x=head->x;        //向上前进时,x坐标不动,y坐标-1
        nexthead->y=head->y-1;
        nexthead->next=head;
        head=nexthead;
        q=head;                 //指针q指向蛇头
        if(nexthead->x==food->x && nexthead->y==food->y)	//如果下一个有食物 下一个位置的坐标和食物的坐标相同
        {
            
            while(q!=NULL)
            {
                gotoxy(q->x,q->y);
				color(2);
                printf("★");        //原来食物的位置,从●换成★
                q=q->next;          //指针q指向的蛇身的下一位也执行循环里的操作
				
            }
            score=score+add;        //吃了一个食物,在总分上加上食物的分
			speedup();
            createfood();           //创建食物
        }
        else                        
        {
            while(q->next->next!=NULL)	//如果没遇到食物
            {
                gotoxy(q->x,q->y);
                color(2);
                printf("★");           //蛇正常往前走,输出当前位置的蛇身
                q=q->next;              //继续输出整个蛇身
            }
            gotoxy(q->next->x,q->next->y);  //经过上面的循环,q指向蛇尾,蛇尾的下一位,就是蛇走过去的位置
			color(15);
            printf("■");
            free(q->next);      //进行输出■之后,释放指向下一位的指针
            q->next=NULL;       //指针下一位指向空
        }
    }
    //
	//   向下运动程序段 
	//
    if(status==D)
    {
        nexthead->x=head->x;        //向下前进时,x坐标不动,y坐标+1
        nexthead->y=head->y+1;
        nexthead->next=head;
        head=nexthead;
        q=head;
        if(nexthead->x==food->x && nexthead->y==food->y)  //有食物
        {
            
            while(q!=NULL)
            {
                gotoxy(q->x,q->y);
                color(2);
                printf("★");
                q=q->next;
            }
            score=score+add;
			speedup();
            createfood();
        }
        else                               //没有食物
        {
            while(q->next->next!=NULL)
            {
                gotoxy(q->x,q->y);
                color(2);
                printf("★");
                q=q->next;
            }
            gotoxy(q->next->x,q->next->y);
			color(15);
            printf("■");
            free(q->next);
            q->next=NULL;
        }
    }
    //
	//   向左运动程序段 
	//
    if(status==L)
    {
        nexthead->x=head->x-2;        //向左前进时,x坐标向左移动-2,y坐标不动
        nexthead->y=head->y;
        nexthead->next=head;
        head=nexthead;
        q=head;
        if(nexthead->x==food->x && nexthead->y==food->y)//有食物
        {
            while(q!=NULL)
            {
                gotoxy(q->x,q->y);
                color(2);
                printf("★");
                q=q->next;
            }
            score=score+add;
			speedup();
            createfood();
        }
        else                                //没有食物
        {
            while(q->next->next!=NULL)
            {
                gotoxy(q->x,q->y);
                color(2);
                printf("★");
                q=q->next;        
            }
            gotoxy(q->next->x,q->next->y);
			color(15);
            printf("■");
            free(q->next);
            q->next=NULL;
        }
    }
    //
	//   向右运动程序段 
	//
	if(status==R)
    {
        nexthead->x=head->x+2;        //向右前进时,x坐标向右移动+2,y坐标不动
        nexthead->y=head->y;
        nexthead->next=head;
        head=nexthead;               //此句以为让蛇不断前进 
        q=head;
        if(nexthead->x==food->x && nexthead->y==food->y)//有食物
        {
            while(q!=NULL)
            {
                gotoxy(q->x,q->y);
                color(2);
                printf("★");
                q=q->next;
            }
            score=score+add;
			speedup();
            createfood();
        }
        else                                         //没有食物
        {
            while(q->next->next!=NULL)
            {
                gotoxy(q->x,q->y);
                color(2);
                printf("★");
                q=q->next;        
            }
            gotoxy(q->next->x,q->next->y);
			color(15);
            printf("■");
            free(q->next);
            q->next=NULL;
        }
    }
    // 
    if(biteself()==1)       //判断是否会咬到自己
    {
        endgamestatus=2;
        endgame();
    }
}
/**
 * 控制键盘按键控制蛇的前进方向 
 */

/**
 * 储存最高分进文件
 */
void File_in()
{
	FILE *fp;
	fp = fopen("save.txt", "w+");       //以读写的方式建立一个名为save.txt的文件
	fprintf(fp, "%d", score);           //把分数写进文件中
	fclose(fp);                         //关闭文件
}

/**
 * 在文件中读取最高分
 */
void File_out()
{
	FILE *fp;
	fp = fopen("save.txt", "a+");       //打开文件save.txt
	fscanf(fp, "%d", &HighScore);       //把文件中的最高分读出来
	fclose(fp);                         //关闭文件
}

/*
*   游戏说明
*/
void explation()
{
	int i,j = 1;
    system("cls");
    color(13);
    gotoxy(44,3);
    printf("游戏说明");
    color(2);
    for (i = 6; i <= 22; i++)   //输出上下边框===
	{
		for (j = 20; j <= 75; j++)  //输出左右边框||
		{
			gotoxy(j, i);
			if (i == 6 || i == 22) printf("=");
			else if (j == 20 || j == 75) printf("||");
		}
	}
    color(3);
    gotoxy(30,8);
    printf("tip1: 不能穿墙,不能咬到自己");
    color(10);
    gotoxy(30,11);
    printf("tip2: 用↑.↓.←.→分别控制蛇的移动");
    color(14);
    gotoxy(30,14);
    printf("tip3: F1 为加速,F2 为减速");
    color(11);
    gotoxy(30,17);
    printf("tip4: 按空格键暂停游戏,再按空格键继续");
    color(4);
    gotoxy(30,20);
    printf("tip5: ESC :退出游戏.space:暂停游戏");
    getch();                //按任意键返回主界面
    system("cls");
    printsnake();
    welcometogame();
}



/**
 * 结束游戏
 */
void endgame()
{
    system("cls");
    if(endgamestatus==1)
    {
        
		Lostdraw();
		gotoxy(35,9);
    	color(12);
		printf("对不起,您撞到墙了。游戏结束!");
    }
    else if(endgamestatus==2)
    {
        
        Lostdraw();
        gotoxy(35,9);
    	color(12);
        printf("对不起,您咬到自己了。游戏结束!");
    }
    else if(endgamestatus==3)
    {
		Lostdraw();
		gotoxy(40,9);
    	color(12);
        printf("您已经结束了游戏。");
    }
    gotoxy(43,12);
    color(13);
    printf("您的得分是 %d",score);
    
    
    gotoxy(43,14);
    color(13);
	printf("游戏等级为 %d",score/100);
	

	if(score >= HighScore)
	{
		color(10);
		gotoxy(33,16);
		printf("创纪录啦!最高分被你刷新啦,真棒!!!");
		File_in();              //把最高分写进文件
	}
	else
	{
		color(10);
		gotoxy(33,16);
		printf("继续努力吧~ 你离最高分还差:%d",HighScore-score);
	}
	choose();
}

/**
 * 边框下面的分支选项
 */
void choose()
{
	int n;
	gotoxy(25,23);
	color(12);
	printf("我要重新玩一局-------1");
	gotoxy(52,23);
	printf("不玩了,退出吧-------2");
	gotoxy(46,25);
	color(11);
	printf("选择:");
	scanf("%d", &n);
    switch (n)
    {
	case 1:
		system("cls");          //清屏
		score=0;                //分数归零
		sleeptime=200;			//设定初始速度
		add = 10;				//使add设定为初值,吃一个食物得分10,然后累加
		printsnake();           //返回欢迎界面
		welcometogame();
		break;
	case 2:
		exit(0);                //退出游戏
		break;
	default:
		gotoxy(35,27);
		color(12);
		printf("※※您的输入有误,请重新输入※※");
		system("pause >nul");
		endgame();
		choose();
		break;
	}

}
/**
 * 失败界面
 */
void Lostdraw()
{
	system("cls");
	int i;
	gotoxy(45,2);
	color(6);
	printf("\\\\\\|///");
	gotoxy(43,3);
	printf("\\\\");
	gotoxy(47,3);
	color(15);
	printf(".-.-");
	gotoxy(54,3);
	color(6);
	printf("//");

	gotoxy(44,4);
	color(14);
	printf("(");

	gotoxy(47,4);
	color(15);
	printf(".@.@");

	gotoxy(54,4);
	color(14);
	printf(")");

	gotoxy(17,5);
	color(11);
	printf("+------------------------");

	gotoxy(35,5);
	color(14);
	printf("oOOo");

	gotoxy(39,5);
	color(11);
	printf("----------");

	gotoxy(48,5);
	color(14);
	printf("(_)");

	gotoxy(51,5);
	color(11);
	printf("----------");

	gotoxy(61,5);
	color(14);
	printf("oOOo");

	gotoxy(65,5);
	color(11);
	printf("-----------------+");
	
	for(i = 6;i<=19;i++)        //竖边框
	{
		gotoxy(17,i);
		printf("|");
		gotoxy(82,i);
		printf("|");
	}

	gotoxy(17,20);
	printf("+---------------------------------");

	gotoxy(52,20);
	color(14);
	printf("〝 ☆☆☆ 〞");

	gotoxy(60,20);
	color(11);
	printf("----------------------+");

}

 

 运行界面显示:

 

 

 

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值