DEVC++第五人格V2.0

//第五人格(1P咒术师人机屠夫)
#include<algorithm>
#include<fstream>
#include<iostream>
#include<stdio.h>
#include<cstdio>
#include<iostream>
#include<windows.h>
#include<conio.h>
#include <time.h>
#include <stdlib.h>
#include<bits/stdc++.h>
#include<cstdio>
#include<algorithm>
#include <windows.h>
#include <stdlib.h>
#include <time.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) //必要的,要背下来
using namespace std;
int game_map[20][20];
int go;//判断监管是否能走
int dj;//密码机
int dj2;
int dj3;
int knife;//擦刀 
bool ch_yn=false;//上椅子 
int chair=0;//挣扎 
int fly_t=60;//飞天时间 
int dm;//大门
int x,y;//我的坐标
int HP=2;//血量
int dx,dy;//敌方坐标
int ds;//敌方被麻痹
int jns;//技能数量
int jl[4];//电机距离,用于指示寻找电机
int open() {
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
	cout<<"----------"<<endl;
	cout<<"|第";
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
	cout<<"5";
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
	cout<<"人格 |"<<endl;
	cout<<"----------"<<endl;
	while(!kbhit()) {
 
	}
	system("cls");
}
int first() {
	game_map[9][9]=1;
	game_map[9][19]=2;
	game_map[9][0]=3;
	x=0;
	y=0;
	dx=19;
	dy=19;
	HP=2;
}
int jdz(int number) {
	if(number<0) {
		number*=-1;
	}
	return number;
}
int ch_up(){
	if(HP==0&&chair<20){
		if(go%5==0){
			fly_t--;
		}
	}
	if(chair>=20){
		chair=0;
		ch_yn=false;
		HP=2;
	}
}
bool xt() {
	if((x-dx<=6&&x-dx>=0)||(dx-x<=6&&dx-x>=0)) {
		return true;
	}
	else if((y-dy<=6&&y-dy>=0)||(dy-y<=6&&dy-y>=0)) {
		return true;
	}
	else{
		return false;
	}
}
int out() {
	system("cls");
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
	cout<<"技能:"<<jns<<"血量:"<<HP<<"飞天剩余时间"<<fly_t<<endl;
	for(int i=x-2; i<x+3; i++) {
		for(int j=y-2; j<y+3; j++) {
			if(i==x&&j==y) {
				if(xt()) {
					SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
					cout<<"o";
				} else {
					SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
					cout<<"o";
				}
			} else if(i==dx&&j==dy) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
				cout<<"o";
			} else if(i==4&&j==9&&dj<15) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
				cout<<"n";
			} else if(i==9&&j==9&&dj2<15) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
				cout<<"n";
			} else if(i==14&&j==9&&dj3<15) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
				cout<<"n";
			} else if(i==9&&j==19) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
				cout<<"M";
			} else if(i==9&&j==0) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
				cout<<"n";
			} else if(i==-1||i==20) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
				cout<<"+";
			} else if(j==-1||(j==20&&i!=9)) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
				cout<<"+";
			} else {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
				cout<<"*";
			}
		}
		cout<<endl;
	}
	sort(jl,jl+4);
	cout<<jl[0]<<"米";
}
int AI() {
	if(knife>0){
		knife--;
		return 0;
	}
	if(ds>0) {
		ds--;
		return 0;
	}
	if(go%7!=0) {
		return 0;
	}
	if(x==dx&&y==dy&&knife==0&&HP>0) {
		HP--;
		knife=15;
	}
	if(dx<x&&dx<20&&HP>0) {
		dx++;
	} else if(dx>x&&dx>-1&&HP>0) {
		dx--;
	} else if(dy>y&&dy>-1&&HP>0) {
		dy--;
	} else if(dy<y&&dx<20&&HP>0) {
		dy++;
	}
 
}
int play() {
	char c;
	if(kbhit()) {
		c=getch();
		if(c=='w'&&x>0&&HP>0) {
			x--;
		}
		if(c=='a'&&y>0&&HP>0) {
			y--;
		}
		if(c=='s'&&x<19&&HP>0) {
			x++;
		}
		if(c=='d'&&y<19&&HP>0) {
			y++;
		}
		if(c=='q'&&x==4&&y==9&&dj<15) {
			dj++;
		}
		if(c=='q'&&x==9&&y==9&&dj2<15) {
			dj2++;
		}
		if(c=='q'&&x==14&&y==9&&dj3<15) {
			dj3++;
		}
		if(c=='q'&&x==9&&y==19&&dj>=15&&dj2>=15&&dj3>=15) {
			dm++;
		}
		if(c=='q'&&HP==0){
			chair++;
		}
		if(c=='q'&&x==9&&y==0&&jns<5) {
			jns++;
			if(HP<2){
				HP++;
			}
		}
		if(c=='e'&&jns>0) {
			jns--;
			ds+=10;
		}
	}
}
int main() {
	open();
	first();
	while(true) {
		jl[0]=0;
		jl[1]=0;
		jl[2]=0;
		jl[3]=0;
		if(dj<15) {
			jl[0]+=jdz(x-4);
			jl[0]+=jdz(y-9);
		} else {
			jl[0]=999999;
		}
		if(dj2<15) {
			jl[1]+=jdz(x-9);
			jl[1]+=jdz(y-9);
		} else {
			jl[1]=999999;
		}
		if(dj3<15) {
			jl[2]+=jdz(x-14);
			jl[2]+=jdz(y-9);
		} else {
			jl[2]=999999;
		}
		jl[3]+=jdz(x-9);
		jl[3]+=jdz(y-19);
		out();
		play();
		AI();
		ch_up(); 
		if(dm>=5) {
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
			system("cls");
			cout<<"逃脱";
			Sleep(2000);
			system("cls");
			return 0;
		}
		if(fly_t<=0) {
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
			system("cls");
			cout<<"迷失";
			Sleep(2000);
			system("cls");
			return 0;
		}
		Sleep(200);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值