天天看点

炸弹模拟器 1.0版 彩色

感谢各位又打开了我的一篇卑微之作,你们的阅读是我写作的动力!

不多说了,开整!

(玩法见游戏)

#include<iostream>
#include<conio.h>
#include<windows.h>
#include<cstring>
using namespace std;
int playmap[10][10]={
{8,8,8,8,8,8,8,8,8,8},
{8,1,1,1,2,1,1,1,1,8},
{8,1,1,1,1,1,1,1,1,8},
{8,5,5,1,5,5,1,5,1,8},
{8,1,5,1,5,1,5,1,5,8},
{8,5,1,5,1,1,5,5,5,8},
{8,1,5,5,5,5,1,5,5,8},
{8,5,5,1,5,5,5,1,5,8},
{8,1,1,1,1,1,1,1,1,8},
{8,8,8,8,8,8,8,8,8,8}};
int bombmap[10][10];
char n;
int x,y;
int zd=1;
int qwe=1;
int bomb=1;
void welcome();
void SetColorAndBackground(int ForgC, int BackC) {
	WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}
void welcome()
{
	int af=1;
	while(af<=100)
	{
		system("cls");
		cout<<"--------------------------------------炸弹模拟器------------------------------------"<<endl;
		cout<<"游戏加载中..."<<endl; 
		SetColorAndBackground(11,0);
		for(int b=1;b<af;b++)
		{
			cout<<"▉";
		}
		cout<<"  "<<af<<"%";
		SetColorAndBackground(15,0);
		af=af+1;
		Sleep(20);
	}
	cout<<endl;
	cout<<"加载完毕!"<<endl;
	Sleep(1500);
	system("cls");
	cout<<"--------------------------------------炸弹模拟器------------------------------------"<<endl;
	cout<<"游戏作者:dinosaursmallmi"<<endl;
	cout<<endl;
	cout<<"图标:“你”:你,“边”:边界,“"; 
	SetColorAndBackground(12,0);
	cout<<"⊕";
	SetColorAndBackground(15,0);
	cout<<"”:爆炸时的火,“";
	SetColorAndBackground(8,0);
	cout<<"石";
	SetColorAndBackground(15,0);
	cout<<"”:石头,“";
	SetColorAndBackground(6,0);
	cout<<"¤";
	SetColorAndBackground(15,0);
	cout<<"”你扔下的炸弹"<<endl;
    cout<<"按键:w s a d 移动,按空格在“你”的下面释放炸弹(可以往石头和火上释放,防止“你”卡在石头里),按“=”在地图上刷新石头"<<endl;
    cout<<"按键:按“+”和“-”更改炸弹爆炸模式(有3个模式),按“e”开启、关闭炸弹钻地模式(开启后炸弹能边钻地边爆炸)"<<endl; 
    cout<<"小秘诀:炸弹爆炸模式切换到3,并开启炸弹钻地模式,很爽(最少3个炸弹毁掉所有石头)"<<endl; 
	cout<<"目标:没有目标,尽情玩吧!"<<endl;
	cout<<endl; 
	system("pause");
}
int main()
{
	memset(bombmap,0,sizeof(bombmap));
	for(int qw=0;qw<10;qw++)
	{
		for(int we=0;we<10;we++)
		{
			if(playmap[qw][we]==5)
			{
				bombmap[qw][we]=5;
			}
		}
	}
	welcome(); 
	while(1)
	{
		Sleep(30);
		system("cls");
		cout<<"--------------------------------------炸弹模拟器------------------------------------"<<endl;
	cout<<"游戏作者:dinosaursmallmi"<<endl;
	cout<<endl;
	cout<<"图标:“你”:你,“边”:边界,“"; 
	SetColorAndBackground(12,0);
	cout<<"⊕";
	SetColorAndBackground(15,0);
	cout<<"”:爆炸时的火,“";
	SetColorAndBackground(8,0);
	cout<<"石";
	SetColorAndBackground(15,0);
	cout<<"”:石头,“";
	SetColorAndBackground(6,0);
	cout<<"¤";
	SetColorAndBackground(15,0);
	cout<<"”你扔下的炸弹"<<endl;
    cout<<"按键:w s a d 移动,按空格在“你”的下面释放炸弹(可以往石头和火上释放,防止“你”卡在石头里),按“=”在地图上刷新石头"<<endl;
    cout<<"按键:按“+”和“-”更改炸弹爆炸模式(有3个模式),按“e”开启、关闭炸弹钻地模式(开启后炸弹能边钻地边爆炸)"<<endl; 
    cout<<"小秘诀:炸弹爆炸模式切换到3,并开启炸弹钻地模式,很爽(最少3个炸弹毁掉所有石头)"<<endl; 
	cout<<"目标:没有目标,尽情玩吧!"<<endl;
	cout<<endl; 
    	for(int a=0;a<10;a++)
    	{
	    	for(int b=0;b<10;b++)
	    	{
		    	switch(playmap[a][b])
		    	{
		    		case 1:cout<<"  ";break;
		    		case 3:SetColorAndBackground(6,0);cout<<"¤";SetColorAndBackground(15,0);break;
		    		case 2:cout<<"你";break;
			    	case 8:cout<<"边";break;
			    	case 5:SetColorAndBackground(8,0);cout<<"石";SetColorAndBackground(15,0);break;
		    		case 4:SetColorAndBackground(12,0);cout<<"⊕";SetColorAndBackground(15,0);break;
	    		}   
	    	}
	    	cout<<endl; 
        }
        cout<<endl;
        cout<<"炸弹爆炸:模式"<<bomb<<endl;
        if(zd==2)
            cout<<"炸弹钻地模式已开启"<<endl; 
        for(int c=0;c<10;c++)
		{
			for(int d=0;d<10;d++)
			{
				if(playmap[c][d]==2)
				{
					x=c;
					y=d;
					break;
				}
			}
		}
		if(qwe==5)
		{
			qwe=1;
			for(int cc=0;cc<10;cc++)
			{
				for(int dd=0;dd<10;dd++)
				{
					switch(playmap[cc][dd])
					{
						case 4:playmap[cc][dd]=1;break;
					}
				}
			}
		}
		if(qwe==4)
			qwe=5;
		if(qwe==3)
			qwe=4;
		if(qwe==2)
			qwe=3;
	    for(int as=10;as>0;as--)
	    {
	    	for(int sd=10;sd>0;sd--)
			{
				if(playmap[as][sd]==3)
				{
					if(playmap[as+1][sd]==8||playmap[as+1][sd]==5)
					{
						playmap[as][sd]=4;
						switch(bomb)
						{
							case 1:
								if(playmap[as+1][sd]==1||playmap[as+1][sd]==5)
						            playmap[as+1][sd]=4;
					        	if(playmap[as-1][sd]==1||playmap[as-1][sd]==5)
					        	    playmap[as-1][sd]=4;
					        	if(playmap[as][sd+1]==1||playmap[as][sd+1]==5)
						            playmap[as][sd+1]=4;
				        		if(playmap[as][sd-1]==1||playmap[as][sd-1]==5)
					        	    playmap[as][sd-1]=4;
					        	qwe=2;
								break;    
					        case 2:	  
						    	if(playmap[as+1][sd]==1||playmap[as+1][sd]==5)
						            playmap[as+1][sd]=4;
					        	if(playmap[as-1][sd]==1||playmap[as-1][sd]==5)
					        	    playmap[as-1][sd]=4;
					        	if(playmap[as][sd+1]==1||playmap[as][sd+1]==5)
						            playmap[as][sd+1]=4;
				        		if(playmap[as][sd-1]==1||playmap[as][sd-1]==5)
					        	    playmap[as][sd-1]=4;
					        	if(playmap[as+1][sd+1]==1||playmap[as+1][sd+1]==5)
						            playmap[as+1][sd+1]=4;
					        	if(playmap[as-1][sd-1]==1||playmap[as-1][sd-1]==5)
					        	    playmap[as-1][sd-1]=4;
					        	if(playmap[as-1][sd+1]==1||playmap[as-1][sd+1]==5)
						            playmap[as-1][sd+1]=4;
				        		if(playmap[as+1][sd-1]==1||playmap[as+1][sd-1]==5)
					        	    playmap[as+1][sd-1]=4; 
					        	qwe=2;
								break; 
							case 3:	
							    if(playmap[as+1][sd]==1||playmap[as+1][sd]==5)
						            playmap[as+1][sd]=4;
					        	if(playmap[as-1][sd]==1||playmap[as-1][sd]==5)
					        	    playmap[as-1][sd]=4;
					        	if(playmap[as][sd+1]==1||playmap[as][sd+1]==5)
						            playmap[as][sd+1]=4;
				        		if(playmap[as][sd-1]==1||playmap[as][sd-1]==5)
					        	    playmap[as][sd-1]=4;
					        	if(playmap[as+1][sd+1]==1||playmap[as+1][sd+1]==5)
						            playmap[as+1][sd+1]=4;
					        	if(playmap[as-1][sd-1]==1||playmap[as-1][sd-1]==5)
					        	    playmap[as-1][sd-1]=4;
					        	if(playmap[as-1][sd+1]==1||playmap[as-1][sd+1]==5)
						            playmap[as-1][sd+1]=4;
				        		if(playmap[as+1][sd-1]==1||playmap[as+1][sd-1]==5)
					        	    playmap[as+1][sd-1]=4; 
					        	if(playmap[as+2][sd]==1||playmap[as+2][sd]==5)
						            playmap[as+2][sd]=4;
					        	if(playmap[as-2][sd]==1||playmap[as-2][sd]==5)
					        	    playmap[as-2][sd]=4;
					        	if(playmap[as][sd+2]==1||playmap[as][sd+2]==5)
						            playmap[as][sd+2]=4;
				        		if(playmap[as][sd-2]==1||playmap[as][sd-2]==5)
					        	    playmap[as][sd-2]=4;    
					        	qwe=2;
								break;
						} 		 
					}
					if(playmap[as+1][sd]==1&&zd==1)
					{
						playmap[as+1][sd]=3;
						playmap[as][sd]=1;
					}
					if((playmap[as+1][sd]==1&&zd==2)||(playmap[as+1][sd]==4&&zd==2))
					{
						playmap[as+1][sd]=3;
						playmap[as][sd]=1;
					}
				}
			} 
		}
        if(kbhit())
        {
        	n=getch();
        	switch(n)
        	{
        		case 'w':
					if(playmap[x-1][y]==1||playmap[x-1][y]==4)
					{
						playmap[x-1][y]=2;
						playmap[x][y]=1;
						break;
					}
				case 's':
					if(playmap[x+1][y]==1||playmap[x+1][y]==4)
					{
						playmap[x+1][y]=2;
						playmap[x][y]=1;
						break;
					}
				case 'a':
					if(playmap[x][y-1]==1||playmap[x][y-1]==4)
					{
						playmap[x][y-1]=2;
						playmap[x][y]=1;
						break;
					}
				case 'd':
					if(playmap[x][y+1]==1||playmap[x][y+1]==4)
					{
						playmap[x][y+1]=2;
						playmap[x][y]=1;
						break;
					}
				case ' ':
					if(playmap[x+1][y]==1||playmap[x+1][y]==4||playmap[x+1][y]==5)
					{
						playmap[x+1][y]=3;
						break;
					}	
        		case '+':
					if((bomb+1)!=4)
				        bomb+=1;
				    break; 
				case '-':
					if((bomb-1)!=0)
				        bomb-=1;
				    break;	
				case 'e':
					if(zd==1)
					{
						zd=2;
						break;
					}
					if(zd==2)
					{
						zd=1;
						break;
				    }
				case '=':
				    for(int er=0;er<10;er++)
					{
						for(int rt=0;rt<10;rt++)
						{
							if(bombmap[er][rt]==5&&playmap[er][rt]==1)
								playmap[er][rt]=5;
						}
				    }	
					break;	  
			}
		}
    }
}
           
上一篇: Qt_布局-事件
下一篇: Qt设计方式