C语言 鼠标控制躲避小游戏(原创)

 
 

1.游戏规则大致和像素鸟一样,但是改成了鼠标控制上下移动

2.写代码用时:约3h

代码:

#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
#define K 10	//宽 
#define C 20	//长
#define I 7	//角色位置
#define D 7		//障碍间隔
#define L ((K-2)*7/8)	//障碍最长值 
int main() {
	relife:	//重玩 
	char a[K][C],game;
	DWORD S,E;	//系统运行时间
	S=GetTickCount();
	float v=1;
	int wo,random,d=D,start=0,score=1,speed;
	POINT q={0,0};		//和坐标有关的东西 
	LPPOINT s=&q;		//和坐标有关的东西 
	for(int i=0;i<K;i++) for(int j=0;j<C;j++) a[i][j]=' ';	//初始化地图 
	for(int i=0;i<C;i++) a[0][i]=a[K-1][i]='-';	//初始化边界 
	srand((unsigned)time(0));
	while(1) {
		GetCursorPos(s);		//获取鼠标位置 
		wo=((float)(s->y-30))/36;	//计算角色位置 
		if(wo>K-2) wo=K-2;	//鼠标越下界情况处理
		if(wo<1) wo=1;		//鼠标越上界情况处理
		if(a[wo][I]=='*') break;
		else {
			goon:	//复活
			a[wo][I]='O';
		}
		system("cls");
		for(int i=0;i<K;i++) {
			for(int j=0;j<C;j++) {
				if(a[i][j]=='O') printf("");	//角色
				else if(a[i][j]=='-'||a[i][j]=='*') printf("█");	//边界和障碍
				else printf("  ");
			}
			printf("\n");
		}
		start++;
		if(start==7) {
			printf("1.鼠标上下控制移动\n");
			printf("2.一定要窗口最大化之后才能玩!窗口最大化!\n"); 
			printf("3.按任意键开始游戏\n\n\n\n");
			score=0;
			system("pause");
		}
		a[wo][I]=' ';
		for(int i=0;i<C-1;i++) for(int j=1;j<K-1;j++) a[j][i]=a[j][i+1];	//障碍移动
		if(d==D) {
			random=rand()%(2*L)-L;	//生成随机障碍
			if(random>K-2||random<(2-K)||(random<3&&random>-3)) random=3;
			if(random>0) for(int i=1;random>0;random--,i++) a[i][C-1]='*';
			else for(int i=K-2;random<0;random++,i--) a[i][C-1]='*';
			d=0;
			score++;
			speed=1000/score;
		}
		else for(int i=1;i<=K-2;i++) a[i][C-1]=' ';
		printf("得分:%d",score);
		E=GetTickCount();
		if(v<1000/((float)(E-S))&&start>=7) v=1000/((float)(E-S));
		printf("	速度:%.3lf格/秒",v);
		S=GetTickCount();
		if(start>=7) Sleep(speed);
		d++;
	}
	printf("\n游戏结束\n\n\n按Enter重玩");
	scanf("%c",&game);
	if(game=='\n') goto relife;
	if(game==' ') goto goon;
}

效果图:



猜你喜欢

转载自blog.csdn.net/LittleWhiteLv/article/details/80375047
今日推荐