If/else if
Résolu
Grafiteur
-
Grafiteur -
Grafiteur -
Bonjour,
je vous explique rapidement, je fais une map pour un jeu mais j'ai un petit probléme de génération de motif
en gros je veux ce motif comme ça :
V = vide
Alors qu'avec ce code :
Les deux boucle if sont bonnes, elles me font ce qui est attendu mais
je vu que si n%6 = 0 alors n%3 = 0
MAIS
normalement un simple else if devrait débloquer cette situation ? non ?
je tourne en rond depuis 1h, après promis je vais me coucher...
actuelle j'ai ça :
je vous explique rapidement, je fais une map pour un jeu mais j'ai un petit probléme de génération de motif
en gros je veux ce motif comme ça :
V = vide
VVVVVVVVVVVV...
VVVVVVVVVVVV...
VVVV##VVVV##...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
V##VVVV##VVV...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
VVVV##VVVV##...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
V##VVVV##VVV...
....
Alors qu'avec ce code :
for(int l = 1; l < board.length-1; l++) {
for(int c = 1; c < board[0].length-1; c++) {
if ( l%6==0 && (c%6==1 || c%6==2)) {
board[l][c] ='#';
}
else if ( l%3==0 && ((c+1)%6==0 || (c+1)%6==5)){
board[l][c] = '#';
}
}
}
Les deux boucle if sont bonnes, elles me font ce qui est attendu mais
je vu que si n%6 = 0 alors n%3 = 0
MAIS
normalement un simple else if devrait débloquer cette situation ? non ?
je tourne en rond depuis 1h, après promis je vais me coucher...
actuelle j'ai ça :
VVVVVVVVVVVV...
VVVVVVVVVVVV...
VVVV##VVVV##...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
V##V##V##V##...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
VVVV##VVVV##...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
V##V##V##V##...
....
A voir également:
- If/else if
- If exist - Forum Java
- The realtek network controller was not found. if deep sleep mode is enabled please plug the cable ✓ - Forum Pilotes (drivers)
- Php if multiple conditions ✓ - Forum PHP
- The Realtek Network Controller was not found. - Forum Pilotes (drivers)
- If else batch - Forum Autoit / batch
2 réponses
boolean paire = false;
for(int l = 1; l < board.length-1; l++) {
for(int c = 1; c < board[0].length-1; c++) {
if ( l%6==0 && (c%6==1 || c%6==2)) {
board[l][c] = '#';
paire = true;
}
if ( l%3==0 && ((c+1)%6==0 || (c+1)%6==5) && !paire){
board[l][c] = '#';
}
paire = false;
}
}
bloqué par 6 lignes de code, LE REVE TOTAL
Bonjour,
Si tu fais un else, il s'applique sur l'ensemble de la condition, pas juste sur la partie l%6 à moins de la décomposer :
Remarque : tu peux aussi faire tout ça en une seule condition :
Si tu fais un else, il s'applique sur l'ensemble de la condition, pas juste sur la partie l%6 à moins de la décomposer :
if (l % 6 == 0) {
if (c % 6 == 1 || c % 6 == 2)
board[l][c] = '#';
} else if (l % 3 == 0) {
if (c % 6 == 4 || c % 6 == 5)
board[l][c] = '#';
}
Remarque : tu peux aussi faire tout ça en une seule condition :
if ((l % 6 == 0 && (c % 6 == 1 || c % 6 == 2))
|| (l % 6 != 0 && l % 3 == 0 && (c % 6 == 4 || c % 6 == 5)))
board[l][c] = '#';
for(int l = 1; l < board.length-1; l++) { for(int c = 1; c < board[0].length-1; c++) { if ( l%6==0){ if (c%6==1 || c%6==2){ board[l][c] = new Mur_Indestructible(l, c, this); } } else if ( l%3==0 ){ if ((c+1)%6==0 || (c+1)%6==5){ board[l][c] = new Mur_Indestructible(l, c, this); } } } }Problème résolu, des fois c'est plus long, mais au moins ça fonctionne !!!