首页 > 其他分享 >一个经我改进的游戏,还带声音

一个经我改进的游戏,还带声音

时间:2024-09-06 16:52:35浏览次数:12  
标签:声音 return 游戏 int void 改进 printf my cls

各位粉丝赏脸过来看一下:

我先说,转载 一句 也得 原文链接 + 私信,因为我和别人一样,不希望被人侵权。

还有,别顾着玩  未改进时 里的游戏啦。

当然,我也不是不让你玩。

我改的是他的 赛车。

还加了很多。

未改进时

未改进时 游戏缺陷(这也是我对Johnny_0760想说的)

希望大家别顾着玩,看一下:

1.缺陷:该游戏名为 “ 赛车 2 ” ,可是当 H 碰到 H 时, 游戏便结束了。

1.改进:将该游戏名改为 “ 躲避物体 " 在形象不过。

2.缺陷:明明有加速减速按钮,按下却没有变化,代码也未提及速减速按钮(这个可能是还未制作,暂时搁那的原因)。

2.改进:在下面的代码可见,我将 a d 按钮改成了 kd类型 。

3.缺陷:移动空间小,游戏速度慢了,刺激性弱,输出是:cout(有点慢)

3.改进:将二维数组 sae 【5】【3】改为 sae【5】【5】,与其他的一些地方进行改进,缩小移动时间,将cout改为printf

改进后:

#include<tchar.h>
#include<conio.h>
#include<iostream>
#include<direct.h>
#include<windows.h>
#include<bits/stdc++.h>

#define sys system
#define box MessageBox
#define sep(a) Sleep(a)
#define prn printf("\n")
#define cls system("cls")
#define ST SetConsoleTitle
#define st system("time/T")
#define pause system("pause")
#define kd(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
/***制作者:CSDN wxn小学***/ 
using namespace std;
struct my;
void cd(void);
struct my
{
	string name;
	string yd;
	long long password;
	bool condition,zdcd,sy,vip;
	int species;
}my;

/***存档***/ 
void cd(void)
{
	ofstream OutFile("存档.游戏");
    OutFile<<my.name<<endl;
    OutFile<<my.password<<endl;
    OutFile<<my.condition<<endl;
    OutFile<<my.zdcd<<endl;
    OutFile<<my.sy<<endl;
    OutFile<<my.yd<<endl;
	OutFile<<my.vip<<endl;
    OutFile<<my.species<<endl;
    OutFile.close();
    return;
}
 
/***读档***/ 
void dd(void)
{
	ifstream InFile("存档.游戏");
    InFile>>my.name;
	InFile>>my.password;
	InFile>>my.condition;
	InFile>>my.zdcd;
	InFile>>my.sy;
	InFile>>my.yd;
	InFile>>my.vip;
	InFile>>my.species;
    return;
}
/***使窗口移动到桌面居中位置***/
void centerwindow(RECT &rect, RECT &desktop)
{ 
	int width,height,dtWidth,dtHeight;
	bool bSuccess=false;
	HWND hwnd = GetDesktopWindow();
	GetWindowRect(hwnd,&desktop); 
	dtWidth=desktop.right-desktop.left;
	dtHeight=desktop.bottom-desktop.top;
	hwnd = GetForegroundWindow(); 
	GetWindowRect(hwnd,&rect); 
	width=rect.right-rect.left;
	height=rect.bottom-rect.top;
	bSuccess=MoveWindow(hwnd,(dtWidth-width)/2,(dtHeight-height)/2,width,height,true); 
	GetWindowRect(hwnd,&rect); 
	return ;
}

/***覆盖清屏**/ 
void gotoxy_0(int x, int y)
{
	COORD pos = {x,y};
	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOut, pos);
	return;
}

/***影藏光标***/
void HideCursor()
{
	CONSOLE_CURSOR_INFO cursor_info = {1,0};
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
	return;
}

/***移动光标1***/ 
void gotoxy_1(int x,int y)
{
    COORD pos;pos.X=y*2;
	pos.Y=x;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
    return;
}

/***移动光标2***/ 
void gotoxy(int x,int y)
{
    COORD pos;pos.X=y;
	pos.Y=x;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
    return;
}

/***颜色***/ 
void yanse(int ForgC, int BackC)
{
	WORD wColor=((BackC & 0x0F)<<4)+(ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
	return;
}

/***移除快速编辑模式***/
void noedit()
{
	HANDLE hStdin=GetStdHandle(STD_INPUT_HANDLE);
	DWORD mode;
	GetConsoleMode(hStdin,&mode);
	mode&=~ENABLE_QUICK_EDIT_MODE;
	mode&=~ENABLE_INSERT_MODE;
	mode&=~ENABLE_MOUSE_INPUT;
	SetConsoleMode(hStdin,mode);
	return;
}

/***声音***/
void sy()
{
	if(my.sy==true)
	{
		if(my.yd=="随机")
		{
			int a;
			a=rand()%7+1;
			if(a==1)Beep(830.61,200);
			if(a==2)Beep(880,200);
			if(a==3)Beep(987.76,200);
			if(a==4)Beep(1108.73,200);
			if(a==5)Beep(1174.66,200);
			if(a==6)Beep(1318.52,200);
			if(a==7)Beep(1479.98,200);
		} 
		if(my.yd=="do  ")Beep(830.61,200);
		if(my.yd=="re")Beep(880,200);
		if(my.yd=="mi")Beep(987.76,200);
		if(my.yd=="fa")Beep(1108.73,200);
		if(my.yd=="so")Beep(1174.66,200);
		if(my.yd=="la")Beep(1318.52,200);
		if(my.yd=="si")Beep(1479.98,200);
	}
	return;
}

/***自动存档***/
void zdcd()
{
	if(my.zdcd==true)cd();
	return;
}
/***加载***/
void jiazai(int a,int b)
{
	cls;
	//手要断掉啦~~~ 
	ST("加载");
	for(int i=1;i<a;i++)
	{
		gotoxy_0(0,0);
		printf("  .       \n");
		printf(" .        \n");
		printf(". 加载中  \n");
		printf("          \n");
		printf("          \n");
		sep(b);
		gotoxy_0(0,0);
		printf("          \n");
		printf(" .        \n");
		printf(". 加载中  \n");
		printf(" .        \n");
		printf("          \n");
		sep(b);
		gotoxy_0(0,0);
		printf("          \n");
		printf("          \n");
		printf(". 加载中  \n");
		printf(" .        \n");
		printf("  .       \n");
		sep(b);
		gotoxy_0(0,0);
		printf("          \n");
		printf("          \n");
		printf("  加载中  \n");
		printf(" .        \n");
		printf("  ..      \n");
		sep(b);
		gotoxy_0(0,0);
		printf("          \n");
		printf("          \n");
		printf("  加载中  \n");
		printf("          \n");
		printf("  ...     \n");
		sep(b);
		gotoxy_0(0,0);
		printf("          \n");
		printf("          \n");
		printf("  加载中  \n");
		printf("          \n");
		printf("   ...    \n");
		sep(b);
		gotoxy_0(0,0);
		printf("          \n");
		printf("          \n");
		printf("  加载中  \n");
		printf("          \n");
		printf("    ...   \n");
		sep(b);
		gotoxy_0(0,0);
		printf("          \n");
		printf("          \n");
		printf("  加载中  \n");
		printf("          \n");
		printf("     ...  \n");
		sep(b);
		gotoxy_0(0,0);
		printf("          \n");
		printf("          \n");
		printf("  加载中  \n");
		printf("        . \n");
		printf("      ..  \n");
		sep(b);
		gotoxy_0(0,0);
		printf("          \n");
		printf("          \n");
		printf("  加载中 .\n");
		printf("        . \n");
		printf("       .  \n");
		sep(b);
		gotoxy_0(0,0);
		printf("          \n");
		printf("        . \n");
		printf("  加载中 .\n");
		printf("        . \n");
		printf("          \n");
		sep(b);
		gotoxy_0(0,0);
		printf("       .  \n");
		printf("        . \n");
		printf("  加载中 .\n");
		printf("          \n");
		printf("          \n");
		sep(b);
		gotoxy_0(0,0);
		printf("      ..  \n");
		printf("        . \n");
		printf("  加载中  \n");
		printf("          \n");
		printf("          \n");
		sep(b);
		gotoxy_0(0,0);
		printf("     ...  \n");
		printf("          \n");
		printf("  加载中  \n");
		printf("          \n");
		printf("          \n");
		sep(b);
		gotoxy_0(0,0);
		printf("    ...   \n");
		printf("          \n");
		printf("  加载中  \n");
		printf("          \n");
		printf("          \n");
		sep(b);
		gotoxy_0(0,0);
		printf("   ...    \n");
		printf("          \n");
		printf("  加载中  \n");
		printf("          \n");
		printf("          \n");
		sep(b);
		gotoxy_0(0,0);
		printf("  ...     \n");
		printf("          \n");
		printf("  加载中  \n");
		printf("          \n");
		printf("          \n");
		sep(b);
		gotoxy_0(0,0);
		printf("  ..      \n");
		printf(" .        \n");
		printf("  加载中  \n");
		printf("          \n");
		printf("          \n");
		sep(b);
		gotoxy_0(0,0);
	}
	cls;
	return;
} 

/***输出 1***/
void prin(string n,int a,int b)
{
	for(int i=0;i<n.size();i++)
	{
		cout<<n[i];
		Sleep(a);
	}
	Sleep(b);
	return;
}

/***输出 2***/
void pr(string a,int b,int c)
{
	prin(a,b,c);
	getchar();
	cls;
	return;
}

/***存读档***/
void CDD()
{
	ST("存读档"); 
	prin("0|读档\n",10,0);
	prin("1|新建\n",10,0);
	while(1)
	{
        if(kd('0')||kd(VK_NUMPAD0))
        {
        	dd();
        	sy(); 
        	cls;
			break;
		}
		if(kd('1')||kd(VK_NUMPAD1))
		{
			cd();
			cls;
			break;
		}
    }
    return;
}

/***密码验证***/
void password_authentication()
{
	o:
	cls;
	ST("密 码 认 证");
	yanse(2,0);
	printf("〓 〓 〓           〓 〓 〓\n");
	yanse(15,0);
	gotoxy_1(3,0);
	printf("忘记密码 或 新手:输入0");
	gotoxy_1(4,0);
	yanse(12,0);
	printf("不要冒充 ");
	yanse(6,0),
	printf("新手");
	yanse(13,0);
	gotoxy_1(0,4);
	prin("密 码 认 证",200,0);
	yanse(15,0);
	gotoxy_1(1,0);
	prin("输入密码:",10,0);
	gotoxy_1(2,0);
	yanse(15,0);
	int a;
	cin>>a;
	if(a==0)
	{
		cls;
		if(my.condition==false)
		{
			printf("检测到是新手\n");
			sep(1000);
			printf("设定名称为:\n");
            cin>>my.name;
			printf("设定密码为:\n");
            scanf("%d",&my.password);
            my.condition=true;
            zdcd();
            printf("设置成功!\n");
            sep(1000);
            cls; 
			return;
		}
		else
		{
			wt:
			cls;
			string d;
			printf("用户名:");
			cin>>d;
			if(d!=my.name)
			{
				cls;
				printf("未找到该用户!");
				sep(2000);
				goto wt;
			}
			cls;
			int c;
			cls;
			printf("请接收6位验证码(3s)");
			sep(2000);
			cls;
			int randomnumber=rand()%999999+100000;
			printf("%d(验)\n",randomnumber);
			sep(3000);
			cls;
			printf("输入验正码\n");
			scanf("%d",&c);
			cls;
			if(c==randomnumber)
			{
			    cls;
				printf("\a验证通过\a\n");
				printf("你的密码:%d",my.password);
				sep(5000);
				cls;
				return;
			}	
			else
			{
				cls;
				printf("!!!");
				sep(1000);
				goto wt;
			}
	    }
	}
	else if(a==my.password)
	{
		cls;
		printf("\a验证通过\a");
		sep(1000);
		cls;
		return;
	}
	else
	{
		cls;
		printf("错误!");
		sep(1000);
		goto o;
	}
}
int x_what(int x)
{//取随机数
	srand((unsigned)time(NULL));
	return( rand() % x);
}

/***游戏一***/
void game1()
{
	int dx,dy;
	int mx,my;
	int sea[5][5];
	int ms=0;
	int maxms=0;
	int healthy=1;
	int sd=500;
	ms=0;
	char ch;
	for(int i=0;i<5;i++)
	{
		for(int j=0;j<5;j++)
		{
			sea[i][j]=0;
		}
	}
	sea[4][1]=8;
	mx=4;
	my=1;
	printf("+躲+\n");
	printf("+避+\n");
	printf("+物+\n");
	printf("+体+\n");
	printf("+..+\n");
	while(!kbhit())
	sy();
	cls;
	printf("摇杆↑↓←→移动");
	Sleep(2000);
	dx=1;
	cls;
	while(healthy>0)
	{
		if(kd(VK_UP))
		{
			if(mx>0)
			{
				sy();
				mx--;
			}
		}
		if(kd(VK_DOWN))
		{
			if(mx<4)
			{
				sy();
				mx++;
			}
		}
		if(kd(VK_LEFT))
		{
			if(my>0)
			{
				sy();
				my--;
			}
		}
		if(kd(VK_RIGHT))
		{
			if(my<4)
			{
				sy();
				my++;
			}
		}
		yanse(15,0);
		cout<<ms<<"米"<<endl; 
		for(int i=0;i<5;i++)
		{
			for(int j=0;j<5;j++)
			{
				if(i==mx&&j==my)
				{
					yanse(12,0);
					printf("H");
				}
				else if(i==dx&&j==dy)
				{
					yanse(9,0);
					printf("H");
				}
				else
				{
					yanse(8,0);
					printf("*");
				}
			}
			cout<<endl;
		}
		if(dx==10)
		{
			dx=0;
			dy=x_what(5);
		}
		else
		{
			dx++;
		}
		Sleep(200);
		gotoxy_0(0,0); 
		ms+=50;
		if(dy==my&&dx==mx)
		{
			healthy--;
		}
	}
	cls;
	yanse(15,0);
	cout<<ms<<"米"<<endl;
	cout<<"游戏结束!"<<endl;
	Sleep(2000);
	cls;
	return;
} 
/***游戏***/
void game()
{
	while(1)
	{
		ST("游戏");
		gotoxy_0(0,0);
		gotoxy(0,7);
		printf("1|躲避物体");
		gotoxy(1,9);
		printf("2|退出");
		if(kd('1')||kd(VK_NUMPAD1))
		{
			sy();
			sep(100);
			cls;
			game1();
		}
		if(kd('2')||kd(VK_NUMPAD2))
		{
			sy();
			sep(100);
			cls;
			break;
		}
	}
} 
/***MIF***/
void MIF()
{
	sys("mode con cols=24 lines=10");
	while(1)
	{
		ST("界面");
		gotoxy_0(0,0);
		gotoxy(3,7);
		printf("1|进入游戏");
		gotoxy(4,9);
		printf("2|设置");
		gotoxy(5,9);
		printf("3|退出"); 
		if(kd('1')||kd(VK_NUMPAD1))
		{
			sy();
			sep(100);
			cls;
			game(); 
			
		}
		if(kd('2')||kd(VK_NUMPAD2))
		{
			sy();
			sep(100);
			cls;
			while(1)
			{
				ST("设置");
				gotoxy_0(0,0);
				cout<<my.name<<"的设置:"<<endl;
				gotoxy(2,5);
				printf("1.自动存档  ");
				if(my.zdcd==true)yanse(2,0),printf("开"); 
				else yanse(12,0),printf("关");
				yanse(15,0);
				gotoxy(3,7);
				printf("2.声音  ");
				if(my.sy==true)yanse(2,0),printf("开"); 
				else yanse(12,0),printf("关");
				yanse(15,0);
				gotoxy(4,6);
				if(my.yd!="随机")printf(" ");
				printf("3.音调  ");
				cout<<my.yd;
				yanse(15,0);
				gotoxy(5,7);
				printf("4.恢复默认"); 
				gotoxy(6,9);
				printf("5.返回\n");
				if(kd('1')||kd(VK_NUMPAD1))
				{
					sy();
					sep(100);
					if(my.zdcd==false)my.zdcd=true;
					else my.zdcd=false;
					cd();
				}
				if(kd('2')||kd(VK_NUMPAD2))
				{
					sep(100);
					if(my.sy==false)my.sy=true;
					else my.sy=false;
					sy();
					cd();
				}
				if(kd('3')||kd(VK_NUMPAD3))
				{
					sep(100);
					if(my.yd=="do  ")my.yd="re";
					else if(my.yd=="re")my.yd="mi";
					else if(my.yd=="mi")my.yd="fa";
					else if(my.yd=="fa")my.yd="so";
					else if(my.yd=="so")my.yd="la";
					else if(my.yd=="la")my.yd="si";
					else if(my.yd=="si")my.yd="随机";
					else my.yd="do  ";
					sy();
					zdcd();
				}
				if(kd('4')||kd(VK_NUMPAD4))
				{
					sep(100);
					my.zdcd=true;
					my.sy=true;
					my.yd="随机";
					zdcd();
					sy();
				}
				if(kd('5')||kd(VK_NUMPAD5))
				{
					sy();
					sep(100);
					cls;
					break;
				}
			}
		}
		if(kd('3')||kd(VK_NUMPAD3))
		{
			sy();
			sep(100);
			cls;
			break;
		}
	}
}

/***main***/ 
int main()
{
	noedit();
	HideCursor();
	RECT Rect,rectDesktop;
	centerwindow(Rect,rectDesktop);
	if(my.condition==false)
	{
		my.zdcd=true;
		my.sy=true;
		my.yd="随机";
		ST("介绍");
		sys("mode con cols=66 lines=20");
		st;
		prin("Hello",10,0);
		prn;
		prin("制作者:CSDN wxn小学",10,0);
		prn;
		pause;
		cls;
		prin("欢迎来到本小游戏",10,1000);
		cls;
		box(NULL,TEXT("即将转接……"),TEXT("01消息"),MB_OK);
	}
	CDD();
	password_authentication(); 
	jiazai(10,10);
	MIF();
}

beybey~

哪位大神有更好建议?

标签:声音,return,游戏,int,void,改进,printf,my,cls
From: https://blog.csdn.net/wxnccc/article/details/141962568

相关文章

  • YOLOv9改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互
    一、本文介绍本文记录的是基于GAM注意力模块的YOLOv9目标检测改进方法研究。GAM注意力模块通过3D排列和重新设计的子模块,能够在通道和空间方面保留信息,避免了先前方法中由于信息减少和维度分离而导致的全局空间-通道交互丢失的问题。本文利用GAM改进YOLOv9,以增强模型的跨维......
  • 接HDMI同时输出喇叭spker声音
    OS:Android13背景:设备接HDMI,声音通道会优先从HDMI输出,喇叭是是没有声音的 修改如下:1.frameworks/basediff--gita/services/core/java/com/android/server/WiredAccessoryManager.javab/services/core/java/com/android/server/WiredAccessoryManager.javaindex6162ad......
  • 【Python游戏开发】用Python实现一个简易的超级玛丽游戏!
    前言小时候最喜欢玩的小游戏就是超级玛丽了,有刺激有又技巧,通关真的很难,救下小公主还被抓走了,唉,心累,最后还是硬着头皮继续闯,终于要通关了,之后再玩还是没有那么容易,哈哈,不知道现在能不能通关,今天就来实现一下,制作一个简易版的超级玛丽游戏如果你正在学习Python并且缺少项目......
  • YOLOv8改进 | 注意力篇 | YOLOv8引入YOLO-Face提出的SEAM注意力机制优化物体遮挡检测
    1. SEAM介绍1.1 摘要:近年来,基于深度学习的人脸检测算法取得了长足的进步。这些算法通常可以分为两类,即像FasterR-CNN这样的两级检测器和像YOLO这样的一级检测器。由于精度和速度之间具有更好的平衡,一级探测器已广泛应用于许多应用中。在本文中,我们提出了一种基于......
  • 游戏引擎中的物理学 - 线性运动
    文章目录前言1.物理实体粒子刚体软体2.物理术语位移(Displacement)速度(Velocity)加速度(Acceleration)力(Force)质量(Mass)动量(Momentum)3.牛顿运动定律牛顿第一定律惯性摩擦力与阻尼牛顿第二定律牛顿第三定律数值积分显式欧拉法隐式欧拉法半隐式欧拉法维莱特(Verlet)积分法龙格-库塔(Runge-......
  • 《黑神话:悟空》 风灵月影修改器使用指南:详尽教程,助你轻松驾驭游戏
    《黑神话:悟空》是一款深受玩家喜爱的动作冒险游戏,其精美的画面和引人入胜的故事剧情吸引了众多粉丝。对于那些希望通过修改器来进一步增强游戏体验的玩家来说,“风灵月影”修改器是一个不错的选择。下面是如何使用这款修改器的详细步骤。获取修改器首先,你需要从一个可信赖的......
  • 基于python的贪吃蛇小游戏
    游戏规则1.玩家控制蛇在屏幕上移动(上下左右方向键),目标是吃到随机出现的食物。2.每次吃到食物后,蛇的长度会增加。3.游戏难度逐渐增加,蛇的移动速度会随着长度的增加而加快。4.如果蛇撞到自己或碰到墙壁,游戏结束。代码importtkinterastkimportrandomfromtkinter......
  • P1000 超级玛丽游戏
    #include<iostream>usingnamespacestd;intmain(){ cout<<"********\n"; cout<<"************\n"; cout<<"####....#.\n"; cout<<"......
  • 游戏001
    c++自编1号游戏:#include<stdio.h>#include<conio.h>#include<windows.h>//游戏区域的宽度和高度constintWIDTH=80;constintHEIGHT=20;//小恐龙结构体structDino{intx;inty;boolisJumping;intjumpHeight;};//障碍物结构体......
  • 基于java语言的点击方块小游戏
    游戏玩法目标:玩家需要在限时内点击尽可能多的方块。规则:游戏启动后,屏幕上会随机出现一个移动的方块;玩家点击方块得分,方块会重新随机出现在另一个位置;游戏限时为30秒,时间结束时显示总分。代码importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;import......