栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++2D城建小游戏<<城市之光3>> V1.0.0.883

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++2D城建小游戏<<城市之光3>> V1.0.0.883

原创游戏-版权所有,侵权必究

免编译下载网址

www.jinpeng-game.ys168.com

//游戏仍在更新!
#include
#include
#include
#include
#include
#include
#include
#include
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
CONSOLE_FONT_INFO consoleCurrentFont;
using namespace std;
long long money=100000,people=0,light=3;
int l_x=100,l_y=100,xx=100,yy=100;
string b_n[11]={};
int b_n_t[11]={},b_num[11]={},b_p[11]={},b_where[11][3]={},b_work=0; 
struct
{
	void color(int all){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),all);}
	void wait(int all){Sleep(all);}
	void cls(){system("cls");}
	void b(short hz,double time){Beep(hz,time);}
	void gt(int x,int y)
	{
		COORD coord;
		coord.X=y;//Here, the order is reversed, otherwise, the output pointer is moved to Y row and X column
		coord.Y=x;
		HANDLE a=GetStdHandle(STD_OUTPUT_HANDLE);
		SetConsoleCursorPosition(a,coord);
	}
}basic;
struct
{
	struct
	{
		short m[5][200][200]={};
		bool a[5][200][200]={};
		double p[200][200]={};
	}map;
	struct
	{
		string photo[50][5]={
		{"金","金","金","金","金"}, 
		{"│ ","--","□","◎","◎"},
		{"■","■","■","■","■"},
		{"工","工","工","工","工"},
		{"◆","◆","◆","◆","◆"},
		};
		short color[50][5]={
		{170,170,170,170,170}, 
		{143,143,143,130,132},
		{167,165,164,166,169},
		{143,143,143,143,143}, 
		{167,165,164,166,169},
		};
	}library;
	struct
	{
	}tools;
}m;
int o_check(int need_money,int out,int x,int y,int need_time,int need_people,string name)
{
	basic.cls();
	b_work=1;
	basic.color(15) ;
	printf("正在联系光城建设五局.n"); 
	basic.wait(100) ;
	printf("正在询问对方能否承包%s项目.n",name.c_str()); 
	basic.wait(100) ;
	printf("对方正在研讨承包%s项目的问题.n",name.c_str()); 
	basic.wait(100) ;
	if(money<=need_money+1)
	{
		printf("对方拒绝承包%s项目n原因:市财政局无法支付其承包费用n",name.c_str()); 
		system("pause") ;
	}
	else
	{
		bool ok=true;
		for(int i=0;i<=10;i++) 
		{
			if(b_n[i]=="") 
			{
				ok=false;
				m.map.m [1][xx][yy]=3;
				printf("对方接受承包%s项目n市财政局已经对光城建设五局支付了此项目的费用%i元n",name.c_str(),need_money); 
				system("pause") ;
				b_n[i]=name,b_where[i][1]=x,b_where[i][2]=y,b_n_t[i]=need_time,b_num[i]=out,money=money-need_money,b_p[i]=need_people;
				break;
			}
		}
		if(ok)
		{
			printf("对方拒绝承包%s项目n原因:对方工程设施不足,无法承包此项目n",name.c_str()); 
			system("pause") ;
		}
	}
	b_work=0;
	basic.cls();
}/ 
		}
		basic.cls();
	}
	basic.cls();
}
int look_do() 
{
	basic.cls();
	while(1)
	{
		basic.gt(0,0)  ;
		printf("工程进度 E 返回主界面n");
		for(int i=0,w=0;i<=10;i++) 
		{
			if(b_n[i]!="")
			{
				w++;
				printf("第%i个工程:%s 坐标(%i,%i)剩余完工时间%i秒               n",w,b_n[i].c_str(),b_where[i][1],b_where[i][2],b_n_t[i]);
			}
		}
		for(int i=0;i<=4;i++) printf("                                                n") ;
		
		if(GetAsyncKeyState((int)'E'))break;
	}
	basic.cls(); 
}
int out_m()
{
	basic.gt(0,0) ;
	short color=0;
	for(int m_x=l_x-10,x=0;m_x<=l_x+10;m_x++,x++) 
	{
		for(int m_y=l_y-10,y=0;m_y<=l_y+10;m_y++,y++) 
		{
			if(m.library.color[m.map.m[1][m_x][m_y]][m.map.m[2][m_x][m_y]]!=color)
			{
				basic.color(m.library.color[m.map.m[1][m_x][m_y]][m.map.m[2][m_x][m_y]]);
				color=m.library.color[m.map.m[1][m_x][m_y]][m.map.m[2][m_x][m_y]];
			}
			printf("%s",m.library.photo[m.map.m[1][m_x][m_y]][m.map.m[2][m_x][m_y]].c_str() );
		}
		printf("n"); 
	}
	basic.color(15) ;
	printf("x-%i,y-%i,see_x-%i,see_y-%i      n城市人口:%lld 市财政局还有%lld元                   n提示:AWSD 移动视角 Q 取消当前操作nP 放置公路 L 摧毁建筑物/公路 O 查看建造进度nI 在当前光标处修建建筑物",yy,xx,l_x,l_y,people,money);
}
int game()
{
	CreateThread(NULL,0,trafic_working,NULL,0,NULL);
	CreateThread(NULL,0,making_building,NULL,0,NULL);
	int doing=0;//0无操作 1放置公路 2摧毁建筑物 
	while(1)
	{
		out_m();
		mouse.mouse();
		if(mouse.y<=21&&mouse.x<=21*2)yy=(mouse.x/2)+l_y-10,xx=mouse.y+l_x-10;
		if(GetAsyncKeyState((int)'D')&&l_y<189)l_y++;
		else if(GetAsyncKeyState((int)'A')&&l_y>11)l_y--;
		else if(GetAsyncKeyState((int)'S')&&l_x<189)l_x++;
		else if(GetAsyncKeyState((int)'W')&&l_x>11)l_x--;
		else if(GetAsyncKeyState((int)'P')) doing=1;
		else if(GetAsyncKeyState((int)'L')) doing=2;
		else if(GetAsyncKeyState((int)'Q')) doing=0;
		else if(GetAsyncKeyState((int)'O')) look_do();
		else if(GetAsyncKeyState((int)'I')) 
		{
			
			if(m.map.m[1][xx][yy]==0)
			{
				int arror=0;
				if(m.map.m[1][xx+1][yy]==1)arror++;
				if(m.map.m[1][xx-1][yy]==1)arror++;
				if(m.map.m[1][xx][yy+1]==1)arror++;
				if(m.map.m[1][xx][yy-1]==1)arror++;
				if(arror>=1)make_do();
				else MessageBox(0,"请在公路旁建造建筑物","提示",MB_OK);
			}
			else MessageBox(0,"您不能在其它建筑物/公路上建造建筑物","提示",MB_OK);
		}
		if(KEY_DOWN(VK_LBUTTON))
		{
			if(doing==1&&m.map.m[1][xx][yy]==0)m.map.m[1][xx][yy]=1;
			else if(doing==2)m.map.m[1][xx][yy]=0;
		}
	}
}
int main()
{
	system("mode con cols=150 lines=40");
	HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
    DWORD mode;
    GetConsoleMode(hStdin, &mode);
	mode &= ~ENABLE_QUICK_EDIT_MODE;  //移除快速编辑模式
	mode &= ~ENABLE_INSERT_MODE;      //移除插入模式
    mode &= ~ENABLE_MOUSE_INPUT;
    SetConsoleMode(hStdin, mode);
	CONSOLE_CURSOR_INFO cursor_info={1,0};
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
	system("title 城市之光3"); basic.color(15); basic.gt(3,6);printf("made by heveral(白.)");basic.wait(500);basic.cls();mouse.get_real_mouse();
	while(1)
	{
		choose.about_things="开始界面选择",choose.title="城市之光3",choose.whats[1]="开始游戏", choose.whats[2]="打开金鹏游戏官网", choose.whats[3]="关闭游戏";
		short a=choose.ai_choose();
		if(a==1)game();
		else if(a==2)system("start http://jinpeng-game.ys168.com/");
		else if(a==3) break;
	}
}

 原创游戏-版权所有,侵权必究

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/457241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号