YCL708118 2023-05-26 23:20 采纳率: 100%
浏览 12
已结题

关于#c++#的问题,请各位专家解答!

@一块铌金属

#include <bits/stdc++.h>
#include <conio.h>
#include <windows.h>
 
using namespace std;
 
int x, y;
char mp[45][45];
int diffculeClass, flourColor, wallColor, peopleColor;
bool nonEuclid;
int canSeeCircle = 5;
string level = "0";
 
void color(int m) {
    HANDLE consolehend;
    consolehend = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(consolehend, m);
}
 
void Clear_Screen() {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD coordScreen = {0, 0};
    SetConsoleCursorPosition(hConsole, coordScreen);
}
 
void print(char c) {
    switch (c) {
        case '0':
            color(flourColor);
            printf("  ");
            break;
        case '1':
            color(wallColor);
            printf("■");
            break;
        case '2':
            color(peopleColor); 
            printf("♀");
            break;
    }
}
 
void newMap() {
    freopen("D:/programming/dev-c++/游戏/Backrooms/Level.txt", "r", stdin);
    while (1) {
        string lev;
        cin >> lev;
        if (lev == level) {
            scanf("%d%d%d%d", &diffculeClass, &flourColor, &wallColor, &peopleColor);
            cin >> nonEuclid;
            for (int i = 0; i < 42; i++) {
                cin >> mp[i];
            }
            break;
        } else {
            scanf("%d%d%d%d", &diffculeClass, &flourColor, &wallColor, &peopleColor);
            cin >> nonEuclid;
            char temp[45];
            for (int i = 0; i < 42; i++) {
                cin >> temp;
            }
        }
    }
}
 
void newXY() {
    mp[x][y] = '0';
    x = rand() % 43;
    y = rand() % 43;
    while (mp[x][y] == '1' or !(x >= 0 && x < 42 && y >= 0 && y < 42)) {
        x = rand() % 43;
        y = rand() % 43;
    }
}
 
void check(int adx, int ady) {
    if (mp[x + adx][y + ady] != '1') {
        mp[x][y] = '0';
        x = x + adx;
        y = y + ady;
        mp[x][y] = '2';
    }
} 
 
int main() {
    srand(time(0));
    SetConsoleTitle("Backrooms         制作:一块铌金属");
    system("mode con cols=90 lines=50");
    char c;
    newMap();
    newXY();
    mp[x][y] = '2';
    while (1) {
        c = _getch();
        if (c == 'w') {
            check(-1, 0);
        } else if (c == 's') {
            check(1, 0);
        } else if (c == 'a') {
            check(0, -1);
        } else if (c == 'd') {
            check(0, 1);
        } else if (c == 'q') {
            break;
        }
        for (int i = x - canSeeCircle; i < x + canSeeCircle + 1; i++) {
            for (int j = y - canSeeCircle; j < y + canSeeCircle + 1; j++) {
                if ((x - i) * (x - i) + (y - j) * (y - j) <= canSeeCircle * canSeeCircle && i >= 0 && i < 42 && j >= 0 && j < 42) {
                    print(mp[i][j]);
                } else {
                    color(0xF);
                    printf("  ");
                }
            }
            printf("\n");
        }
        if (nonEuclid) {
            int random = rand() % 101;
            if (random <= 1) {
                newXY();
            }
        } 
        Clear_Screen();
    }
    return 0;
}

为什么运行后是黑屏,没有图案

  • 写回答

3条回答 默认 最新

  • 一块铌金属 2023-05-27 00:53
    关注

    如果你是直接拷的代码是不行的,我发了个资源,里面有打包好的文件

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月4日
  • 已采纳回答 5月27日
  • 创建了问题 5月26日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀