0
已解决
被禁言


修练者
#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)
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
//0是空,1是墙,2是玩家,3是旗子
int map[10][11][20]={
{
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,2,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1},
{1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1},
{1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1},
{1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1},
{1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1},
{1,0,0,0,0,0,0,0,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,1,1,1,1},
{1,1,5,18}//位置
},{
{1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,1,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1},
{1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1},
{1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1},
{1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1},
{1,0,1,0,1,1,1,1,1,1,1,1,3,1,1,0,0,0,1,1},
{1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1},
{1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1},
{1,0,0,0,0,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,1,1,1,1,1,1,1},
{2,18,5,12}
},{
//敬请期待!
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,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,1,1},
{1,1,0,0}
}
};
void cls(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coordScreen = { 0, 0 }; // home for the cursor
SetConsoleCursorPosition( hConsole, coordScreen );
}bool move(int games,int &x,int &y){
int a=x,b=y;
if(KEY_DOWN('W')){
for(int f=1;f<=2;f++){
if(map[games][x-1][y]==1){
break;
}if(x-1<0){
cout<<"你掉入了虚空!!!\n";
exit(0);
}
map[games][x][y]=0;
map[games][x-1][y]=2;
x--;
cls();
for(int i=0;i<10;i++){
for(int j=0;j<20;j++){
if(map[games][i][j]==1)printf("墙");
else if(map[games][i][j]==2)printf("你");
else if(map[games][i][j]==3)printf("旗");
else printf(" ");
}
cout<<endl;
}
Sleep(50);
}
}if(KEY_DOWN('A')&&map[games][x][y-1]!=1){
if(y-1<0){
cout<<"你掉入了虚空!!!\n";
exit(0);
}
map[games][x][y]=0;
map[games][x][y-1]=2;
y--;
}if(KEY_DOWN('D')&&map[games][x][y+1]!=1){
if(y+1>19){
cout<<"你掉入了虚空!!!\n";
exit(0);
}
map[games][x][y]=0;
map[games][x][y+1]=2;
y++;
}
if(a==x&&b==y){
if(map[games][x+1][y]==0){
map[games][x][y]=0;
map[games][x+1][y]=2;
x++;
Sleep(250);
return true;
}
return false;
}else{
return true;
}
}void HideCursor(){
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO CursorInfo;
GetConsoleCursorInfo(handle, &CursorInfo);//获取控制台光标信息
CursorInfo.bVisible = false; //隐藏控制台光标
SetConsoleCursorInfo(handle, &CursorInfo);//设置控制台光标状态
}void game_start(){
HideCursor();
system("color 1A");
cout<<"欢迎来到超级玛丽!(v0.0.1)\n";
Sleep(1000);
system("cls");
for(int i=3;i>=1;i--){
cout<<i<<"秒后开始";
Sleep(1000);
cls();
}
system("cls");
for(int cnt=1;cnt<=20;cnt++){
for(int i=1;i<=cnt;i++){
cout<<"▇";
}
cout<<endl<<"正在加载中…%"<<cnt*5;
cls();
Sleep(100);
}
system("cls");
cout<<"加载成功!";
Sleep(500);
system("cls");
}
int main(){
SetConsoleTitle("超级玛丽 v0.0.1 简体中文版"); // 设置窗口的标题
game_start();
system("cls");
for(int games=0;;games++){
for(int i=0;i<10;i++){
for(int j=0;j<20;j++){
if(map[games][i][j]==1)printf("墙");
else if(map[games][i][j]==2)printf("你");
else if(map[games][i][j]==3)printf("旗");
else printf(" ");
}
cout<<endl;
}
while(!(map[games][10][0]==map[games][10][2]&&map[games][10][1]==map[games][10][3])){
if(move(games,map[games][10][0],map[games][10][1])==true){
cls();
for(int i=0;i<10;i++){
for(int j=0;j<20;j++){
if(map[games][i][j]==1)printf("墙");
else if(map[games][i][j]==2)printf("你");
else if(map[games][i][j]==3)printf("旗");
else printf(" ");
}
cout<<endl;
}
}
Sleep(100);
}
system("cls");
}
return 0;
}