Моя функция C++ всегда возвращает значение true. Всегда. Даже если я изменил возвращаемое значение на «false», он все равно вернет true. Я бы смеялся, но я пропустил это на сцену, где это просто не имеет смысла для меня ВСЕ.C++ - Функция всегда возвращает true
(В случае, если кто заинтересован, код для Conway's Game Of Life)
#include <iostream>
#include <SFML/Graphics.hpp>
bool getCellStates(bool cells[16][16], int i, int j)
{
int alive = 0;
bool isAlive;
if(cells[i][j-1] && j-1 >= 0)
alive++;
if(cells[i+1][j-1] && i+1 <= 15 && j-1 >= 0)
alive++;
if(cells[i+1][j] && i+1 <= 15)
alive++;
if(cells[i+1][j+1] && i+1 <=15 && j+1 <= 15)
alive++;
if(cells[i][j+1] && j+1 <= 15)
alive++;
if(cells[i-1][j+1] && i-1 >= 0 && j+1 <=15)
alive++;
if(cells[i-1][j] && i-1 >= 0)
alive++;
if(cells[i-1][j-1]&& i-1 >=0 && j-1 >= 0)
alive++;
if(alive == 3)
isAlive = true;
else if(cells[i][j] && alive == 2)
isAlive = true;
else
isAlive = false;
return isAlive; // Also returns true if I change to 'return false;'
}
int main()
{
sf::RenderWindow window(sf::VideoMode(640, 480), "Game Of Life");
bool cells[16][16];
int i, j = 0;
for(i = 0; i < 16; i++)
{
for(j = 0; j < 16; j++)
{
cells[i][j] = false;
std::cout << i << ", " << j << ": " << cells[i][j] << std::endl;
}
}
for(i = 0; i < 16; i ++)
{
for(j = 0; j < 16; j++)
{
cells[i][j] = getCellStates[cells, i, j];
std::cout << i << ", " << j << ": " << cells[i][j] << std::endl;
}
}
while(window.isOpen())
{
sf::Event event;
while(window.pollEvent(event))
{
if(event.type == sf::Event::Closed)
window.close();
}
}
return 0;
}
делает ли это даже скомпилировать? 'cells [i] [j] = getCellStates [cells, i, j];' –
Если вы попытались использовать отладчик в первую очередь, вам не пришлось бы публиковать этот вопрос (так как вы увидите, что ваша функция никогда не звонят ... хотя вам, возможно, пришлось опубликовать другой вопрос, чтобы спросить, почему это было). Пожалуйста, не используйте stackoverflow как свою линию защиты _first_. – mah
Мои извинения, это просто мой отладчик, изворотливый ... Я все еще учась его использовать. Также не покровительствуйте мне - я знаю, что не просто задаю вопрос, прежде чем исследовать его в первую очередь. Я ненавижу, когда высокомерные люди предполагают, что все остальные глупы. Кроме того, да, он компилируется. – otah007