⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 用VC2005做的控制台小游戏走迷宫模式剧情可自行添加游戏开始界面也可自行添加
💻 CPP
字号:
#include <iostream>
#include "map.h"
#include "state.h"

using std::cout;
using std::cin;
using std::endl;



	const int WALKING = 2;
	const int ATTACKING = 3;
	
	InMap::TenMap1 MyTenMap1;
	InMap::TenMap2 MyTenMap2;
	InMap::TenMap3 MyTenMap3;
	InMap::TenMap4 MyTenMap4;
	InMap::TenMap5 MyTenMap5;

	InMap::LeftTMap1 MyLeftTMap1;
	InMap::LeftTMap2 MyLeftTMap2;
	InMap::LeftTMap5 MyLeftTMap5;
	InMap::LeftTMap4 MyLeftTMap4;

	InMap::RightTMap1 MyRightTMap1;
	InMap::RightTMap2 MyRightTMap2;
	InMap::RightTMap5 MyRightTMap5;
	InMap::RightTMap3 MyRightTMap3;

	InMap::UpTMap1 MyUpTMap1;
	InMap::UpTMap3 MyUpTMap3;
	InMap::UpTMap4 MyUpTMap4;
	InMap::UpTMap5 MyUpTMap5;

	InMap::DownTMap2 MyDownTMap2;
	InMap::DownTMap3 MyDownTMap3;
	InMap::DownTMap4 MyDownTMap4;
	InMap::DownTMap5 MyDownTMap5;


	InMap::StrangTMap3 MyStrangTMap3;
	InMap::StrangTMap4 MyStrangTMap4;
	InMap::StrangTMap5 MyStrangTMap5;

	InMap::ShuTMap1 MyShuTMap1;
	InMap::ShuTMap2 MyShuTMap2;
	InMap::ShuTMap5 MyShuTMap5;

	InMap::AbstractMap *MapArray[] = {&MyTenMap1,&MyTenMap2,&MyTenMap3,&MyTenMap4,&MyTenMap5, 
		                               &MyLeftTMap1,  &MyLeftTMap2,  &MyLeftTMap5,  &MyLeftTMap4,
									   &MyRightTMap1, &MyRightTMap2, &MyRightTMap5, &MyRightTMap3,
									   &MyUpTMap1,  &MyUpTMap3,  &MyUpTMap4,  &MyUpTMap5, 
									   &MyDownTMap2, &MyDownTMap3, &MyDownTMap4, &MyDownTMap5,
									   &MyStrangTMap3, &MyStrangTMap4, &MyStrangTMap5,
									   &MyShuTMap1, &MyShuTMap2, &MyShuTMap5};

	
	InState::MyState hero;
	
	int GameUserFace = WALKING;
	int CurrentMapIndex = 0;
	int CurrentEventIndex = 0;

	int frontStepX = hero.playerX;
	int frontStepY = hero.playerY;

	char direct=0;

	void AddDirect(char direct)
	{
		if(direct == 'w')
			hero.AddUp();
		else if(direct == 'a')
			hero.AddLeft();
		else if(direct == 'd')
			hero.AddRight();
		else if(direct == 's')
			hero.AddDown();
		else{
			cout << "wrong!"<<endl;
		}
		hero.Show();
	}
    

	void StopAndBack()
	{
		if((hero.playerX == 8 && hero.playerY ==0)||
			(hero.playerX == 12 && hero.playerY ==0)||
			(hero.playerX == 7 && hero.playerY ==1)||
			(hero.playerX == 8 && hero.playerY ==1)||
			(hero.playerX == 9 && hero.playerY ==1)||
			(hero.playerX == 10 && hero.playerY ==1)||
			(hero.playerX == 11 && hero.playerY ==1)||
			(hero.playerX == 12 && hero.playerY ==1)||
			(hero.playerX == 13 && hero.playerY ==1)||
			(hero.playerX == 14 && hero.playerY ==1)||
			(hero.playerX == 15 && hero.playerY ==1)||
			(hero.playerX == 8 && hero.playerY ==2)||
			(hero.playerX == 10 && hero.playerY ==2)||
			(hero.playerX == 12 && hero.playerY ==2)||
			(hero.playerX == 14 && hero.playerY ==2)||
			(hero.playerX == 4 && hero.playerY ==2)||
			(hero.playerX == 4 && hero.playerY ==3)||
			(hero.playerX == 5 && hero.playerY ==3)||
			(hero.playerX == 7 && hero.playerY ==3)||
			(hero.playerX == 8 && hero.playerY ==3)||
			(hero.playerX == 4 && hero.playerY ==4)||
			(hero.playerX == 8 && hero.playerY ==4)||

			(hero.playerX == 5 && hero.playerY ==5)||
			(hero.playerX == 6 && hero.playerY ==5)||
			(hero.playerX == 7 && hero.playerY ==5)||
			(hero.playerX == 8 && hero.playerY ==5)||
			(hero.playerX == 9 && hero.playerY ==5)||
			(hero.playerX == 10 && hero.playerY ==5)||
			(hero.playerX == 11 && hero.playerY ==5)||
			(hero.playerX == 12 && hero.playerY ==5)||
			(hero.playerX == 13 && hero.playerY ==5)||
			(hero.playerX == 4 && hero.playerY ==5)||

			(hero.playerX == 4 && hero.playerY ==6)||
			(hero.playerX == 10 && hero.playerY ==6)||
			(hero.playerX == 12 && hero.playerY ==6)||

			(hero.playerX == 10 && hero.playerY ==7)||
			(hero.playerX == 11 && hero.playerY ==7)||
			(hero.playerX == 12 && hero.playerY ==7)||

			(hero.playerX == 10 && hero.playerY ==8)||
			(hero.playerX == 12 && hero.playerY ==8)||
			(hero.playerX == 14 && hero.playerY ==8)||

			(hero.playerX == 7 && hero.playerY ==9)||
			(hero.playerX == 8 && hero.playerY ==9)||
			(hero.playerX == 9 && hero.playerY ==9)||
			(hero.playerX == 10 && hero.playerY ==9)||
			(hero.playerX == 12 && hero.playerY ==9)||
			(hero.playerX == 13 && hero.playerY ==9)||
			(hero.playerX == 14 && hero.playerY ==9)||
			(hero.playerX == 15 && hero.playerY ==9)||

			(hero.playerX == 8 && hero.playerY ==10)||
			(hero.playerX == 10 && hero.playerY ==10)||
			(hero.playerX == 12 && hero.playerY ==10)||

			(hero.playerX == 8 && hero.playerY ==11)||

			(hero.playerX == 8 && hero.playerY ==12))
		{}else 
		{
			cout << "你走错了,前面是墙\n"
			     << endl;
				 hero.playerX = frontStepX;
				 hero.playerY = frontStepY;
				 
		}


	}

     void renderX()
	 {
      
		 StopAndBack();
	 	frontStepX = hero.playerX;
		frontStepY = hero.playerY;
		hero.HeroEvent();
		CurrentMapIndex = hero.ShowCurrentMapIndex();
		CurrentEventIndex = hero.ShowCurrentEventIndex();
		switch(GameUserFace)
		{
		case 2:
			switch(CurrentMapIndex)
			{
				
			case 0:
				InMap::PaintCurrentMap(MapArray[0]);
				break;
			case 1:
				InMap::PaintCurrentMap(MapArray[1]);
				break;
			case 2:
				InMap::PaintCurrentMap(MapArray[2]);
				break;
			case 3:
				InMap::PaintCurrentMap(MapArray[3]);
				break;
			case 4:
				InMap::PaintCurrentMap(MapArray[4]);
				break;
			case 5:
				InMap::PaintCurrentMap(MapArray[5]);
				break;
			case 6:
				InMap::PaintCurrentMap(MapArray[6]);
				break;
			case 7:
				InMap::PaintCurrentMap(MapArray[7]);
				break;
			case 8:
				InMap::PaintCurrentMap(MapArray[8]);
				break;
			case 9:
				InMap::PaintCurrentMap(MapArray[9]);
				break;
			case 10:
				InMap::PaintCurrentMap(MapArray[10]);
				break;
			case 11:
				InMap::PaintCurrentMap(MapArray[11]);
				break;
			case 12:
				InMap::PaintCurrentMap(MapArray[12]);
				break;
			case 13:
				InMap::PaintCurrentMap(MapArray[13]);
				break;
			case 14:
				InMap::PaintCurrentMap(MapArray[14]);
				break;
			case 15:
				InMap::PaintCurrentMap(MapArray[15]);
				break;
			case 16:
				InMap::PaintCurrentMap(MapArray[16]);
				break;
			case 17:
				InMap::PaintCurrentMap(MapArray[17]);
				break;
			case 18:
				InMap::PaintCurrentMap(MapArray[18]);
				break;
			case 19:
				InMap::PaintCurrentMap(MapArray[19]);
				break;
			case 20:
				InMap::PaintCurrentMap(MapArray[20]);
				break;
			case 21:
				InMap::PaintCurrentMap(MapArray[21]);
				break;
			case 22:
				InMap::PaintCurrentMap(MapArray[22]);
				break;
			case 23:
				InMap::PaintCurrentMap(MapArray[23]);
				break;
			case 24:
				InMap::PaintCurrentMap(MapArray[24]);
				break;
			case 25:
				InMap::PaintCurrentMap(MapArray[25]);
				break;
			case 26:
				InMap::PaintCurrentMap(MapArray[26]);
				break;
	
			}

			switch(CurrentEventIndex)
			{
			case 0:
				
				break;
			case 1:
				break;
			default:
				break;
			}
			break;
		case 3:
			break;

		}
	 }

  








void main()
{

	 while(true)
	 {
		 //logic();
		 renderX();
		
		cin >> direct;
		 AddDirect(direct);
		if(CurrentMapIndex==CurrentMapIndex)
		 system("cls");
		else{break;}

	}


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -