Diskuze: C se chová divně, kde je chyba?
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Z nějakého důvodu to způsobuje to uspání vlákna ale upřímně netuším proč...
Oprava chyba je někde v této části
for (hw = 0; hw < h; hw++){
for (ww = 0; ww < w; ww++){
life[ww][hw] = lifen[ww][hw];
}
}
Ne, dal jsem to pryč a akorát to začalo spamovat ty příšernosti 100x
rychlejc
edit: ne, tím to taky není.
Ne promiň už jsem na to přišel celou dobu jsem byl vedle
if (life[ww][hw] = alive)
{
if (s < 2 || s>3)
lifen[ww][hw] = dead;
else
lifen[ww][hw] = alive;
}
else
{
if (s == 3)
lifen[ww][hw] = alive;
else
lifen[ww][hw] = dead;
}
tady si v předchozí verzi nenastavoval žádný stav pokud to nesplňovalo tu podmínku
if (s < 2 || s>3)
if (s == 3)
a proto pokud nebyla splněna nebyla nastavená žádná hodnota respektive tam zůstavala po průběhu
A pořád jsem naprostý vůl tentokrát naposledy
if (life[ww][hw] = alive)
tady ses upsal a já si toho nevšiml v podmínce tam přiřazuješ hodnotu takže to vlastně ani není podmínka, vlastně ani nevim kdy je splněna... Ale tam je ten problém a to co jsem říkal posledně je taky chyba takže to si taky oprav
no teď to píše jiný kraviny, ale pořád jsou to kraviny
Mě to takhle už běží správně, zkus si upravit tuhle část kódu možná si na něco zapomněl nebo já jsem provedl změnu o které jsem se zapomněl zmínit
for (hw = 0; hw < h; hw++){
printf("\n"); //debug
for (ww = 0; ww < w; ww++){
s = 0;
if (ww < w - 1){
if (life[ww + 1][hw] == alive){
s = s + 1;
}
}
if (ww > 0){
if (life[ww - 1][hw] == alive){
s = s + 1;
}
}
if (hw < h - 1){
if (life[ww][hw + 1] == alive){
s = s + 1;
}
}
if (hw > 0){
if (life[ww][hw - 1] == alive){
s = s + 1;
}
}
printf("%i", s); //debug
if (life[ww][hw] == alive)
{
if (s < 2 || s>3)
lifen[ww][hw] = dead;
else
lifen[ww][hw] = alive;
}
else
{
if (s == 3)
lifen[ww][hw] = alive;
else
lifen[ww][hw] = dead;
}
}
}
A poslední dodatek zkoušel jsem to a v tomhle případě je podmínka splněna pokud přiřazujeme jinou hodnotu než 0, jen tak pro úplnost.
Zobrazeno 10 zpráv z 10.