C++小游戏

这篇具有很好参考价值的文章主要介绍了C++小游戏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

三个本人编的C++小游戏:

1.打怪小游戏

#include<bits/stdc++.h>
#include<windows.h>
#include<unistd.h>
using namespace std;
int chs,gld,ky,lqd,bld,ncn,wpn,num,bssbld,g,k,l,b,n,w,T,flag;
bool chk=true,pd;
string a[]={"","1000金币","2500金币","损失5555金币","5000金币","2个武器","1条咒语","损失3瓶药水","损失1把钥匙","5条咒语","20点血量","损失50点血量","损失3把钥匙"};
void init(){
	gld=1000000;
	ky=10;
	lqd=3;
	bld=100;
	ncn=3;
	wpn=5;
	cout<<"玩家敬请慎重选择和输入,否则退出游戏\n";
	Sleep(1500);
	system("cls");
}
void cl(){
	system("cls");
}
int main(){
	init();
	do{
		cout<<"剩余金币:"<<gld<<"个\n";
		cout<<"剩余钥匙:"<<ky<<"把\n";
		cout<<"剩余药水:"<<lqd<<"瓶\n";
		cout<<"剩余咒语:"<<ncn<<"条\n";
		cout<<"剩余血量:"<<bld<<"点\n";
		cout<<"剩余武器:"<<wpn<<"个\n\n";
		cout<<"0 -- 商店\n";
		cout<<"1 -- 抽奖\n";
		cout<<"2 -- 打怪\n";
		cout<<"其他数字 -- 退出游戏\n";
		cin>>chs;
		if(!chs){
			cout<<"\n1000金币=1把钥匙\n";
			cout<<"1000金币=1瓶药水\n";
			cout<<"1000金币=15点血量\n";
			cout<<"1000金币=1条咒语\n";
			cout<<"1000金币=1个武器\n";
			do{
				cout<<"(成本)\n金币:";
				cin>>g;	
			}while(g<1 || gld<g);
			cout<<"(利润)\n钥匙:";
			cin>>k;
			cout<<"药水:";
			cin>>l;
			cout<<"血量:";
			cin>>b;
			T=b%15;
			b/=15;
			cout<<"咒语:";
			cin>>n;
			cout<<"武器:";
			cin>>w;
			if(!T && (k+l+b+n+w)*1000<=g){
				b*=15;
				gld-=g;
				ky+=k;
				lqd+=l;
				bld+=b;
				ncn+=n;
				wpn+=w;
				system("cls");
            }
			else
				return 0;
        }
		else if(chs==1){
			system("cls");
			srand(time(NULL));
			num=rand()%12+1;
			if(num==3 || num==7 || num==8 || num==11 || num==12)
				cout<<"好可惜!";
			else
				cout<<"恭喜你获得了";
			cout<<a[num]<<"!\n";
			switch(num){
				case 1:gld+=1000;break;
				case 2:gld+=2500;break;
				case 3:gld-=5555;break;
				case 4:gld+=5000;break;
				case 5:wpn+=2;break;
				case 6:ncn++;break;
				case 7:lqd-=3;break;
				case 8:ky--;break;
				case 9:ncn+=5;break;
				case 10:bld+=20;break;
				case 11:bld-=50;break;
				case 12:ky-=3;
            }
            if(gld<1 && wpn<1 && ncn<1 && lqd<1 && ky<1 && bld<1){
            	cout<<"很可惜!你因金币、钥匙、药水、咒语、血量、武器都不足而无法进行游戏!下次再见!";
            	return 0;
			}
        }
		else if(chs==2)
			break;
		else
			return 0;
    }while(1);
	do{
		cout<<"打怪需消耗钥匙1把\n";
		if(ky<1){
			cout<<"你的钥匙不足!需要进入商店交易或者抽奖!\n"; 
			cout<<"剩余金币:"<<gld<<"个\n";
			cout<<"剩余钥匙:"<<ky<<"把\n";
			cout<<"剩余药水:"<<lqd<<"瓶\n";
			cout<<"剩余咒语:"<<ncn<<"条\n";
			cout<<"剩余血量:"<<bld<<"点\n";
			cout<<"剩余武器:"<<wpn<<"个\n\n";
			cout<<"0 -- 商店\n";
			cout<<"1 -- 抽奖\n";
			cout<<"2 -- 打怪\n";
			cout<<"其他数字 -- 退出游戏\n";
			cin>>chs;
			if(!chs){
				cout<<"\n1000金币=1把钥匙\n";
				cout<<"1000金币=1瓶药水\n";
				cout<<"1000金币=15点血量\n";
				cout<<"1000金币=1条咒语\n";
				cout<<"1000金币=1个武器\n";
				cout<<"(成本)\n金币:";cin>>g;
				cout<<"(利润)\n钥匙:";cin>>k;
				cout<<"药水:";cin>>l;
				cout<<"血量:";cin>>b;
				T=b%15;
				b/=15;
				cout<<"咒语:";cin>>n;
				cout<<"武器:";cin>>w;
				if(!T && (k+l+b+n+w)*1000<=g){
					b*=15;
					gld-=g;
					ky+=k;
					lqd+=l;
					bld+=b;
					ncn+=n;
					wpn+=w;
					system("cls");
	            }
				else
					return 0;
	        }
			else if(chs==1){
				system("cls");
				srand(time(NULL));
				num=rand()%12+1;
				if(a[num][0]=='-')
					cout<<"好可惜!";
				else
					cout<<"恭喜你获得了";
				cout<<a[num]<<"!\n";
				switch(num){
					case 1:gld+=1000;break;
					case 2:gld+=2500;break;
					case 3:gld-=5555;break;
					case 4:gld+=5000;break;
					case 5:wpn+=2;break;
					case 6:ncn++;break;
					case 7:lqd-=3;break;
					case 8:ky--;break;
					case 9:ncn+=5;break;
					case 10:bld+=20;break;
					case 11:bld-=20;break;
					case 12:ky-=3;
	            }
	            if(gld<1 && wpn<1 && ncn<1 && lqd<1 && ky<1 && bld<1){
	            	cout<<"很可惜!你因金币、钥匙、药水、咒语、血量、武器都不足而无法进行游戏!下次再见!";
	            	return 0;
				}
	        }
		}
		bssbld=800;
		ky--;
		cout<<"开始打怪!\n怪物初始血量为:800点\n";
		srand(time(NULL));
		do{
			cout<<"请使用下列方式进行攻击(每次攻击所造成的伤害与任何事物均无关,请做好心理准备):\n";
			cout<<"0 -- 剧毒药水攻击(消耗药水1瓶)\n";
			cout<<"1 -- 魔法咒语攻击(消耗咒语1条)\n";
			cout<<"2 -- 超强武器攻击(消耗武器1个)\n";
			cout<<"3 -- 消耗血量攻击(消耗血量20点)\n";
			cout<<"其他数字 -- 退出游戏\n";
			cin>>chs;
			if(!chs)
				num=rand()%21+4;
			else if(chs==1)
				num=rand()%58;
			else if(chs==2)
				num=rand()%73;
			else if(chs==3)
				num=rand()%110;
			else
				return 0;
    		cout<<"此关Boss受到"<<num<<"点伤害\n";
			bssbld-=num;
			cout<<"目前Boss血量为"<<bssbld<<"点\n";
			cout<<"Boss要对你发起猛烈回击...\n";
			sleep(1);
			pd=true;
			T=rand()%6+1;
			switch(T){
				case 1:if(gld>399){cout<<"金币-400!\n";sleep(1);gld-=400;}
					   else chk=false;break;
				case 2:if(ky>0){cout<<"钥匙-1!\n";sleep(1);ky--;}
					   else	chk=false;break;
			 	case 3:if(bld>9){cout<<"血量-10!\n";sleep(1);gld-=10;}
				       else	chk=false;break;
				case 4:if(lqd>0){cout<<"药水-1!\n";sleep(1);lqd--;}
				       else	chk=false;break;
				case 5:if(ncn>0){cout<<"咒语-1!\n";sleep(1);ncn--;}
				       else	chk=false;break;
				case 6:if(wpn>0){cout<<"武器-1!\n";sleep(1);wpn--;}
				       else chk=false;
			}
			cout<<"剩余金币:"<<gld<<"个\n";
			cout<<"剩余钥匙:"<<ky<<"把\n";
			cout<<"剩余药水:"<<lqd<<"瓶\n";
			cout<<"剩余咒语:"<<ncn<<"条\n";
			cout<<"剩余血量:"<<bld<<"点\n";
			cout<<"剩余武器:"<<wpn<<"个\n\n";
        }while(bssbld>0 && chk);
		if(chk){
			cout<<"恭喜你打怪成功!接下来是随机奖励环节!\n";
			num=rand()%50000+2000;
			cout<<"获得金币"<<num<<"个\n";
			gld+=num;
			num=rand()%15+3;
			cout<<"获得钥匙"<<num<<"把\n";
		    ky+=num;
			num=rand()%10+3;
			cout<<"获得药水"<<num<<"瓶\n";
			lqd+=num;
			num=rand()%200+25;
			cout<<"获得血量"<<num<<"点\n";
			bld+=num;
    		num=rand()%15+3;
		    cout<<"获得咒语"<<num<<"条\n";
    		ncn+=num;
			num=rand()%10+3;
    		cout<<"获得武器"<<num<<"个\n";
			wpn+=num;
        }
		else{
			cout<<"很可惜,你打怪失败!接下来是安慰奖:\n获得金币300个\n获得血量20点\n";
			gld+=500;
			bld+=20;
		}
		cout<<"还想玩输入1,否则输入0\n";
		for(cin>>flag;flag!=1 && flag;cin>>flag)
			cout<<"只能输入1或0哦!\n";
	}while(flag);
	return 0;
}

2.2048小游戏(细心的人会发现跟我们平时玩的2048不太一样,不过不必介意)

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
int a[5][5];
bool fw;
char m;
void init(){
	srand(int(time(NULL)));
	int tf1=rand()%2+1,tf2=rand()%2+1,fx=rand()%4+1,fy=rand()%4+1,sx,sy;
	do{
		sx=rand()%4+1;
		sy=rand()%4+1;
	}while(fx==sx && fy==sy);
	a[fx][fy]=tf1*2;
	a[sx][sy]=tf2*2;
}
int sc(){
	int mx=0;
	for(int i=1;i<5;i++)
		for(int j=1;j<5;j++)
			mx=max(a[i][j],mx);
	return mx;
}
void put(){
	system("cls");
	cout<<"\t\tWelcome to 2048!\n";
	cout<<"             Enter 'w',move up.\n";
	cout<<"            Enter 's',move down.\n";
	cout<<"         Enter 'a',move to the left.\n";
	cout<<"        Enter 'd',move to the right.\n";
	cout<<"Current status:\n";
	for(int i=1;i<5;i++){
		for(int j=1;j<5;j++){
			if(!a[i][j])
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
			else if(a[i][j]==2)
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
			else if(a[i][j]==4)
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
			else if(a[i][j]==8)
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN);
			else if(a[i][j]==16)
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
			else if(a[i][j]==32)
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN | FOREGROUND_BLUE);
			else if(a[i][j]==64)
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
			else if(a[i][j]==128)
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_BLUE);
			else if(a[i][j]==256)
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED);
			else if(a[i][j]==512)
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
			else if(a[i][j]==1024)
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_GREEN);
			else
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);
			if(a[i][j]>=0 && a[i][j]<9)
				cout<<" "<<a[i][j]<<"   ";
			else if(a[i][j]>15 && a[i][j]<65)
				cout<<" "<<a[i][j]<<"  ";
			else if(a[i][j]>127 && a[i][j]<513)
				cout<<" "<<a[i][j]<<" ";
			else
				cout<<a[i][j]<<" ";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
		}	
		cout<<endl;	
	}
}
inline int fn(int p,int q){
	if(p && q)
		return 1;
	if(p && !q)
		return 2;
	return 0;
}
void MV(int p1,int q1,int p2,int q2){
	switch(fn(a[p1][q1],a[p2][q2])){
		case 1:if(a[p1][q1]==a[p2][q2]){a[p2][q2]*=2;a[p1][q1]=0;}break;
		case 2:a[p2][q2]=a[p1][q1];a[p1][q1]=0; 
	}
}
void Up(){
	for(int j=1;j<5;j++){
		MV(2,j,1,j);
		MV(3,j,2,j);
		MV(2,j,1,j);
		MV(4,j,3,j);
		MV(3,j,2,j);
		MV(2,j,1,j);
	}
}
void Down(){
	for(int j=1;j<5;j++){
		MV(3,j,4,j);
		MV(2,j,3,j);
		MV(3,j,4,j);
		MV(1,j,2,j);
		MV(2,j,3,j);
		MV(3,j,4,j);
	}
}
void Left(){
	for(int i=1;i<5;i++){
		MV(i,2,i,1);
		MV(i,3,i,2);
		MV(i,2,i,1);
		MV(i,4,i,3);
		MV(i,3,i,2);
		MV(i,2,i,1);
	}
}
void Right(){
	for(int i=1;i<5;i++){
		MV(i,3,i,4);
		MV(i,2,i,3);
		MV(i,3,i,4);
		MV(i,1,i,2);
		MV(i,2,i,3);
		MV(i,3,i,4);
	}
}
int sp(){
	int s=0;
	for(int i=1;i<5;i++)
		for(int j=1;j<5;j++)
			if(!a[i][j])
				s++;
	return s;
}
int findx(int o){
	int s=0;
	for(int i=1;i<5;i++)
		for(int j=1;j<5;j++){
			if(!a[i][j])
				s++;
			if(s==o)
				return i;			
		}
	return -1;
}
int findy(int o){
	int s=0;
	for(int i=1;i<5;i++)
		for(int j=1;j<5;j++){
			if(!a[i][j])
				s++;
			if(s==o)
				return j;			
		}
	return -1;
}
void ge(){
	srand(int(time(NULL)));
	int th=rand()%(sp())+1,v=rand()%2+1;
	a[findx(th)][findy(th)]=v*2;
}
bool win(){
	for(int i=1;i<5;i++)
		for(int j=1;j<5;j++)
			if(a[i][j]==2048)
				return true;
	return false;
}
bool lose(){
	for(int j=1;j<5;j++){
		if(!a[2][j] || !a[1][j] || a[2][j]==a[1][j])
			return false;
		if(!a[3][j] || !a[2][j] || a[3][j]==a[2][j])
			return false;
		if(!a[4][j] || !a[3][j] || a[4][j]==a[3][j])
			return false;
	}
	for(int i=1;i<5;i++){
		if(!a[i][4] || !a[i][3] || a[i][4]==a[i][3])
			return false;
		if(!a[i][3] || !a[i][2] || a[i][3]==a[i][2])
			return false;
		if(!a[i][2] || !a[i][1] || a[i][2]==a[i][1])
			return false;
	}
	return true;
}
int main(){
	init();
	put();
	cout<<"\nCurrent score:";
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
	cout<<sc()<<endl;
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
	do{
		fw=false;
		if(lose()){
			put();
			cout<<"Oh!You lost the game!\nMaximum score:";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN | FOREGROUND_BLUE);
			cout<<sc();
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
			return 0;
		}
		cout<<"Please enter an operation:";
		m=_getch();
		cout<<m<<endl; 
		while(m!='W' && m!='w' && m!='S' && m!='s' && m!='A' && m!='a' && m!='D' && m!='d'){
			cout<<"'"<<m<<"' isn't a valid operation.Please enter again:";
			m=_getch();
			cout<<m<<endl; 
		}
		switch(m){
			case 'w':case 'W':Up();break;
			case 's':case 'S':Down();break;
			case 'a':case 'A':Left();break;
			case 'd':case 'D':Right();
		}			
		ge();
		put();
		if(win()){
			fw=true;
			put();
			cout<<"Congratulation!\nYou won the game!\nMaximum score:";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
			cout<<"2048";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
			return 0;
		}
		cout<<"\nCurrent score:";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
		cout<<sc()<<endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
	}while(!fw);
}

3.算数答题小游戏(个别难度有一点烧脑)

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int mode1/*運算*/,mode2/*難度*/,opr/*運算符*/,ans/*正確答案*/,ssol/*輸入的答案*/,quot/*商*/,rmder/*餘數*/,qsol/*輸入的商*/,rsol/*輸入的餘數*/;
void as(int m){
	srand(int(time(NULL)));
	int pw=pow(10,m+2)-1,x,y;
	while(1){
		system("cls");
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
		x=rand()%pw+1;
		y=rand()%pw+1;
		if(m>=0 && m<3 && x<y)
			swap(x,y);
		opr=rand()%2;
		ans=(opr?x+y:x-y);
		cout<<"\t\t"<<x<<(opr?"+":"-")<<y<<"=";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
		cin>>ssol;
		if(ssol==ans){
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
			cout<<"答案正確!";
			Sleep(1500);
		}
		else{
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
			cout<<"答案錯誤!\n";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
			cout<<"正確答案:";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
			cout<<ans;
			Sleep(2500);
		}
	}
}
void md(int m){
	srand(int(time(NULL)));
	int pw=pow(10,m+2)-1,x,y;
	while(1){
		system("cls");
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
		x=rand()%pw+1;
		y=rand()%pw+1;
		opr=rand()%2;
		if(opr){
			ans=x*y;
			cout<<"\t\t"<<x<<"×"<<y<<"=";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
			cin>>ssol;
			if(ssol==ans){
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
				cout<<"答案正確!";
				Sleep(1500);
			}
			else{
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
				cout<<"答案錯誤!\n";
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
				cout<<"正確答案:";
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
				cout<<ans;
				Sleep(2500);
			}
		}
		else{
			quot=x/y;
			rmder=x%y;
			cout<<"\t\t"<<x<<"÷"<<y<<"=";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
			cin>>qsol;
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
			cout<<"\t\t"<<x<<"%"<<y<<"=";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
			cin>>rsol;
			if(qsol==quot && rsol==rmder){
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
				cout<<"答案正確!";
				Sleep(1500);
			} 
			else{
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
				cout<<"答案錯誤!\n";
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
				cout<<"正確答案:";
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
				cout<<quot<<"\n         "<<rmder;
				Sleep(2500);
			}
		}
	}
} 
void asmd(int m){
	srand(int(time(NULL)));
	int pw=pow(10,m+2)-1,op,op2,x,xx,xxx,xxxx;
	bool br;
	while(1){
		system("cls");
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
		br=false;
		x=rand()%pw+1;
		xx=rand()%pw+1;
		xxx=rand()%pw+1;
		xxxx=rand()%pw+1;
		op=rand()%5;
		switch(op){
			case 0:cout<<"("<<x<<"+"<<xx;ans=x+xx;br=true;break;
			case 1:cout<<"("<<x<<"-"<<xx;ans=x-xx;br=true;break;
			case 2:cout<<x<<"×"<<xx;ans=x*xx;break;
			case 3:cout<<x<<"÷"<<xx;ans=x/xx;break;
			case 4:cout<<x<<"%"<<xx;ans=x%xx;
		}
		op=rand()%5;
		if(!op){
			cout<<"+"<<xxx;
			if(!br){
				cout<<"=";
				ans+=xxx;
			}
			else{
				cout<<")";
				ans+=xxx;
				op2=rand()%3;
				switch(op2){
					case 0:cout<<"×"<<xxxx<<"=";ans*=xxxx;break;
					case 1:cout<<"÷"<<xxxx<<"=";ans/=xxxx;break;
					case 2:cout<<"%"<<xxxx<<"=";ans%=xxxx;
				}
			}
		} 
		else if(op==1){
			cout<<"-"<<xxx;
			if(!br){
				cout<<"=";
				ans-=xxx;
			}
			else{
				cout<<")";
				ans-=xxx;
				op2=rand()%3;
				switch(op2){
					case 0:cout<<"×"<<xxxx<<"=";ans*=xxxx;break;
					case 1:cout<<"÷"<<xxxx<<"=";ans/=xxxx;break;
					case 2:cout<<"%"<<xxxx<<"=";ans%=xxxx;
				}
			}
		}
		else if(op==2){
			if(br)
				cout<<")";
			cout<<"×"<<xxx<<"=";
			ans*=xxx;
		}
		else if(op==3){
			if(br)
				cout<<")";
			cout<<"÷"<<xxx<<"=";
			ans/=xxx;
		}
		else{
			if(br)
				cout<<")";
			cout<<"%"<<xxx<<"=";
			ans%=xxx;
		}
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
		cin>>ssol;
		if(ssol==ans){
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
			cout<<"答案正確!";
			Sleep(1500);
		}
		else{
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
			cout<<"答案錯誤!\n";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
			cout<<"正確答案:";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
			cout<<ans;
			Sleep(2500);
		}		
	}
}
int main(){
	cout<<"\t\t歡迎來到算數小遊戲!\n\n";
	cout<<"\t\t    0 -- 加減法\n";
	cout<<"\t\t    1 -- 乘除法\n";
	cout<<"\t\t  2 -- 加減乘除法\n"; 
	cout<<"\t\t其他序號 -- 退出遊戲\n";
	cout<<"               遇到'÷'一律保留整數!\n";
	cout<<"\t\t    '%'表示取餘!\n"; 
	cout<<"\t\t    請輸入序號:";
	cin>>mode1;
	if(mode1<0 || mode1>2){
		system("cls");
		cout<<"\t\t您已退出遊戲!";
		return 0;
	}
	system("cls");
	cout<<"\t\t歡迎來到算數小遊戲!\n\n";
	cout<<"\t\t     0 -- 簡單\n";
	cout<<"\t\t     1 -- 困難\n";
	cout<<"\t\t     2 -- 大師\n"; 
	cout<<"\t\t     3 -- 煉獄\n";
	cout<<"\t\t     4 -- 非人\n";
	cout<<"\t\t其他序號 -- 退出遊戲\n\n";
	cout<<"\t\t    請輸入序號:";
	cin>>mode2;
	if(mode2<0 || mode2>4){
		system("cls");
		cout<<"\t\t您已退出遊戲!";
		return 0;
	}
	switch(mode1){
		case 0:as(mode2);break;
		case 1:md(mode2);break;
		case 2:asmd(mode2);
	}
	return 0;
}

如果觉得代码冗余或有出现错误,请在评论区指正文章来源地址https://www.toymoban.com/news/detail-692157.html

到了这里,关于C++小游戏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++小游戏贪吃蛇源码

    graphics.h是针对DOS下的一个C语言图形库 (c++也可以) 目前支持下载此头文件的常用的有两种: EGE, 全名Easy Graphics Engine, 是windows下的简易绘图库,是一个类似BGI(graphics.h)的面向C/C++语言新手的图形库 EasyX, 全名EasyX Graphics Library, 是针对 Visual C++ 的免费绘图库,支持 VC6.0 ~ VC2022,简单

    2024年02月13日
    浏览(39)
  • c++推箱子小游戏

    上代码: 由于写游戏时间较长,更新较慢,请大佬们理解一下

    2024年02月09日
    浏览(38)
  • C++图形开发(15):C++小游戏——别碰方块

    经过了十几篇文章的开发,“别碰方块”小游戏已经完成啦! 直接下载地址(不是静态编译不能单EXE文件运行,所以上传的是整个项目):一个C++小游戏“别碰方块” 注意:源代码若要成功编译,请确保满足以下条件: 1.使用Visual Stdio进行编译 2.已正确安装 graphics.h 图形库

    2024年02月16日
    浏览(37)
  • C++三体星战小游戏

    物理小游戏, 懒得 写注释。 游戏代码

    2024年02月11日
    浏览(32)
  • C++:史上最坑小游戏

    史上最坑小游戏,先别使用,往后看! 破解: 输入1~4的破解方法(二次开机)或: 输入5,6:的破解方法(一旦运行此程序,只有按下Windows开始键(其实我也不知道它叫什么,就是那个按一下就能显示开始窗口的键)然后按 cmd就会弹出一个窗口,根平时代码运行时的窗口一

    2024年01月21日
    浏览(37)
  • 用C++实现简单的小游戏

    采用面向对象的编程思想 在头文件中引入acllic图形库,实现c++控制图片以及生成可视化窗口 所需工具: acllib图形库下载地址:acl图形库下载地址  win32位项目的创建: 通过visual studio创建win32项目 三张图片:tom.bmp,jerry.bmp,heart.bmp 1.猫和老鼠游戏,其中包含可以加分的红心

    2024年02月05日
    浏览(32)
  • 纯c++简易的迷宫小游戏

    一个用c++写的黑框框迷宫 适合新手入门学习 也适合大学生小作业 下面附上代码 初始化游戏界面:设置迷宫的大小(WIDTH和HEIGH),生成迷宫地图(map),包括墙壁、空地、起点和终点。 显示欢迎界面和游戏规则:通过Welcome()函数和Rule()函数分别实现。 开始计时:记录游戏开

    2024年01月17日
    浏览(45)
  • C++控制台打飞机小游戏

    我终于决定还是把这个放出来。 视频在这:https://v.youku.com/v_show/id_XNDQxMTQwNDA3Mg==.html 具体信息主界面上都有写。 按空格暂停,建议暂停后再升级属性。 记录最高分的文件进行了加密。 有boss(上面视频2分47秒)。 挺好玩的。 可能有bug,不想改了,整体体验不错就行了。 更多

    2024年02月05日
    浏览(49)
  • 用c++实现五子棋小游戏

    五子棋是一款经典小游戏,今天我们就用c++实现简单的五子棋小游戏 目录 用到的算法: 思路分析 定义变量  开始写代码   完整代码  结果图: 合法移动的判断: isValidMove 函数通过检查指定位置是否在棋盘范围内,并且该位置是否为空位来确定是否为合法的移动。 获胜条

    2024年02月07日
    浏览(53)
  • 用C++写一个小游戏——扫雷(1)

    1、安装VS2022 (1)从官网下载Visal Studio(Community 2022): Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com) https://visualstudio.microsoft.com/zh-hans/vs/ (2)安装Visal Studio  下载完成后,启动下载的 VisualStudioSetup.exe 在 工作负荷 选择 “ 使用C++的桌面开发 ” 即可,其他看个

    2024年02月01日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包