问题标题: 超级玛丽 v0.0.1

0
2
已解决
被禁言 高乐彤
高乐彤
修练者
修练者
#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;
}

 


0
已采纳
吕梓瑜
吕梓瑜
初级天翼
初级天翼

nb!!!!!!!!

0
0
0
0
0
我要回答