0
已解决
逃离系列2:beginning?ending?完工了!!!
这是无BGM的版本:(有BGM编译时要设置一个东西,这里就不赘述了)
/*
由于文件较大,编译和运行时间可能较长,请耐心等待!
■
□
ShowWindow(hwnd,0);
#pragma comment(lib, "winmm.lib")
其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:
0=黑色
1=蓝色
2=绿色
3=湖蓝色
4=红色
5=紫色
6=**
7=白色
8=灰色
9=淡蓝色
A=淡绿色
B=淡浅绿色
C=淡红色
D=淡紫色
E=淡**
F=亮白色
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
0=黑色,1=蓝色,2=绿色,3=湖蓝色,4=红色,5=紫色;
6=**,7=白色,8=灰色,9=淡蓝色,A=淡绿色,B=浅绿色;
C=淡红色,D=淡紫色,E=淡**,F=亮白色。
VK_LBUTTON 鼠标左键 0x01
VK_RBUTTON 鼠标右键 0x02
VK_CANCEL Ctrl + Break 0x03
VK_MBUTTON 鼠标中键 0x04
VK_BACK Backspace 键 0x08
VK_TAB Tab 键 0x09
VK_RETURN 回车键 0x0D
VK_SHIFT Shift 键 0x10
VK_CONTROL Ctrl 键 0x11
VK_MENU Alt 键 0x12
VK_PAUSE Pause 键 0x13
VK_CAPITAL Caps Lock 键 0x14
VK_ESCAPE Esc 键 0x1B
VK_SPACE 空格键 0x20
VK_PRIOR Page Up 键 0x21
VK_NEXT Page Down 键 0x22
VK_END End 键 0x23
VK_HOME Home 键 0x24
VK_LEFT 左箭头键 0x25
VK_UP 上箭头键 0x26
VK_RIGHT 右箭头键 0x27
VK_DOWN 下箭头键 0x28
VK_SNAPSHOT Print Screen 键 0x2C
VK_Insert Insert 键 0x2D
VK_Delete Delete 键 0x2E
'0' – '9' 数字 0 - 9 0x30 - 0x39
'A' – 'Z' 字母 A - Z 0x41 - 0x5A
VK_LWIN 左WinKey(104键盘才有) 0x5B
VK_RWIN 右WinKey(104键盘才有) 0x5C
VK_APPS AppsKey(104键盘才有) 0x5D
VK_NUMPAD0 小键盘 0 键 0x60
VK_NUMPAD1 小键盘 1 键 0x61
VK_NUMPAD2 小键盘 2 键 0x62
VK_NUMPAD3 小键盘 3 键 0x63
VK_NUMPAD4 小键盘 4 键 0x64
VK_NUMPAD5 小键盘 5 键 0x65
VK_NUMPAD6 小键盘 6 键 0x66
VK_NUMPAD7 小键盘 7 键 0x67
VK_NUMPAD8 小键盘 8 键 0x68
VK_NUMPAD9 小键盘 9 键 0x69
VK_F1 - VK_F24 功能键F1 – F24 0x70 - 0x87
VK_NUMLOCK Num Lock 键 0x90
VK_SCROLL Scroll Lock 键 0x91
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);//白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);//红色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);//绿色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);//蓝色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);//**
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_BLUE);//粉色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//青色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//原色
*/
#include<bits/stdc++.h>
#include<time.h>
#include<windows.h>
#include<conio.h>
#include<cstdio>
#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize(2)
#define get(VK_NONAME) (GetAsyncKeyState(VK_NONAME))
#define clean (system("cls"))
#define sl(x) (Sleep(x))
//格式1:上次游玩得分 最高得分
//格式2: 上次日期(年月日) 上次游玩累计时间(分钟) {以后建}
//地图 :7*100 0:空 1,正常方块
//△:你
//×:危险方块
using namespace std;
HWND hwnd=GetForegroundWindow();
int getcc;
void cls(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coordScreen = { 0, 0 };
SetConsoleCursorPosition( hConsole, coordScreen );
}
void HideCursor(){
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO CursorInfo;
GetConsoleCursorInfo(handle, &CursorInfo);
CursorInfo.bVisible = false;
SetConsoleCursorInfo(handle, &CursorInfo);
}
void out(string s){
for(int i=0;i<s.size();i++){
cout<<s[i];
Sleep(40);
}
cout<<"\n";
}
void Bye(string s){
for(int i=0;i<s.size();i++){
cout<<s[i];
Sleep(50);
}
}
void quicklyout(string s){
for(int i=0;i<s.size();i++){
cout<<s[i];
Sleep(20);
}
cout<<"\n";
}
void getz(){
while(1){
if(get(0x5A)){
clean;
break;
}
if(get(0x43)){
clean;
getcc=1;
break;
}
}
}
void goin(){
system("mode con cols=50 lines=10");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//原色
out("这...\n这是哪里...\n\n\n\n按Z继续\n按C跳过");
getz();
if(getcc==1)return ;
out("拜托了...\nPLAYER...\n这,只是一场梦...\n\n\n按Z继续\n");
getz();
}
void shiyong(){
if(getcc==1){
return ;
}
out("操作须知:\n按A/D左右选择,按Z确认选择。\n按X结束游戏。\n按方向键移动。");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"△";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
out(":你 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
cout<<"×";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
out(":危险方块 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
out("普通方块\n按Z继续");
getz();
}
void mainchose(){
/*
Beginning Or Ending?(R)
----------------------------
| start |
---------------------------
逃离贡献榜:
吴庞茂旭 吕若朴
*/
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
cout<<" Beginning Or Ending ?\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<" ---------------------------\n | start |\n ---------------------------\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<" 逃离";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"贡献榜:\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);
cout<<" 吴庞茂旭 吕若朴";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
getz();
}
/*
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■□□□□××□□□□□□□×□□□□□×□□□×□□□×□□□×□□□××××□□□□×××□□
■□□□□□□□□×□×□□×□□□□□×□×□×□×□×□×□×□×□□××□□××□××□□□
■△□□□□□□×□□□□×□□□×□□×□×□×□×□×□×□×□××□□□□×××□×□□□□
■□□□□□□□×□□□□□□□×□□□□□×□□□×□□□×□□□×××□□××××□□□×□□
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■1
□2
×3
1111111111111111111111111111111111111111111111111
1222233222222232222232223222322232223333222233322
1222222223232232222232323232323232322332233233222
1222222232222322232232323232323232332222333232222
1222222232222222322222322232223222333223333222322
1111111111111111111111111111111111111111111111111
×>△>□>■
*/
int mp[6][56]={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0
{1,2,2,2,2,3,3,2,2,2,2,2,2,2,3,2,2,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,3,3,3,2,2,2,2,3,3,3,2,2,2,2,1,1,1,1},//1
{1,2,2,2,2,2,2,2,2,3,2,3,2,2,3,2,2,2,2,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,2,3,3,2,2,3,3,2,3,3,2,2,2,2,2,1,1,1,1},//2
{1,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,2,3,2,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,3,2,2,2,2,3,3,3,2,3,2,2,2,2,2,2,1,1,1,1},//3
{1,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,3,2,2,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,3,3,2,2,3,3,3,3,2,2,2,3,2,2,2,2,1,1,1,1},//4
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} //5
};
void print(int x,int y){
cls();
for(int i=0;i<6;i++){
for(int j=1;j<=5-y;j++){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"■";
}
for(int j=max(0,y-5);j<=min(55,y+5);j++){
if(mp[i][j]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
cout<<"×";
}
else if(i==x&&j==y){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"△";
}
else if(mp[i][j]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"□";
}
else{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"■";
}
}
cout<<"\n";
}
}
void print_end(int x,int y){
for(int i=0;i<6;i++){
for(int j=45;j<=55;j++){
if(mp[i][j]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
cout<<"×";
}
else if(i==x&&j==y){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"△";
}
else if(mp[i][j]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"□";
}
else{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"■";
}
}
cout<<"\n";
}
}
bool mp_error[6][60];
void print_error(int x,int y){
while(1){
bool all_error=true;
for(int i=0;i<6;i++){
for(int j=45;j<=55;j++){
int er=rand()%3;
if(er==1){
mp_error[i][j]=true;
}
if(mp_error[i][j]==true){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//青色
cout<<"※";
}
else{
all_error=false;
if(j>50){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"■";
}
else if(mp[i][j]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
cout<<"×";
}
else if(i==x&&j==y){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"△";
}
else if(mp[i][j]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"□";
}
else{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"■";
}
}
}
cout<<"\n";
}
if(all_error)break;
cls();
Sleep(400);
}
Sleep(2000);
clean;
}
void End(int x,int y){
print_end(x,y);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//原色
out("*你看到了你的房间.");
Sleep(2000);
clean;
print_end(x,y);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//原色
out("*似乎你的旅途来到了终点.");
Sleep(2000);
clean;
print_end(x,y);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//原色
out("*但是......");
Sleep(2000);
clean;
print_error(x,y);
Sleep(1000);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//原色
Bye(" 逃离系列游戏");
Sleep(1000);
cout<<"\n\n\n";
Bye(" 终");
getz();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);//白色
Bye(" 创 意\n\n\n\n WJR");
Sleep(1500);
clean;
Bye(" 程 序\n\n\n\n WJR");
Sleep(1500);
clean;
Bye(" 美 工\n\n\n\n WJR");
Sleep(1500);
clean;
Bye(" 特别鸣谢\n\n\n 吴庞茂旭\n\n 吕若朴\n\n 飞速小程序开发商\n\n 逃离系列游戏开发商");
Sleep(3000);
clean;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//原色
Bye("\n\n\n\n 再见!");
Sleep(1000);
getz();
return ;
}
int choseagain(){
int chosea=1,tf=1;
while(1){
if(get(0x5A))break;
bool f=0;
if(tf==1){
tf=0;
f=1;
}
if(get(0x41)){
if(chosea==2){
chosea=1;
f=1;
}
}
if(get(0x44)){
if(chosea==1){
chosea=2;
f=1;
}
}
if(f==1&&chosea==1){
clean;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<" yes ";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<" no";
}
if(f==1&&chosea==2){
clean;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<" yes ";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<" no";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
sl(10);
}
return chosea;
}
void Main(){
clean;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);//**
out(" 3");
sl(1000);
clean;
out(" 2");
sl(1000);
clean;
out(" 1");
sl(1000);
clean;
out(" 开始!");
sl(500);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
int player_x=3,player_y=1;
clean;
bool lose=false;
int tmp=0;
int g1=0,g2=0,g3=0,g4=0;
int cheat=0;
// cheat=1;
print(player_x,player_y);
while(player_y!=50){
/*
VK_LEFT 左箭头键 0x25
VK_UP 上箭头键 0x26
VK_RIGHT 右箭头键 0x27
VK_DOWN 下箭头键 0x28
*/
if(mp[player_x][player_y]==3&&cheat==0){
lose=true;
break;
}
if(tmp==1){
if(mp[player_x][player_y-1]!=1&&g1>=3){
player_y--;
g1=0;
print(player_x,player_y);
}
g1++;
}
if(tmp==2){
if(mp[player_x-1][player_y]!=1&&g2>=3){
player_x--;
g2=0;
print(player_x,player_y);
}
g2++;
}
if(tmp==3){
if(mp[player_x][player_y+1]!=1&&g3>=3){
player_y++;
g3=0;
print(player_x,player_y);
}
g3++;
}
if(tmp==4){
if(mp[player_x+1][player_y]!=1&&g4>=3){
player_x++;
g4=0;
print(player_x,player_y);
}
g4++;
}
if(get(0x25)){//左
tmp=1;
g1=0;
}
if(get(0x26)){//上
tmp=2;
g2=0;
}
if(get(0x27)){//右
tmp=3;
g3=0;
}
if(get(0x28)){//下
tmp=4;
g4=0;
}
Sleep(100);
}
if(lose){
clean;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//原色
out("你被虚空侵蚀了......");
sl(1000);
clean;
out("要再来一次吗?");
Sleep(500);
if(choseagain()==1){
Main();
}
else{
clean;
ShowWindow(hwnd,0);
return ;
}
}
else{
clean;
End(player_x,player_y);
ShowWindow(hwnd,0);
}
return ;
}
int main(){
srand(time(0));
SetConsoleTitle("逃离系列2:begining?ending?");
system("color 0A");
HideCursor();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
goin();
shiyong();
sl(500);
mainchose();
Main();
return 0;
}
招募测试人员!!!测试并给出符合实际的改进建议,给50豆的奖励
直接在此贴下方说就行了~~~
------------------------------------------------------------------------
小透露:**大全3.00预计这周完工~~~(也可能这学期都不行,,,哈哈哈)
包涵宇在2023-05-18 17:58:26追加了内容
有BGM版本下载地址:
逃离系列2:beginning?ending? (访问密码: 7870)
包涵宇在2023-05-18 19:27:46追加了内容
顶
包涵宇在2023-05-19 19:26:47追加了内容
对不起,估计这学期垃 圾大全3.00都不行了、、、
0
已采纳
我以前改造过这个,挺好玩的👍
/*
由于文件较大,编译和运行时间可能较长,请耐心等待!
■
□
其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:
0=黑色
1=蓝色
2=绿色
3=湖蓝色
4=红色
5=紫色
6=**
7=白色
8=灰色
9=淡蓝色
A=淡绿色
B=淡浅绿色
C=淡红色
D=淡紫色
E=淡**
F=亮白色
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
0=黑色,1=蓝色,2=绿色,3=湖蓝色,4=红色,5=紫色;
6=**,7=白色,8=灰色,9=淡蓝色,A=淡绿色,B=浅绿色;
C=淡红色,D=淡紫色,E=淡**,F=亮白色。
VK_LBUTTON 鼠标左键 0x01
VK_RBUTTON 鼠标右键 0x02
VK_CANCEL Ctrl + Break 0x03
VK_MBUTTON 鼠标中键 0x04
VK_BACK Backspace 键 0x08
VK_TAB Tab 键 0x09
VK_RETURN 回车键 0x0D
VK_SHIFT Shift 键 0x10
VK_CONTROL Ctrl 键 0x11
VK_MENU Alt 键 0x12
VK_PAUSE Pause 键 0x13
VK_CAPITAL Caps Lock 键 0x14
VK_ESCAPE Esc 键 0x1B
VK_SPACE 空格键 0x20
VK_PRIOR Page Up 键 0x21
VK_NEXT Page Down 键 0x22
VK_END End 键 0x23
VK_HOME Home 键 0x24
VK_LEFT 左箭头键 0x25
VK_UP 上箭头键 0x26
VK_RIGHT 右箭头键 0x27
VK_DOWN 下箭头键 0x28
VK_SNAPSHOT Print Screen 键 0x2C
VK_Insert Insert 键 0x2D
VK_Delete Delete 键 0x2E
'0' – '9' 数字 0 - 9 0x30 - 0x39
65 – 'Z' 字母 A - Z 0x1 - 0x1
VK_LWIN 左WinKey(104键盘才有) 0x5B
VK_RWIN 右WinKey(104键盘才有) 0x5C
VK_APPS AppsKey(104键盘才有) 0x5D
VK_NUMPAD0 小键盘 0 键 0x60
VK_NUMPAD1 小键盘 1 键 0x61
VK_NUMPAD2 小键盘 2 键 0x62
VK_NUMPAD3 小键盘 3 键 0x63
VK_NUMPAD4 小键盘 4 键 0x64
VK_NUMPAD5 小键盘 5 键 0x65
VK_NUMPAD6 小键盘 6 键 0x66
VK_NUMPAD7 小键盘 7 键 0x67
VK_NUMPAD8 小键盘 8 键 0x68
VK_NUMPAD9 小键盘 9 键 0x69
VK_F1 - VK_F24 功能键F1 – F24 0x70 - 0x87
VK_NUMLOCK Num Lock 键 0x90
VK_SCROLL Scroll Lock 键 0x91
#include <iostream>
#include "windows.h"
using namespace std;
int main()
{
cout << "原色testCOLOR(没有设置字体颜色)" << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_GREEN | FOREGROUND_BLUE);//设置三色相加
cout << "白色testCOLOR(红色绿色蓝色相加)" << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
//设置红色
cout << "红色testCOLOR(设置的颜色为红色)" << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN)
;//设置绿色
cout << "绿色testCOLOR(设置的颜色为绿色)" << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
//设置蓝色
cout << "蓝色testCOLOR(设置的颜色为蓝色)" << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_GREEN);//设置红色和绿色相加
cout << "**testCOLOR(红色和绿色相加色)" << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_BLUE);//设置红色和蓝色相加
cout << "粉色testCOLOR(红色和蓝色相加色)" << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |
FOREGROUND_BLUE);//设置绿色和蓝色相加
cout << "青色testCOLOR(绿色和蓝色相加色)" << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
//设置颜色,没有添加颜色,故为原色
cout << endl;
system("pause");
return 0;
}
*/
#include<bits/stdc++.h>
#include<time.h>
#include<windows.h>
#include<conio.h>
#include<cstdio>
#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize(2)
#define get(VK_NONAME) (GetAsyncKeyState(VK_NONAME))
#define clean (system("cls"))
#define sl(x) (Sleep(x))
//格式1:上次游玩得分 最高得分
//格式2: 上次日期(年月日) 上次游玩累计时间(分钟) {以后建}
//地图 :7*100 0:空 1,正常方块
//△:你
//×:危险方块
using namespace std;
void color(int corcorcor){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),corcorcor);
/* 1 深蓝色
2 深绿色
3 深青色
4 深红色
5 深粉色
i **
7 深白色
8 灰色
9 浅蓝色
10 浅绿色
11 浅青色
12 浅红色
13 浅粉色
14 浅**
15 浅白色
背景
1~15 黑色
16~31 深蓝色
32~47 深绿色
48~63 深青色
64~79 深红色
'S'~95 深粉色
96~111 深**
112~127 深白色
128~143 灰色
144~159 浅蓝色
160~165 浅绿色
176~191 浅青色
192~207 浅红色
208~223 浅粉色
224~239 浅**
240~255 浅白色
*/
}
int kais,zg,chose;
HWND hwnd=GetForegroundWindow();
int zgt;
int x,y,er=-5,jl,erc,jlc;
int df;
int getcc=0;
int dt[7][190]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0},
{0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,5,6,7,8},
{0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0},
{1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,1,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
};
void rechange(){//正在编写中。。。
time_t timep;
time(&timep);
char tmp[64];
strftime(tmp, sizeof(tmp), "%Y-%m-%d",localtime(&timep) );
}
void cls(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coordScreen = { 0, 0 };
SetConsoleCursorPosition( hConsole, coordScreen );
}
void HideCursor(){
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO CursorInfo;
GetConsoleCursorInfo(handle, &CursorInfo);
CursorInfo.bVisible = false;
SetConsoleCursorInfo(handle, &CursorInfo);
}
void out(string s){
for(int i=0;i<s.size();i++){
cout<<s[i];
Sleep(25);
}
cout<<"\n";
}
void quicklyout(string s){
for(int i=0;i<s.size();i++){
cout<<s[i];
Sleep(20);
}
cout<<"\n";
}
void getz(){
while(1){
if(get(0x1)){
clean;
break;
}
if(get(0x43)){
clean;
getcc=1;
break;
}
}
}
void goin(){
system("mode con cols=50 lines=10");
mciSendString("play music/mus_date_tense.mp3 repeat", 0, 0, 0);
out("一觉醒来,你竟发现\n你来到了二维世界!\n\n按Z继续\n按C跳过");
getz();
if(getcc==1)return ;
out("你正准备好好看看二维世界时,\n三维空间忽然坍塌向二维空间坍塌了!\n于是......\n你开始了逃亡......\n\n按Z继续\n");
getz();
}
int change(string s){
int f=1,idx=0;
for(int i=s.size()-1;i>=0;i--){
idx+=(s[i]-'0')*f;
f*=10;
}
return idx;
}
void getkz(){//摘自luckyone906的博客
ifstream fin("txt/1.txt");
fin>>y>>x>>er>>zg;
fin.close();
if(y==0&&x==0&&er==0&&zg==0){
er=-5;
x=4;
y=0;
}
}
int qh=144;
void prin(){
cls();
cout<<" ————游戏得分"<<left << setw(6) << zgt<<"————\n";
for(int i=0;i<=6;i++){
for(int j=y-5;j<=-1;j++){
if(j<=er){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
cout<<" ╳ ";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
else{
color(2);
//SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"██";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
}
for(int j=max(0,y-5);j<=min(190,y+5);j++){
if(dt[i-1][j]==1){
if(dt[i][j]==1){
color(2);
//SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"██";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
else{
color(6);
//SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"██";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
}else if(j<=er){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
cout<<" ╳ ";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
else if(x==i&&y==j){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"你";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
else if(dt[i][j]==0){
color(9);
cout<<"██";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
else if(dt[i][j]==5){
cout<<"尽";
}else if(dt[i][j]==6){
cout<<"情";
} else if(dt[i][j]==7){
cout<<"期";
} else if(dt[i][j]==8){
cout<<"待";
}
else{
color(2);
//SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"██";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
}
cout<<"\n";
}
}//
void shiyong(){
if(getcc==1){
mciSendString("stop music/mus_date_tense.mp3", 0, 0, 0);
return ;
}
out("操作须知:\n按ad键左右选择,按Z确认选择。\n按X结束游戏。\n按w/s/a/d移动");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"△";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
out(":你 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
cout<<"×";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
out(":危险方块 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"██";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
out("普通方块\n按Z继续");
/*
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<"■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"△";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
cout<<"×";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
*/
getz();
mciSendString("stop music/mus_date_tense.mp3", 0, 0, 0);
}
int suum=0;
void mainchose(){
mciSendString("play music/mus_menu1.mp3 repeat", 0, 0, 0);
zg=max(zg,zgt);
chose=1;
int tf=1;
while(1){
bool f=0;
if(get(90)) break;
if(tf==1){
tf=0;
f=1;
}
if(get(65)){
if(chose==2){
chose=1;
f=1;
}
}
if(get(68)){
if(chose==1){
chose=2;
f=1;
}
}
if(f==1&&chose==1){
clean;
cout<<"---------------------------------\n"
<<"| 最高分:"<< left << setw(6) << zg<<" |\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"------------------";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"---------------\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"| 继续上次游戏 |";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<" 新 游 戏 |\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"------------------";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"---------------\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<" 逃离";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"贡献榜:\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);
cout<<" 吴庞茂旭 吕若朴";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
if(f==1&&chose==2){
clean;
cout<<"---------------------------------\n"
<<"| 最高分:"<< left << setw(6) << zg<<" |\n";
cout<<"-----------------";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"----------------\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"| 继续上次游戏 ";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"| 新 游 戏 |\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"-----------------";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<"----------------\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
cout<<" 逃离";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<"贡献榜:\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);
cout<<" 吴庞茂旭 吕若朴";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
sl(10);
}
mciSendString("stop music/mus_menu1.mp3", 0, 0, 0);
}
int choseagain(){
int chosea=1,tf=1;
while(1){
if(get(90))break;
bool f=0;
if(tf==1){
tf=0;
f=1;
}
if(get(65)){
if(chosea==2){
chosea=1;
f=1;
}
}
if(get(68)){
if(chosea==1){
chosea=2;
f=1;
}
}
if(f==1&&chosea==1){
clean;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<" yes ";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<" no";
}
if(f==1&&chosea==2){
clean;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
cout<<" yes ";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
cout<<" no";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
}
sl(10);
}
return chosea;
}
void goout(int x){
if(x==1){//摘自 浅浅的 的微博
ofstream fout("txt/1.txt");
fout<<0<<" "<<4<<" "<<-5<<" "<<max(zg,zgt);
/*fout << flush;*/
fout.close();
}
else{
freopen("txt/1.txt","w",stdout);
cout<<y<<" "<<x<<" "<<er<<" "<<max(zg,zgt);
fclose(stdout);
}
}
void Main1(){
/*cout<<"---------------------------------\n"
<<"| 最高分:"<< left << setw(6) << zg<<" |\n"
<<"---------------------------------\n"
<<"| 继续上次游戏 | 新 游 戏 |\n"
<<"---------------------------------\n";*/
getkz();
sl(1000);
erc=0;
jlc=0;
mainchose();
if(chose==2){
er=-5;
x=4;
y=0;
}
clean;
cout<<"请选择模式:\n| 1.无限模式 | 2.100格 |\n请输入数字:";
int queding;
int qd;
Sleep(2000);
cin>>qd;
if(qd==1){
queding=0;
}else{
queding=1;
}
clean;
zgt=0;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
out("---———3");
sl(1000);
clean;
out("--———2");
sl(1000);
clean;
out("-———1");
sl(1000);
clean;
out(" 开始!");
sl(500);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
mciSendString("stop music/mus_menu1.mp3", 0, 0, 0);
mciSendString("play music/mus_ruins.mp3 repeat", 0, 0, 0);
int yf;
int tget=0;
prin();
while(1){
char cmmd=kbhit();
if(tget==3)tget=0;
zgt=max(zgt,y);
df=y;
if(get('X')){
yf=2;
break;
}
if(y<=er){
yf=0;
break;
}
erc++;
if(dt[x+1][y]==0)jlc++;
if(erc==10){
er++;
erc=1;
prin();
}
if(y>=100&&x==4&&queding==1){
prin();
yf=1;
break;
}
if(x==6){
x++;
sl(100);
prin();
sl(100);
clean;
yf=-1;
break;
}
if(dt[x+1][y]==0&&jlc==6){
x++;
jlc=0;
prin();
}
if(get(65)&&dt[x][y-1]==0&&tget==2){
y--;
prin();
}
if(dt[x+1][y]==1&&get(87)&&tget==2){
int jian;
for(jian=1;jian<=6-x;jian++){
if(dt[x-jian][y]==1){
jian--;
break;
}
}
x-=jian;
x=max(x,0);
prin();
}
if(get(68)&&dt[x][y+1]==0&&tget==2){
y++;
prin();
}
sl(40);
tget++;
/*VK_LEFT 左箭头键 0x25
VK_UP 上箭头键 0x26
VK_RIGHT 右箭头键 0x27
VK_DOWN 下箭头键 0x28*/
}
mciSendString("stop music/mus_ruins.mp3", 0, 0, 0);
if(yf==-1){
out("你掉入了虚空......");
sl(1000);
goout(1);
clean;
out("要再来一次吗?");
if(choseagain()==1){
sl(500);
Main1();
}
else{
clean;
//cout<<"再会!";
//sl(500);
ShowWindow(hwnd,0);
return ;
}
}
else if(yf==0){
clean;
out("你被三维化了......") ;
goout(1);
sl(1000);
clean;
out("要再来一次吗?");
if(choseagain()==1){
sl(500);
Main1();
}
else{
clean;
// cout<<"再会!";
// sl(500);
ShowWindow(hwnd,0);
return ;
}
}
else if(yf==1&&queding==1){
sl(1000);
clean;
out("不知怎么了,你就来到了宇宙的边缘\n忽然,你看到了一条裂缝......\n\n (未完待续)");
goout(1);
int mb=MessageBox(NULL,"还要再次游戏吗?","XY游戏管家",MB_YESNO || MB_ICONINFORMATION);
if(mb==7){
sl(2000);
ShowWindow(hwnd,0);
}else{
system("cls");
SetConsoleTitle("逃离系列1:新的希望");
system("color 0A");
HideCursor();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
goin();
shiyong();
sl(500);
Main1();
}
}
else{
goout(2);
ShowWindow(hwnd,0);
}
}
int main(){
SetConsoleTitle("逃离系列1:新的希望");
system("color 0A");
HideCursor();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
goin();
shiyong();
sl(500);
Main1();
return 0;
}
0
0
0
0
0