简单的消方快游戏

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
//函数全局变量 
int high,width;
int ball_x,ball_y;
int ball_vx,ball_vy;
int position_x,position_y;			//挡板中心变量 
int radius;							//挡板半径大小 
int left,right;						//挡板左右边界 
int ball_number=0;
int speed=0;
int enemy_x=0,enemy_y=12;
int score=0;
//定义隐藏光标函数
void HideCursor()
{
	CONSOLE_CURSOR_INFO cursor;    
	cursor.bVisible = FALSE;    
	cursor.dwSize = sizeof(cursor);    
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);    
	SetConsoleCursorInfo(handle, &cursor);
}
//清屏幕函数 
void gotoxy(int x, int y) 
{
    COORD pos = {x,y};
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄
    SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置
}
void startup()			//数据初始化
{
	high = 20;
	width = 25;
	ball_x =  1;
	ball_y =  width/2;
	ball_vx = 1;
	ball_vy = 1;
	position_x=high;
	position_y=width/2;
	radius = 5;
	left = position_y - radius;
	right = position_y + radius; 		
	HideCursor();		
}
void show()			//显示画面
{
	
	int i,j;
	gotoxy(0,0);				//清屏 
	for(i=0;i<=high+1;i++)
	{
		for(j=0;j<=width;j++)
		{
			if((i==ball_x)&&(j==ball_y))
				printf("O");		//输出星花 
			else if(j==width)
				printf("|");		//输出右边界 
			else if(i==high+1)
				printf("-");		//输出下边界
			else if((i==high)&&(j>=left)&&(j<=right))
				printf("*");//输出挡板 
			else if((i==enemy_x)&&(j==enemy_y))
				printf("B");
			else
				printf(" ");
		}
		printf("\n");	
	}	
	printf("反弹小球数 %d\n",ball_number);
	printf("分数 %d\n",score);
}
void updatewithinput()				//与用户输入有关的更新
{
	
	char input ;
	if(kbhit())						//判断是否有输入 
	{
		input = getch();			//根据用户不同输入来移动 
		if(input=='a')
		{
			position_y--;
			left = position_y - radius;
			right = position_y + radius; 
		}
		if(input=='d')
		{
			position_y++;
			left = position_y - radius;
			right = position_y + radius; 
		}
	}
	
}
void updatewithoutinput()					//与用户输入无关的更新
{
	if(speed<10)
		speed++;
	if(speed==10)
	{
		
		//碰到边界后,改变速度的方向,实现反弹 
		if((ball_x==0)||(ball_x==high-1))
			ball_vx = -ball_vx;
		if((ball_y==0)||(ball_y==width-1))
			ball_vy = -ball_vy;
		if(ball_x==high-1)
		{
			if((ball_y>=left-1)&&(ball_y<=right+1))
			{
				ball_number++;
				ball_vy = -ball_vy;
			}
			else
			{
				printf("GAME OVER !");
				exit (0);
			}
		}
		//根据小球速度更新小球的位置 
		ball_x=ball_x+ball_vx;
		ball_y=ball_y+ball_vy;
		if((ball_x==enemy_x)&&(ball_y>=enemy_y-2)&&(ball_y<=enemy_y+2))
		{
			score++;
			enemy_x=0;
			enemy_y=rand() %width;
		}
		speed=0;
		
		
	}
	
}
int main()
{
	startup();			//数据初始化 
	while(1)			//游戏循环执行 
	{
		show();			//显示画面 
		updatewithoutinput();		//与用户输入无关的更新 
		updatewithinput();			//与用户输入有关的更新
	}
	return 0;
}
//A.D键可控制挡板
内容概要:该论文深入研究了液压挖掘机动臂下降势能回收技术,旨在解决传统液压挖掘机能耗高的问题。提出了一种新型闭式回路势能回收系统,利用模糊PI自整定控制算法控制永磁无刷直流电动机,实现了变转速容积调速控制,消除了节流和溢流损失。通过建立数学模型和仿真模型,分析了不同负载下的系统性能,并开发了试验平台验证系统的高效性和节能效果。研究还涵盖了执行机构能量分布分析、系统元件参数匹配及电机控制性能优化,为液压挖掘机节能技术提供了理论和实践依据。此外,通过实验验证,该系统相比传统案可降低28%的能耗,控制系统响应时间缩短40%,为工程机械的绿色化、智能化发展提供了关键技术支撑。 适合人群:从事工程机械设计、制造及维护的工程师和技术人员,以及对液压系统节能技术感兴趣的科研人员。 使用场景及目标:①理解液压挖掘机闭式回路动臂势能回收系统的原理和优势;②掌握模糊PI自整定控制算法的具体实现;③学习如何通过理论建模、仿真和实验验证来评估和优化液压系统的性能。 其他说明:此研究不仅提供了详细的理论分析和数学建模,还给出了具体的仿真代码和实验数据,便于读者在实际工作中进行参考和应用。研究结果表明,该系统不仅能显著提高能源利用效率,还能延长设备使用寿命,降低维护成本,具有重要的工程应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值