游戏bug求调(100%关注)
  • 板块学术版
  • 楼主2345A
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/4/3 15:23
  • 上次更新2024/4/3 19:02:31
查看原帖
游戏bug求调(100%关注)
565070
2345A楼主2024/4/3 15:23

游戏特别烂,而且还有bug,又没有编完:

bug1:while(clock()/CLOCKS_PER_SEC<=5.00);根本没有用!只能用来做愚人节题目,我该怎么修改?

bug2:cout << "\033[1;2mHello, World!\033[0m\n";根本无法调大字体!!

bug3:迷宫好像是固定的,不是随机的??

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
const int WIDTH = 10;
const int HEIGHT = 10;
string maze[HEIGHT] = {
    "####################",
    "#..S...#......#.#",
    "#.##..#..#..#.##.",
    "#.#...#...#...#.#.",
    "#.#.E.#...#..#.#.",
    "#.#...#...#...#.#.",
    "#.#..#..#..#.##.",
    "#.#...#...#...#.#.",
    "#..S...#......#.#",
    "####################"
};

pair<int, int> player = make_pair(1, 1);
bool is_valid_move(int x, int y) {
    if (x < 0 || x >= HEIGHT || y < 0 || y >= WIDTH) {
        return false;
    }
    if (maze[x][y] == '#') 
        return false;
    
    return true;
}
void print_maze() {
    for (int i = 0; i < HEIGHT; ++i) 
	{
        for (int j = 0; j < WIDTH; ++j) 
		{
            if (make_pair(i, j) == player) 
                cout << "P"; 
             else 
            cout << maze[i][j];
        }
        cout << endl;
    }
}
void game_over()
{
    cout << "很遗憾,你未能在规定时间内找到出口。你死了" << endl;
}

int MG() 
{
	system("cls");
    cout << "欢迎来到Y国迷宫!找到出口(E)逃出迷宫吧!" << endl;
    cout << "你有35秒的时间来完成挑战。" << endl;
    srand(time(0)); 
    clock_t start_time = clock();

    bool game_over_flag = false;
    while (!game_over_flag) {
        print_maze();
        cout << "请输入移动指令 (WASD): ";
        char move;
        cin >> move;
        clock_t current_time = clock();
        if ((current_time - start_time) / (double)CLOCKS_PER_SEC > 35) 
		{
            game_over();
            game_over_flag = true;
        }

        switch (move) 
		{
            case 'W': 
                if (is_valid_move(player.first - 1, player.second)) 
                player.first--;
                else 
                {
                cout << "你踩到了地雷,你死了" << endl;
                return 0;
                }
                break;
            case 'A': 
                if (is_valid_move(player.first, player.second - 1)) 
                player.second--;
                 else 
                 {
                cout << "你踩到了地雷,你死了" << endl;
                return 0;
                }
                break;
            case 'S': 
                if (is_valid_move(player.first + 1, player.second)) 
                    player.first++;
                 else 
                 {
                    cout << "你踩到了地雷,你死了" << endl;
                    return 0;
                }
                break;
            case 'D': 
                if (is_valid_move(player.first, player.second + 1)) 
                player.second++;
                else 
                {
                cout << "你踩到了地雷,你死了" << endl;
            }
                break;
            default:
                cout << "无效的输入,请使用WASD进行移动!" << endl;
                break;
        }
        if (maze[player.first][player.second] == 'E') 
		{
			system("cls");
            cout<<"\033[1;2m恭喜你,你逃出了Y国迷宫!!\033[0m\n";
            game_over_flag = true;
              HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
            SetConsoleTextAttribute(hConsole, 12); 
            cout<<"获得成就:逃出迷宫"<<endl;
             SetConsoleTextAttribute(hConsole, 15); 
        }
    }

    return 0;
}
int si1(int sw)
{
	if(sw==0)
	return 0;
	return 1;
}
int jq2(int sw,int zd)
{
	cout<<""; 
} 
int Y(int sw,int zd)
{
	cout<<"你和特工们开始向Y国进军\n";
	cout<<"然而Y国的防御力量不可思议!\n";
	cout<<"无数炮管正对着你们\n";
	int p;
	cout<<"你选择:\n";
	cout<<"1.直接进攻!\n";
	cout<<"2.绕道后方\n";
	cout<<"3.逃跑\n";
	cin>>p;
	if(p==1) 
	{
		cout<<"万炮齐发,你被炸死了。\n";
		return 0;
	}
	else if(p==2)
	{
		cout<<"你和特工们发现了一些武器,现在你选择:\n";
		cout<<"1.进攻!\n";
		cout<<"2.继续搜集武器\n";
		int ji;
		cin>>ji;
		if(ji==1)
		{
			cout<<"你们攻入了Y国!恭喜,任务完成!\n";
		    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
            SetConsoleTextAttribute(hConsole, 12); 
            cout<<"获得成就:任务完成"<<endl;
            cout<<"获得成就:升职为中尉"<<endl;
            cout<<"你,升职了!\n";
            SetConsoleTextAttribute(hConsole, 15);
            cout<<"任务2:穿越Y国迷宫\n";
            cout<<"1.去\n";
            cout<<"2.不去\n";
            int q;
            cin>>q;
            if(q==1)
            MG();
            else if(q==2)
            {
            	cout<<"长官勃然大怒,把你斩了\n";
            	cout<<"你被射死了\n";
            	return 0;
			} 
		}
		else if(ji==2)
		{
			cout<<"一些Y国士兵杀了出来\n";
			if(zd<=69)
		    {
		    	cout<<"你们拼死抵抗,奇迹发生了,你们赢了\n";
				cout<<"可是一架轰炸机飞了过来,你被炸死了\n";
				return 0;
			} 
			if(zd>69)
			 {
			 	cout<<"你们投降了,被Y国士兵带入了Y国\n";
			 	cout<<"你发现了一个军官\n";
			 	cout<<"1.杀了他\n";
			 	cout<<"2.啥也不干\n";
			 	if(sw>3)
			 	{
			 		cout<<"你杀了军官,突破了Y国防御!恭喜,任务玩成!\n";
			 		HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
                    SetConsoleTextAttribute(hConsole, 12); 
                    cout<<"获得成就:任务完成"<<endl;
                    SetConsoleTextAttribute(hConsole, 15);
                     return 0;
				 }
				 else
				 {
				 	cout<<"Y国士兵把你杀了\n";
				 	cout<<"你射死了\n";
				 	return 0;
				 }
			 }
		}
	}
	else if(p==3)
	{
	   cout<<"你们开始逃跑\n";
	   cout<<"过了一天又一天\n";
	   cout<<"终于,你们的食物用完了\n";
	   cout<<"你被饿死了\n";
	   return 0;	
	} 
	
	
} 
int z2(int sw,int zd)
{
	cout<<"你发现了一把机枪,子弹+66\n";
	zd+=66;
	cout<<"忽然,一个黑衣人跳了出来,喊道:来者何人!\n" ;
	cout<<"快报上暗号!\n";
	HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, 12); 
    cout<<"提示:暗号是4个小写字母,A比C低"<<endl;
    SetConsoleTextAttribute(hConsole, 15);
    string abcd;
	cin>>abcd;
	if(abcd=="abcd")
	{
		cout<<"黑衣人把你带到了他们的基地\n";
		cout<<"原来他们都是X国的秘密特工。\n";
		cout<<"你们组成了一支大军\n";
		cout<<"毁灭了集中营\n";
		while(clock()/CLOCKS_PER_SEC<=5.00);
		//cout<<"";
		cout<<"获得成就:毁灭集中营\n"; 
		while(clock()/CLOCKS_PER_SEC<5.00);
		Y(zd,sw);
	} 
	else
	{
		cout<<"那人二话不说,举起了一颗手榴弹\n";
		int kool[0];
		 srand(static_cast<unsigned int>(time(0)));
         int random_number = rand();
		if(random_number%2==0)
		{
			cout<<"你被炸死了\n";
			return 0; 
		}
		else
		{
		  cout<<"可是你早已举起了枪,一枪干掉了黑衣人\n";
		  cout<<"你得到了5颗子弹\n";
		  cout<<"又过了一夜....\n";
		  if(si1(sw)==0)
		  {
		  	cout<<"你饿死了\n";
		  	return 0;
		  }
		  else if(sw>3)
		  {
		  cout<<"你发现你的食物只剩下1了!\n";
		  sw=1;
	      }
		   else
		   {
		   	cout<<"你的食物被全部偷了\n";
		   	sw=0;
		   } 
		   if(si1(sw)==0)
		   {
		  	cout<<"又过了一天,你饿死了\n";
		  	return 0;
		  }
		} 
	}
	
} 
int z1(int sw,int zd)
{
	cout<<"过了一天,食物-2";
	cout<<endl;
	sw-=2;
	if(si1(sw)==0)
	{
		cout<<"你饿死了\n";
		return 0;
	}
	else
	{
		int s;
		cout<<"你不小心转入了一个战场!\n";
		cout<<"战场中心处有一辆坦克\n";
		cout<<"1.去看一看\n";
		cout<<"2.走开\n";
		cin>>s;
		if(s==2) 
		{
			cout<<"一个狙击手把你打死了\n";
			//system("cls");
			return 0;
		} 
		 else if(s==1)
		 {
		 	cout<<"你发现了一把uzi,子弹+5\n,食物+1";
		 	zd+=5,sw++;
		 	cout<<"过了一夜,食物-2";
		 	sw-=2;
		 	if(si1(sw)==0)
		 	{
		 		cout<<"你饿死了\n";
		 		return 0;
			 }
			 else if(si1(sw)==1)
			 {
			 	cout<<"你发现,Y国就在你的眼前了!\n";
			 	cout<<"但是,一支大军就在你面前\n";
			 	cout<<"一个士兵发现了你\n";
			 	cout<<"你,被射死了\n";
			 	while(clock()/CLOCKS_PER_SEC<=5.00);
			 	cout<<"";
			 	
			 	cout<<"获得成就:功亏一篑!";
			 	return 0;
			 }
		 }
		 
	}
} 
int q(int sw, int zd)// sw zd
{
	int sa;
	cout<<"你遇见了一个敌国士兵\n";
	cout<<"你选择\n";
	cout<<"1.杀了他\n";
	cout<<"2.投降\n";
	cin>>sa;
	if(sa==1)
	{
		if(zd<4)
		{
		cout<<"士兵突然回头,举起机枪,把你杀了\n";
		return 0;
    	}
		else
		{
	    	cout<<"你杀了士兵,子弹-1,食物+2\n";
		    zd--,sw+=2;
		    z1(sw,zd);
	    }
	}
	else if(sa==2)
	{
		cout<<"士兵把你押送进了一个集中营,食物-1\n";
		sw--;
		if(si1(sw)==0) 
		{
			cout<<"你饿死了";
			return 0;
		}
		else
		{
			int t;
			cout<<"你发现了一条逃生通到\n";
			cout<<"1.逃出去\n";
			cout<<"2.不逃出去\n";
			cin>>t;
			system("cls");//
			if(t==2)
			{
				cout<<"一个军官走了进来,按下了一个按钮\n";
				cout<<"火焰从地下冒出\n";
				cout<<"你被烧死了\n";
				return 0;
			}
			else if(t==1)
			{
				system("cls");
				z2(sw,zd);
			} 
		}
	}
}
int AC(int sw,int zd)
{
	int i=0;
	cout<<"你好,欢迎来到第三次世界大战\n";
	cout<<"你是X国的的一位士兵\n";
	cout<<"你可以分配你的资源(食物和子弹,共10,如5 5)" ;
	cin>>sw>>zd;
	if(si1(sw)==0)
	{
		cout<<"你饿死了";
		return 0;
	}
	while(sw+zd!=10)
	{
		if(i==10)
		{
			cout<<"你死了\n";
			return 0;
		}
		cout<<"请重新输入:";
		cin>>sw>>zd; 
		i++;
	}
	system("cls");
	cout<<"你的第一个任务是:\n";
	cout<<"突袭Y国\n";
	int qu;
	cout<<"1.去\n";
	cout<<"2.不去\n";
	cin>>qu;
	if(qu==2)
	{
		cout<<"长官勃然大怒,把你杀了\n";
		return 0;
	}
	else if(qu==1)
	{
		q(sw,zd);
	}
}
int main()
{
	int sw,zd;
	AC(sw,zd);
	return 0;
}
/*#include<bits/stdc++.h>
using namespace std;
int main() 
{
    cout << "\033[1;2mHello, World!\033[0m\n";
    return 0;
}
*/
2024/4/3 15:23
加载中...