给一个数组一个随机数

时间:2013-06-01 13:42:14

标签: c++

美好的一天。我的代码中发生了一件相当奇怪的事情。我想创建一个随机数输入我的quest_postition数组,以便在我的网格数组中使用它。我希望每次运行程序时位置都不同。

它目前所做的是进入一个无限循环并一直向下显示网格。

这是我的代码:

#include <iostream>
#include <cstdlib>
#include <stdlib.h>
#include <time.h>


using namespace std;

void draw_grid()
{

char grid[9][9] = { {'x','x','x','x','x','x','x','x','x'},
                    {'x','x','x','x','x','x','x','x','x'},
                    {'x','x','x','x','x','x','x','x','x'},
                    {'x','x','x','x','x','x','x','x','x'},
                    {'x','x','x','x','x','x','x','x','x'},
                    {'x','x','x','x','x','x','x','x','x'},
                    {'x','x','x','x','x','x','x','x','x'},
                    {'x','x','x','x','x','x','x','x','x'},
                    {'x','x','x','x','x','x','x','x','x'}};
char character = '*';
char quest = 'Q';

int position[2] = {4,4};
int quest_position[2];

srand(time(NULL));

quest_position[0] = rand() % 9 + 0;
quest_position[1] = rand() % 9 + 0;

char direction;

for(int i = 0; i < 9; i++){
    for (int j = 0; j < 9; j++){
        if(i == position[0] && j == position[1])
            cout << character;
        if(i = quest_position[0] && j == quest_position[1])
            cout << quest;
        else
            cout << grid[i][j];
        cout << " ";
    }
    cout << endl;
   }
}

int main()
{
    draw_grid();
}

请帮忙。

感谢。

3 个答案:

答案 0 :(得分:1)

 if(i = quest_position[0] && j == quest_position[1])
        cout << quest;

应该是:

 if(i == quest_position[0] && j == quest_position[1])
     //^^^Error here should be logical equal
        cout << quest;

您可以在此处找到现场演示:Code Demo

同时,您应该使用标题:

#include <ctime>

并删除

#include <stdlib.h>

因为您已经包含<cstdlib>

答案 1 :(得分:1)

你错过了==在行

if(i == quest_position[0] && j == quest_position[1])

答案 2 :(得分:1)

试试这个:

if(i = quest_position[1] && j == quest_position[1])