(听灌多)一个c++游戏开发的问题,玄关,求解
  • 板块灌水区
  • 楼主yae_miko
  • 当前回复7
  • 已保存回复8
  • 发布时间2024/7/15 23:36
  • 上次更新2024/7/16 09:59:49
查看原帖
(听灌多)一个c++游戏开发的问题,玄关,求解
546139
yae_miko楼主2024/7/15 23:36
#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#include<time.h>
#define random(x) rand()%(x)
using namespace std;
string room[5][5];
bool check[5][5]={false};
char b='NUT';
// 辅助函数用于随机分配房间类型
void roomtype(string type, int count){
    for(int i=1;i<=count;i++){
        int x=random(5);
        int y=random(5);
        if(check[x][y]==true){
            while(check[x][y]==true){
                x=random(5);
                y=random(5);
            }
        }
        room[x][y]=type;
        check[x][y]=true;
    }
}
//plain iland*6
//stone key *4
//magic iland *8
//gold key*1
//prop*4
//exit*1
//all 24
void randomroom(){
    check[3][3]=true;
    roomtype("plain", 6);
    roomtype("stone", 4);
    roomtype("magic", 8);
    roomtype("gold ", 1);
    roomtype("prop ", 4);
    roomtype("exit ", 1);
    room[3][3]="start";
}
int main() {
    srand(time(0));
    randomroom();
    for(int i=1;i<=5;i++){
        for(int j=1;j<=5;j++){
            cout<<room[i][j]<<"  ";
        }
        cout<<endl;
    }
    return 0;
}

设想,将25个房间除了起始点(3,3)其余的按照随机顺序生成。则最后输出应该为注释中的各房间数量的5×5的方阵

实际输出

输出一、 gold magic magic plain prop magic magic plain plain stone stone stone start prop stone magic magic prop plain

输出二、 stone stone magic magic magic gold exit prop stone plain plain magic start plain magic plain plain stone prop

输出三、 prop gold stone plain magic plain magic exit plain stone stone prop start magic magic stone magic magic plain

可见都比设想的结果少六个(一行零一列) 求调

2024/7/15 23:36
加载中...