首页 > 解决方案 > 如何在网格中放置随机字符

问题描述

我正在执行一项任务,但我被卡住了。这是我到目前为止所做的代码

{
int s = 5;
char player = 'p';
char choice = 0;
int pr = 1,pc = 1;
int dr=2, dc=2;//diamond in row //dimond in column
int br = 3, bc = 3;
int score = 0;
int k = 1;
char d = 'D';
char b = 'B';


while (score != 25){

for (int i = 1; i <= s; i = i + 1){
    k = i;

        for (int j = 1; j <= s; j = j + 1){




            if (i == pr&&j == pc){


                cout << " " << player;
            }
            else if(i==dr&&j==dc){

                cout << " " << d;
            }
            else if (i == br&&j == bc){
                cout << " " << b;
            }
            else if (i == dr + 2 && j==dc + 2){
                cout << " " << d;
            }
            else if (i == br+2&&j == bc-1){
                cout << " " << b;
            }
            else{
                cout << " *";
            }






        }

        cout << endl;



    }


cout << "Enter your choice= ";
cin >> choice;
if (choice == 'd'||choice=='D'){
    pr = pr + 1;

}
if (choice == 'r' || choice == 'R'){
    pc = pc + 1;
}
if (choice == 'l' || choice == 'L'){
    pc = pc - 1;
}
if (choice == 'u' || choice == 'U'){
    pr = pr - 1;
}

}

}

现在,如果玩家位置继续 d(diamond),那么它应该加 1 得分并为菱形生成新的随机位置。该位置也不应该与旧位置重叠。我想我必须使用srand功能,但我将如何使用它?谁能指导我谢谢。

标签: c++

解决方案


我实际上并不了解您想要做什么,但无论如何这是 srand function 的文档,并附有示例。

简而言之,您必须使用种子初始化伪随机数生成器(建议与time(NULL)函数一起使用,因为返回独特的运行时值),然后只需获取您的伪随机数,rand() % x其中x是范围的上边界你想在其中得到你的号码。

如果您提供更多信息,我很乐意为您提供帮助。

享受!

编辑:

char array[5][5];
srand(time(NULL));
for(int x = 0; x < 2; x++) {
    array[rand() % 5][rand() % 5] = 'B';
}

正如您所要求的,这将在 5x5 矩阵中生成两个随机“B”。

编辑2:

在两个嵌套的 for 循环之前添加:

if (pc == dc && pr == dr) {
    score++;
    int newDc = rand() % 5;
    int newDr = rand() % 5;
    // keep generating random numbers until you find one that is different
    // from the previous one.
    while (newDc == dc) newDc = rand % 5;
    while (newDr == dr) newDr = rand % 5;
    // when you find it, change it
    dc = newDc;
    dr = newDr;
}

它解决了你的问题吗?


推荐阅读