//第五人格(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);
}
}
DEVC++第五人格V2.0
于 2024-07-26 17:54:14 首次发布