Bonsoir!
Cherchant à réaliser un exo sur le Gomoku, sujet :
Cliquez pour afficher
J'ai fait ça :
Ca marche parfois, mais dans l'exemple du sujet, ça me sort 2... Je sais pas pourquoi. Parfois, ça me met Programme trop long, ça c'est le coup de toute les boucles, j'imagine... Si vous avez une idée, merci!Code:#include <iostream> using namespace std; int main(){ int nb; cin>>nb; if(nb<1 && nb>40) return 0; int tab[nb][nb]; for(int i=0; i<nb; i++) for(int j=0; j<nb; j++) cin>>tab[i][j]; for(int i=0; i<nb; i++) for(int j=0; j<nb; j++) if(tab[i][j]!=0){ int eq=tab[i][j]; int cpt=0; // horizontal for(int a=j; a<j+5 && a+1<nb; a++) if(tab[i][a+1]!=eq) cpt++; if(cpt==0){ cout<<eq; return 0; } cpt=0; for(int a=i;a<i+5 && a+1<nb; a++) // vertical if(tab[a+1][j]!=eq) cpt++; if(cpt==0){ cout<<eq; return 0; } cpt=0; for(int a=i,b=j; a<i+5 && a+1<nb && b<j+5 && b+1<nb; a++,b++) if(tab[a+1][b+1]!=eq) cpt++; if(cpt==0){ cout<<eq; return 0; } cpt=0; for(int a=i, b=j; a<i+5 && a+1<nb && b>j-5 && b-1>=0; i++,j--) if(tab[a+1][b-1]!=eq) cpt++; if(cpt==0){ cout<<eq; return 0; } } cout<<"0"; return 0; }
-----