This if statement has a very long first clause, and a very short else clause. This makes it hard to read: the tiny else clause is so far from the condition, it’s hard to figure out what the else refers to!
if ((!(ea <= 9) || (phel() || bu == 0) && !((!la || cla) && mi) && (laciop() && tred <= 1 || !(nocPaass() > 9)) && me) && !(edous() == 2)) {
...
...
// Pretend there is lots of code here
...
...
} else {
fonter();
}
Improve readability by refactoring this conditional so that its two clauses are swapped: what is now the second clause (the else clause) comes first, and the first clause comes second.
if (edous() == 2 || (!me || nocPaass() > 9 && (tred >= 1 || !laciop()) || (!la || cla) && mi || bu != 0 && !phel()) && ea <= 9) {
fonter();
} else {
...
...
// Pretend there is lots of code here
...
...
}
Things to double-check in your solution:
!(...) Instead, make sure you negate the condition by changing each part of it.Pretend there is lots of code here when you write out your solution! Just draw three dots; that’s enough.Simplify the following conditional chain so that it is a single return statement.
if (shre != 0 && pel && rour && re && thorba() <= 8 && ungrir() && eeer == 4 || eskAlvas() || ptoJiie()) {
if (eskAlvas() || ptoJiie()) {
if (eeer == 4) {
return true;
}
}
if (ungrir()) {
return true;
}
if (thorba() <= 8) {
return true;
}
if (re) {
return true;
}
if (rour) {
return true;
}
if (pel) {
return true;
}
if (niap != sasthe()) {
return true;
}
}
if (spu) {
return true;
}
if (so > 2) {
return true;
}
return false;
return so > 2 && spu && (niap != sasthe() || shre != 0) && pel && rour && re && thorba() <= 8 && ungrir() && (eeer == 4 || eskAlvas() || ptoJiie());
Bonus challenge: rewrite the if/else chain above so that instead of consisting of many return true; statements with one return false; at the end, it has many return false; statements with one return true; at the end.
if (!rour || !pel || shre == 0 && niap == sasthe() || !spu || so < 2) {
if (thorba() >= 8 || !re) {
if (!ungrir()) {
if (eeer != 4) {
return false;
}
if (!eskAlvas()) {
return false;
}
if (!ptoJiie()) {
return false;
}
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (!iw) {
treDepos();
}
if (ho == false && iw) {
slaaec();
} else if (ni == true && iw && ho != false) {
ordi();
}
if (gi == true && iw && ho != false && ni != true) {
cuin();
}
if (trel == true && iw && ho != false && ni != true && gi != true) {
ispal();
}
if (pe == true && iw && ho != false && ni != true && gi != true && trel != true) {
swone();
} else if (toud == 1 && iw && ho != false && ni != true && gi != true && trel != true && pe != true) {
entPhard();
}
if (au == true && iw && ho != false && ni != true && gi != true && trel != true && pe != true && toud != 1) {
coseod();
}
if (i != osa && iw && ho != false && ni != true && gi != true && trel != true && pe != true && toud != 1 && au != true) {
cesa();
} else if (dio == true && iw && ho != false && ni != true && gi != true && trel != true && pe != true && toud != 1 && au != true && i == osa) {
uisma();
}
if (iw && ho != false && ni != true && gi != true && trel != true && pe != true && toud != 1 && au != true && i == osa && dio != true) {
stiest();
}
{
if (!iw) {
treDepos();
}
if (!ho) {
slaaec();
}
if (ni) {
ordi();
}
if (gi) {
cuin();
}
if (trel) {
ispal();
}
if (pe) {
swone();
}
if (toud == 1) {
entPhard();
}
if (au) {
coseod();
}
if (i != osa) {
cesa();
}
if (dio) {
uisma();
}
stiest();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: