【c语言小项目】基于easyX的贪吃蛇游戏

 EasyX 是针对 C/C++ 的简单图形库插件,本项目基于easyX游戏框架下实现贪吃蛇游戏。

c语言系列专栏:c语言之路重点知识整合 

更多【c语言】小项目:

【c语言】实现俄罗斯方块 

【c语言小项目】基于easyX实现的《是男人就下一百层》小游戏

创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!! 

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ  

目录

功能描述:

运行结果: 

 代码:

用到的图片文件:

easyX游戏框架:


功能描述:

1.游戏画面设计:游戏画面是最重要的部分,贪吃蛇在这里爬行并吃食物。

2.贪吃蛇控制:贪吃蛇可以通过键盘控制移动方向,上下左右分别对应不同的方向。当蛇碰到边界或自己时,游戏结束。

3.食物设计:每次游戏开始,会在游戏区域内生成一些食物,蛇可以通过吃食物增加长度和分数。如果吃到特定的食物,则可以暂停敌人一段时间,提高游戏胜利的机会。

运行结果: 

 

 代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <easyx.h>
#include <time.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string>
#include <graphics.h>

/*游戏界面绘制*/
void gamePaint();
/*游戏初始化绘制*/
void gameInit();
/*游戏定时处理*/
void gameInterval();
/*游戏键盘按下*/
void gameKeypress(int key);
/*游戏鼠标按下*/
void gameMouseDown(int mouseX, int mouseY);
/*游戏鼠标右键按下*/
void gameMouseRightDown(int mouseX, int mouseY);
/*游戏鼠标抬起*/
void gameMouseUp(int mouseX, int mouseY);
/*游戏鼠标移动*/
void gameMousemove(int mouseX, int mouseY);

/*
含透明的图的绘制
x为要载入图片的X坐标,y为Y坐标
*/
void drawImage(int  picture_x, int picture_y, IMAGE* picture);
/*调整图片透明度
  角度转弧度:PI/180*角度
  弧度转角度:180/PI*弧度
*/
void drawImageAlpha(int x0, int y0, IMAGE* img, double f);
/*两个矩形碰撞检测
即两个矩形是否相交。
 x1, y1, w1, h1是第一个矩形的xy宽高的四个参数
 x2, y2, w2, h2是第二个矩形的xy宽高的四个参数
 返回0代表不相交 返回1代表相交
*/
int testHit(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2);

/*设置150即每隔150毫秒刷新以下界面绘图。*/
int interval = 150;//TODO: 1 设置定时器时间间隔(单位毫秒)
// TODO: 1 设置窗口: 宽度 高度
int screenWidth = 600;
int screenHeight = 600;
int stop = 0;//是否停止游戏
//-----------------------------------//
int times = 0;
/*初始化游戏 */
void initgame()
{
	srand((unsigned)time(NULL));//随机数初始化
	setbkcolor(NULL);//背景色
	setbkmode(TRANSPARENT);// 设置背景混合模式: TRANSPARENT为透明
	gameInit();
}
/*
	界面绘图演示案例
*/


/*绘制显示游戏界面*/
void paint()
{
	BeginBatchDraw();//打开双缓冲
	cleardevice();// 清屏

	gamePaint();
	//-----------------------------//
	EndBatchDraw();//关闭双缓冲
}



/*游戏运行*/
void run()
{
	ExMessage msg;
	//ExMessage key;
	while (1)	// 游戏主循环  可借助break 结束循环
	{
		if (peekmessage(&msg, -1, true))
		{
			switch (msg.message)
			{
			case WM_MOUSEMOVE://鼠标移动
				gameMousemove(msg.x, msg.y);
				break;
			case WM_LBUTTONDOWN://左键按下
				gameMouseDown(msg.x, msg.y);
				break;
			case WM_LBUTTONUP://左键抬起
				gameMouseUp(msg.x, msg.y);
				break;
			case WM_LBUTTONDBLCLK://左键双击

				break;
			case WM_RBUTTONDOWN://右键按下

				break;
			case WM_RBUTTONUP://右键抬起
				gameMouseRightDown(msg.x, msg.y);
				break;
			case WM_RBUTTONDBLCLK://右键双击

				break;
			case WM_KEYDOWN:
				gameKeypress(msg.vkcode);
				break;
			}
			paint();

			continue;
		}


		//------时间处理 勿动-----------//
		Sleep(1);
		times++;
		if (times % (interval / 10) != 0) {
			continue;
		}
		times = 0;
		if (stop)
		{
			break;
		}
		gameInterval();

		//-------------------------------//
		paint();// 刷新显示游戏界面
	}
}

/*绘制透明背景图*/
void drawImage(int  picture_x, int picture_y, IMAGE* picture) //x为载入图片的X坐标,y为Y坐标
{

	// 变量初始化
	DWORD* dst = GetImageBuffer();    // GetImageBuffer()函数,用于获取绘图设备的显存指针,EASYX自带
	DWORD* draw = GetImageBuffer();
	DWORD* src = GetImageBuffer(picture); //获取picture的显存指针
	int picture_width = picture->getwidth(); //获取picture的宽度,EASYX自带
	int picture_height = picture->getheight(); //获取picture的高度,EASYX自带
	int graphWidth = getwidth();       //获取绘图区的宽度,EASYX自带
	int graphHeight = getheight();     //获取绘图区的高度,EASYX自带
	int dstX = 0;    //在显存里像素的角标

	// 实现透明贴图 公式: Cp=αp*FP+(1-αp)*BP , 贝叶斯定理来进行点颜色的概率计算
	for (int iy = 0; iy < picture_height; iy++)
	{
		for (int ix = 0; ix < picture_width; ix++)
		{
			int srcX = ix + iy * picture_width; //在显存里像素的角标
			int sa = ((src[srcX] & 0xff000000) >> 24); //0xAArrggbb;AA是透明度
			int sr = ((src[srcX] & 0xff0000) >> 16); //获取RGB里的R
			int sg = ((src[srcX] & 0xff00) >> 8);   //G
			int sb = src[srcX] & 0xff;              //B
			if (ix >= 0 && ix <= graphWidth && iy >= 0 && iy <= graphHeight && dstX <= graphWidth * graphHeight)
			{
				dstX = (ix + picture_x) + (iy + picture_y) * graphWidth; //在显存里像素的角标
				if (dstX < 0) continue;
				int dr = ((dst[dstX] & 0xff0000) >> 16);
				int dg = ((dst[dstX] & 0xff00) >> 8);
				int db = dst[dstX] & 0xff;
				draw[dstX] = ((sr * sa / 255 + dr * (255 - sa) / 255) << 16)  //公式: Cp=αp*FP+(1-αp)*BP  ; αp=sa/255 , FP=sr , BP=dr
					| ((sg * sa / 255 + dg * (255 - sa) / 255) << 8)         //αp=sa/255 , FP=sg , BP=dg
					| (sb * sa / 255 + db * (255 - sa) / 255);              //αp=sa/255 , FP=sb , BP=db
			}
		}
	}
}
/*调整图片透明度*/
void drawImageAlpha(int x0, int y0, IMAGE* img, double f)
{
	//获得图片尺寸
	int qwidth, qheight;
	qwidth = img->getwidth();
	qheight = img->getheight();


	//P图为背景图,RS为目标图片
	static IMAGE RS(qwidth, qheight);
	static IMAGE P(qwidth, qheight);


	//背景图的绘制
	getimage(&P, x0, y0, qwidth, qheight);


	//获取指针,作为透明度计算
	DWORD* M = GetImageBuffer(&P);
	DWORD* N = GetImageBuffer(img);
	DWORD* R = GetImageBuffer(&RS);


	// 开启批量绘图模式,解决闪烁问题
	BeginBatchDraw();


	//计算与赋值
	int i, j;
	for (i = 0; i < qheight; i++) {
		for (j = 0; j < qwidth; j++) {
			int r, g, b;
			int ij;
			//计算
			ij = i * qwidth + j;
			r = (int)((GetRValue(N[ij])) * (1 - f) + GetRValue(M[ij]) * f);
			g = (int)((GetGValue(N[ij])) * (1 - f) + GetGValue(M[ij]) * f);
			b = (int)((GetBValue(N[ij])) * (1 - f) + GetBValue(M[ij]) * f);
			R[ij] = RGB(r, g, b);
		}
	}


	//贴出图片并释放内存
	putimage(x0, y0, &RS);
	FlushBatchDraw();// 绘制
}
//检测两个矩形是否相碰撞
int testHit(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2)
{
	return !(x1 + w1 < x2 ||
		y1 + h1 < y2 ||
		x2 + w2 < x1 ||
		y2 + h2 < y1);
}
// 主函数,开启游戏
int main()
{
	initgraph(screenWidth, screenHeight, SHOWCONSOLE);
	initgame();					// 初始化游戏
	paint();// 刷新显示游戏界面

	flushmessage();		// 清空鼠标缓冲区
	while (_kbhit()) _getch();	// 清空键盘缓冲区
	run();						// 开始游戏
	closegraph();//关闭图形环
	return 0;
}


//--------------------------------// 
//TODO: 2 全局变量声明位置 
IMAGE imgBG;
IMAGE imgApple;
IMAGE imgBody;
IMAGE imgHead [4];//蛇头四个方向
int snakeDirection = 3;//蛇当前方向
int appleHang;//苹果所在的行
int appleLie;//苹果所在的列
int snakeHang[100]={10,11,12,13,14};//初始化蛇位置 屏幕中间
int snakeLie[100]={10,10,10,10,10};
int snakeLength = 5;//蛇当前长度
//TODO: 3 游戏初始化位置  
void gameInit()
{
	appleHang = rand() % 14 + 3;//3-16随机数
	appleLie = rand() % 14 + 3;//3-16随机数
	loadimage(&imgBG, L".\\she\\bg.bmp");
	loadimage(&imgApple, L".\\she\\apple.bmp");
	TCHAR str[100];
	for (int i = 0; i < 4; i++)
	{
		_stprintf(str, L".\\she\\head%d.bmp", i);//蛇头四个方向
		loadimage(&imgHead [i], str);
	}
	loadimage(&imgBody, L".\\she\\body.bmp");
}
//TODO: 4 绘图处理位置  
void gamePaint()
{
	putimage(0, 0, &imgBG);
	putimage(appleLie * 30, appleHang * 30, &imgApple);
	putimage(snakeLie[0] * 30, snakeHang[0] * 30, &imgHead[snakeDirection]);
	for (int j = 1; j < snakeLength; j++)
	{
	putimage(snakeLie[j]*30,snakeHang[j]*30,&imgBody);
	}
}
//TODO: 5 定时处理位置
void gameInterval()
{
	// 爬行
	for (int i = snakeLength - 1; i >= 1; i--)
	{
		snakeHang[i] = snakeHang[i - 1];
		snakeLie[i] = snakeLie[i - 1];
	}
	switch (snakeDirection)
	{
		case 0:
			snakeLie[0]--;
			break;
		case 1:
			snakeHang[0]++;
			break;
		case 2:
			snakeLie[0]++;
			break;
		case 3:
			snakeHang[0]--;
			break;
	}
	if (appleHang==snakeHang[0]&&appleLie==snakeLie[0])//TODO: A 吃到苹果
	{
		//TODO: A 身体变长
		snakeHang[snakeLength] = -1;
		snakeLength++;
		//TODO: A 生成新苹果
		appleHang = rand() % 14 + 3;
		appleLie = rand() % 14 + 3;
	}

	if (snakeHang[0]==0||snakeLie[0]==0|| snakeHang[0] == 18 || snakeLie[0] == 18) //TODO: A 撞墙
	{
		//TODO: A game over
		stop = 1;
	}
	//TODO: A 撞到自己 先假设不能
	int enabled = 0;
	for (int i = 1; i < snakeLength; i++)
	{
		if (snakeHang[0] == snakeHang[i] && snakeLie[0] == snakeLie[i])
		{
			enabled = 1;
			break;
		}
	}
	if (enabled) //撞到自己
	{
		//TODO: A game over
		stop = 1;
	}
}
//TODO: 6 处理键盘控制位置
void gameKeypress(int key)
{
	switch (key)
	{
	case VK_LEFT:
		if (snakeDirection != 2)//使用if解决误操作的问题 不能向相反方向运动
		{
			snakeDirection = 0;
		}
		break;
	case VK_RIGHT:
		if (snakeDirection != 0)//相反方向
		{
			snakeDirection = 2;
		}
		break;
	case VK_UP:
		if (snakeDirection != 1)//相反方向
		{
			snakeDirection = 3;
		}
		break;
	case VK_DOWN:
		if (snakeDirection != 3)//向相反方向
		{
			snakeDirection = 1;
		}
		break;
	}


}

//TODO: 7 处理鼠标控制位置
void gameMouseDown(int mouseX, int mouseY)
{


}
void gameMouseUp(int mouseX, int mouseY)
{

}
void gameMousemove(int mouseX, int mouseY)
{

}

void gameMouseRightDown(int mouseX, int mouseY)
{

}

用到的图片文件:

 

                                               ​​​​​​​​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​  

easyX游戏框架:

#define _CRT_SECURE_NO_WARNINGS 1
#include <easyx.h>
#include <time.h>
#include <conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<graphics.h>

/*游戏界面绘制*/
void gamePaint();
/*游戏初始化绘制*/
void gameInit();
/*游戏定时处理*/
void gameInterval();
/*游戏键盘按下*/
void gameKeypress(int key);
/*游戏鼠标按下*/
void gameMouseDown(int mouseX,int mouseY);
/*游戏鼠标右键按下*/
void gameMouseRightDown(int mouseX,int mouseY);
/*游戏鼠标抬起*/
void gameMouseUp(int mouseX,int mouseY);
/*游戏鼠标移动*/
void gameMousemove(int mouseX,int mouseY);

/*
含透明的图的绘制
x为要载入图片的X坐标,y为Y坐标
*/
void drawImage(int  picture_x, int picture_y,IMAGE* picture);  
/*调整图片透明度
  角度转弧度:PI/180*角度
  弧度转角度:180/PI*弧度
*/
void drawImageAlpha(int x0, int y0, IMAGE* img, double f);
/*两个矩形碰撞检测
即两个矩形是否相交。
 x1, y1, w1, h1是第一个矩形的xy宽高的四个参数
 x2, y2, w2, h2是第二个矩形的xy宽高的四个参数
 返回0代表不相交 返回1代表相交
*/
int testHit(int x1,int y1,int w1,int h1,int x2,int y2,int w2,int h2 );

/*设置100即每隔100毫秒刷新以下界面绘图。*/
int interval = 100;//TODO: 1 设置定时器时间间隔(单位毫秒)
// TODO: 1 设置窗口: 宽度 高度
int screenWidth = 800;
int screenHeight=600;
int stop = 0;//是否停止游戏
//-----------------------------------//
int times = 0; 
/*初始化游戏 */
void initgame()
{
	srand((unsigned)time(NULL));//随机数初始化
	setbkcolor(NULL);//背景色
	setbkmode(TRANSPARENT);// 设置背景混合模式: TRANSPARENT为透明
	gameInit();
}
/*
	界面绘图演示案例
*/
 

/*绘制显示游戏界面*/
void paint()
{
	BeginBatchDraw();//打开双缓冲
	cleardevice();// 清屏
	 
	gamePaint();
	//-----------------------------//
	EndBatchDraw();//关闭双缓冲
}



/*游戏运行*/
void run()
{
	ExMessage msg ;
	//ExMessage key;
	while (1)	// 游戏主循环  可借助break 结束循环
	{
		if (peekmessage(&msg,-1,true))
		{
			switch (msg.message)
			{
			case WM_MOUSEMOVE://鼠标移动
				gameMousemove(msg.x, msg.y);
				break;
			case WM_LBUTTONDOWN://左键按下
				gameMouseDown(msg.x, msg.y);
				break;
			case WM_LBUTTONUP://左键抬起
				gameMouseUp(msg.x, msg.y);
				break;
			case WM_LBUTTONDBLCLK://左键双击
				 
				break;
			case WM_RBUTTONDOWN://右键按下
				 
				break;
			case WM_RBUTTONUP://右键抬起
				gameMouseRightDown(msg.x, msg.y);
				break;
			case WM_RBUTTONDBLCLK://右键双击
				 
				break;
			case WM_KEYDOWN:
				gameKeypress(msg.vkcode);
				break;
			}
			paint();
			continue;
		}
		
		 
		//------时间处理 勿动-----------//
		Sleep(1);
		times++;
		if(times%(interval/10)!=0){
			continue;
		}
		times=0;
		if(stop)
		{
			break;
		}
		gameInterval();
		 
		//-------------------------------//
		paint();// 刷新显示游戏界面
	}
}



/*绘制透明背景图*/
 void drawImage(int  picture_x, int picture_y,IMAGE* picture  ) //x为载入图片的X坐标,y为Y坐标
{

	// 变量初始化
	DWORD *dst = GetImageBuffer();    // GetImageBuffer()函数,用于获取绘图设备的显存指针,EASYX自带
	DWORD *draw = GetImageBuffer(); 
	DWORD *src = GetImageBuffer(picture); //获取picture的显存指针
	int picture_width = picture->getwidth(); //获取picture的宽度,EASYX自带
	int picture_height = picture->getheight(); //获取picture的高度,EASYX自带
	int graphWidth = getwidth();       //获取绘图区的宽度,EASYX自带
	int graphHeight = getheight();     //获取绘图区的高度,EASYX自带
	int dstX = 0;    //在显存里像素的角标

	// 实现透明贴图 公式: Cp=αp*FP+(1-αp)*BP , 贝叶斯定理来进行点颜色的概率计算
	for (int iy = 0; iy < picture_height; iy++)
	{
		for (int ix = 0; ix < picture_width; ix++)
		{
			int srcX = ix + iy * picture_width; //在显存里像素的角标
			int sa = ((src[srcX] & 0xff000000) >> 24); //0xAArrggbb;AA是透明度
			int sr = ((src[srcX] & 0xff0000) >> 16); //获取RGB里的R
			int sg = ((src[srcX] & 0xff00) >> 8);   //G
			int sb = src[srcX] & 0xff;              //B
			if (ix >= 0 && ix <= graphWidth && iy >= 0 && iy <= graphHeight && dstX <= graphWidth * graphHeight)
			{
				dstX = (ix + picture_x )+ (iy +   picture_y ) * graphWidth; //在显存里像素的角标
				if (dstX<0) continue;
				int dr = ((dst[dstX] & 0xff0000) >> 16);
				int dg = ((dst[dstX] & 0xff00) >> 8);
				int db = dst[dstX] & 0xff;
				draw[dstX] = ((sr * sa / 255 + dr * (255 - sa) / 255) << 16)  //公式: Cp=αp*FP+(1-αp)*BP  ; αp=sa/255 , FP=sr , BP=dr
					| ((sg * sa / 255 + dg * (255 - sa) / 255) << 8)         //αp=sa/255 , FP=sg , BP=dg
					| (sb * sa / 255 + db * (255 - sa) / 255);              //αp=sa/255 , FP=sb , BP=db
			}
		}
	}
}
/*调整图片透明度*/
void drawImageAlpha(int x0, int y0, IMAGE* img, double f)
{
	//获得图片尺寸
	int qwidth, qheight;
	qwidth = img->getwidth();
	qheight = img->getheight();


	//P图为背景图,RS为目标图片
	static IMAGE RS(qwidth, qheight);
	static IMAGE P(qwidth, qheight);


	//背景图的绘制
	getimage(&P, x0, y0, qwidth, qheight);


	//获取指针,作为透明度计算
	DWORD* M = GetImageBuffer(&P);
	DWORD* N = GetImageBuffer(img);
	DWORD* R = GetImageBuffer(&RS);


	// 开启批量绘图模式,解决闪烁问题
	BeginBatchDraw();


	//计算与赋值
	int i, j;
	for (i = 0; i < qheight; i++) {
		for (j = 0; j < qwidth; j++) {
			int r, g, b;
			int ij;
			//计算
			ij = i * qwidth + j;
			r = (int)((GetRValue(N[ij])) * (1 - f) + GetRValue(M[ij]) * f);
			g = (int)((GetGValue(N[ij])) * (1 - f) + GetGValue(M[ij]) * f);
			b = (int)((GetBValue(N[ij])) * (1 - f) + GetBValue(M[ij]) * f);
			R[ij] = RGB(r, g, b);
		}
	}


	//贴出图片并释放内存
	putimage(x0, y0, &RS);
	FlushBatchDraw();// 绘制
}
//检测两个矩形是否相碰撞
int testHit(int x1,int y1,int w1,int h1,int x2,int y2,int w2,int h2 )
{
 return !(x1 + w1 < x2||
		 y1 + h1 < y2 ||
		 x2 + w2 <x1 ||
		 y2 + h2<y1 );
}
// 主函数,开启游戏
int main  ()
{
	initgraph(screenWidth, screenHeight,SHOWCONSOLE);		
	initgame();					// 初始化游戏
	paint();// 刷新显示游戏界面
	 
	flushmessage();		// 清空鼠标缓冲区
	while (_kbhit()) _getch();	// 清空键盘缓冲区
	run();						// 开始游戏
	closegraph();//关闭图形环
	return 0;
}
 

//--------------------------------// 
//TODO: 2 全局变量声明位置 
 

//TODO: 3 游戏初始化位置  
 void gameInit()
{
	 
}
 //TODO: 4 绘图处理位置  
void gamePaint()
{
  
}
 //TODO: 5 定时处理位置
void gameInterval()
{
	 
}
//TODO: 6 处理键盘控制位置
void gameKeypress(int key)
{
	switch (key )
	{
	case VK_LEFT:
		printf("按 左\n");
		break;
	case VK_RIGHT:
		printf("按 右\n");
		break;
	case VK_UP:
		printf("按 上\n");
		break;
	case VK_DOWN:
		printf("按 下\n");
		break;
	}

	switch (key )
	{
	case 'A':
	case 'a':
		printf("按 A\n");
		break;
	case 'B':
	case 'b':
		printf("按 B\n");
		break;
	case 'c':
	case 'C':
		printf("按 C\n");
		break;
	case 'D':
	case 'd':
		printf("按 d\n");
		break;
	}
}

//TODO: 7 处理鼠标控制位置
void gameMouseDown(int mouseX,int mouseY)
{
	printf("按下鼠标左键\n");

}
void gameMouseUp(int mouseX,int mouseY)
{
	 
}
void gameMousemove (int mouseX,int mouseY)
{
	 
}

void gameMouseRightDown(int mouseX,int mouseY)
{
	 
}

大家的点赞、收藏、关注将是我更新的最大动力!欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是基于 EasyX 的猜数字游戏代码: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> #include "graphics.h" #define WINDOW_WIDTH 500 #define WINDOW_HEIGHT 350 int main() { // 初始化 EasyX 窗口 initgraph(WINDOW_WIDTH, WINDOW_HEIGHT); // 设置窗口标题 setbkcolor(WHITE); settextcolor(RED); settextstyle(20, 0, _T("宋体")); outtextxy(180, 10, _T("猜数字游戏")); // 随机生成一个 1~100 的数字 srand(time(NULL)); int number = rand() % 100 + 1; // 初始化猜测次数和已猜测次数 int guessCount = 0; int guessLimit = 10; // 循环读取用户输入直到猜中数字或次数用尽 int guess; do { settextstyle(14, 0, _T("宋体")); outtextxy(20, 50, _T("请输入一个 1~100 的数字:")); scanf_s("%d", &guess); guessCount++; if (guess < number) { outtextxy(20, 100 + guessCount * 20, _T("小了,请继续猜!")); } else if (guess > number) { outtextxy(20, 100 + guessCount * 20, _T("大了,请继续猜!")); } else { outtextxy(20, 100 + guessCount * 20, _T("恭喜你猜中了!")); } } while (guess != number && guessCount < guessLimit); // 显示游戏结果 if (guess == number) { settextstyle(16, 0, _T("宋体")); outtextxy(180, 200, _T("游戏胜利!")); } else { settextstyle(16, 0, _T("宋体")); outtextxy(180, 200, _T("游戏失败!")); } // 暂停一段时间,观察结果 Sleep(5000); // 关闭 EasyX 窗口,退出程序 closegraph(); return 0; } ``` 注意:此代码基于 EasyX 图形库,需要下载安装 EasyX 并将其头文件和库文件配置到项目中。另外,为了方便演示,此代码使用了图形界面和输入输出,实际应用时可能不需要。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天喜Studio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值