c++实现挖掘小游戏

首先声明,真的是作者能力有限,做出来了一个很lou的游戏
不过如果你喜欢,请动动小手点一个赞吧

实现原理

原理部分很简单,首先是gotoxy函数,用来调整光标的位置

void gotoxy(int x,int y){
		COORD p;
		HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
		p.X=x;
		p.Y=y;
		SetConsoleCursorPosition(handle,p);
	}

然后呢,使用getch函数,直接输入不用按回车

#include<conio.h> 
	char m;
	m=getch();

然后就是判断m为什么字符,如果不是特定的字符就挖掘

switch(m){
	case 'w':{
		bb--;
		gotoxy(aa,bb);
		break;
	}
	case 's':{
		bb++;
		gotoxy(aa,bb);
		break;
	}
	case 'a':{
		aa--;
		gotoxy(aa,bb);
		break;
	}
	case 'd':{
		aa++;
		gotoxy(aa,bb);
		break;
	}
	default:{
		cout<<' ';
		gotoxy(aa,bb);
	}

最后呢就是出界判断

	if(aa>2*c+1) aa=1;
	if(aa<1) aa=2*c+1;
	if(bb>k) bb=1;
	if(bb<1) bb=k; 

代码部分

好的,接下来我们上源码

#include<bits/stdc++.h>
#include<time.h>
#include<windows.h>
#include<conio.h> 
using namespace std;
	
	void gotoxy(int x,int y){
		COORD p;
		HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
		p.X=x;
		p.Y=y;
		SetConsoleCursorPosition(handle,p);
	}
	
	int main(){
		int c,k;
		char a[3];
		cout<<"请输入你要挖掘的字符:\n"; 
		cin>>a;
		
		cout<<"\n请输入你地图的长宽\n";
		cin>>c>>k;
		
		cout<<"w上移 s下移 a左移 d右移 任意键挖掘\n";
		Sleep(2000);
		system("cls");
		for(int i=1;i<=2*c;i+=2){
			for(int j=1;j<=k;j++){
				gotoxy(i,j);
				cout<<a<<' ';
			}
		}
		gotoxy(1,1);
		char m;
		int aa=1,bb=1;
		while(1){
			m=getch();
			switch(m){
				case 'w':{
					bb--;
					gotoxy(aa,bb);
					break;
				}
				case 's':{
					bb++;
					gotoxy(aa,bb);
					break;
				}
				case 'a':{
					aa-=2;
					gotoxy(aa,bb);
					break;
				}
				case 'd':{
					aa+=2;
					gotoxy(aa,bb);
					break;
				}
				default:{
					cout<<"  ";
					aa-=2;
					gotoxy(aa,bb);
				}
			}
			if(aa>2*c+1) aa=1;
			if(aa<1) aa=2*c+1;
			if(bb>k) bb=1;
			if(bb<1) bb=k; 
		}
		return 0;
	}

好了,今天就到这里,谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值