美好的一天。我的代码中发生了一件相当奇怪的事情。我想创建一个随机数输入我的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();
}
请帮忙。
感谢。
答案 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])