void GameController::readData(std::istream& input)
{
    BlockPairQueue nextBlocks;
    GridType myNewGrid;
    GridType opponentNewGrid;
    for (int i = 0; i < QUEUE_LENGTH; i++)
    {
        int colorA;
        int colorB;
        input >> colorA >> colorB; input.ignore();
        nextBlocks.push_back(std::make_pair(Block(colorA), Block(colorB)));
    }
    for (int i = 0; i < GRID_HEIGHT; i++)
    {
        std::string row;
        input >> row; input.ignore();
        myNewGrid.push_back(row);
    }
    for (int i = 0; i < GRID_HEIGHT; i++)
    {
        std::string row;
        input >> row; input.ignore();
        opponentNewGrid.push_back(row);
    }
    nextBlocks_ = nextBlocks;
    currentGrid_.reset(myNewGrid);
    opponentGrid_.reset(opponentNewGrid);
}