Как push_back () номер, чтобы у них была пара в векторе? - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь создать сетку / матрицу, которая имеет четное количество пар (например, в парах, например, у 1 будет другая пара или еще 3 единицы, чтобы составить 2 пары).В настоящее время у меня мало без пар.Как я могу решить?Спасибо.

Я выполнил кодирование для пуша, но мне пока не удалось сгенерировать равное количество пар.

 void initialize_grid() {

int rows = 6;
int columns = 6;
int numbers;
srand((unsigned int) time(0));
for (int i = 0; i < rows; ++i)
{
    vector<int> row1; // game grid
    vector<int> row2; // hidden grid
    vector<int> row3; // guessed grid
    for (int j = 0; j < columns; ++j)
    {
        numbers = (rand() % 9) + 1;
        row1.push_back(numbers);
        row2.push_back(-1);
        row3.push_back(0);
    }
    game_grid.push_back(row1);
    hidden_grid.push_back(row2);
    guessed_grid.push_back(row3);       
}
cout << "Get ready, Challenger!" << endl << endl;
}

 /*Expected result (just an example) is something like this 
 2 6 3 1 0 4
 4 2 7 7 2 8
 4 7 3 2 5 1
 7 6 5 1 1 0
 8 4 6 0 0 6
 1 3 1 8 3 8*/

1 Ответ

0 голосов
/ 10 февраля 2019

Я не уверен, как выглядит остальная часть кода, поэтому я не уверен, какова ваша цель точно со скрытыми и угаданными сетками.Но если вы хотите использовать псевдослучайную сетку ниже. Приготовьтесь, претендент, это работает:

#include <time.h>
#include <vector>
#include <random>
#include <unistd.h>
#include <iostream>
using namespace std;
int main() {
int rows = 6;
int columns = 6;
int numbers;
    vector<vector<int>> game_grid, hidden_grid, guessed_grid;

srand((unsigned int) time(0));
for (int i = 0; i < rows; ++i)
{   
    vector<int> row1; // game grid
    vector<int> row2; // hidden grid
    vector<int> row3; // guessed grid
    for (int j = 0; j < columns; ++j)
    {   
        numbers = (rand() % 9) + 1;
        row1.push_back(numbers);
        row2.push_back(-1);
        row3.push_back(0);
    }
    game_grid.push_back(row1);
    hidden_grid.push_back(row2);
    guessed_grid.push_back(row3);       
}
std::cout << "Get ready, Challenger!" << std::endl << std::endl;
for(int a = 0; a < columns; ++a) {
  for(int b = 0; b < columns; ++b) {
  std::cout << game_grid[a][b] << " ";                                                                                                
  }
std::cout << std::endl;
}
}

Я поместил первые векторы в вектор game_grid, а затем вызвал его внутри двойного цикла для подсчета, чтобы сделать сетку 6x6 иназывается game_grid изнутри.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...