moi411
Messages postés179Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention25 juin 2017
-
25 juil. 2010 à 14:46
moi411
Messages postés179Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention25 juin 2017
-
25 juil. 2010 à 18:27
Bonjour à tous,
J'ai une toute petite question mais il faut d'abord que je vous explique mon cas, c'est ça qui risque d'être long!!!
En fait je développe un morpion (10 cases sur 10) ou pour gagné il faut aligner 5 croix ou ronds. Mes cases sont des boutons (dynamiques) que je mets dans un tableau à 2 dimensions "case". Une dimension pour les ligne "i" et une autre pour les colonnes "j".
Mes conditions de victoires disent que:
pour chaque ligne
{
et pour chaque colonne
{
//horizontale
si case[i, j]=case[i, (j+1)]=case[i, (j+2)]=case[i, (j+3)]=case[i, (j+4)] alors gagné
//verticale
si case[i, j]=case[(i+1), j]=case[(i+2), j]=case[(i+3), j]=case[(i+4), j] alors gagné
...
}
}
Bref, il y a en tout 4 grandes conditions à étudier pour chacune des 100 cases (horizontale, verticale, diagonale descendant vers la droite et vers la gauche).
Le problème est que ça rame!!! Ça marche très bien mais c'est long!!! (1 bonne seconde à chaque fois).
Je me suis donc intéressé à la récursivité parce que j'ai entendu dire que c'était "LA" Solution (avec un grand S) mais au final j'aurais le même traitement, par boucle.
D’où ma question (enfin!) est-ce que ça vaut vraiment le coup de remplacer une grande condition par une boucle? Est-ce que je vais vraiment gagner du temps?
Voilà j'espère que vous comprendrez mon problème et que vous pourrez m'aider à le résoudre!
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 25 juil. 2010 à 16:04
Bonjour
en effet quelque soit la methode d'implementation, si tu fais des boucles ça prend un peu de temps.
par contre tu peux sans doute faire autrement et n'évaluer que les cases autour de celle qui vient d'être cliquée.
ça limite fortement le nombre de tests.
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 25 juil. 2010 à 17:20
De rien
à ta place, j'utiliserais des totaux pndérés de colonnes et de lignes
puis avec un masque de bit, je testerais l'existance d'une suite de x bits concecutifs.
cela devrait être quasi immédiat, même si la grille est plus grande, et le nombre de cases gagnantes consécutif plus élévé.
mais chacun sa voie...
Bob.
+l'important ce n'est pas le but, mais le chemin.+
moi411
Messages postés179Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention25 juin 20173 25 juil. 2010 à 18:27
Salut,
et bien ça par contre je n'y avais pas pensé!!!
C'est le principe des ECC (dans les barrettes de mémoire).
Sinon le fait de tester uniquement les cases autour de celles sur laquelle je clique marche nickel.
Mais je vais essayer "pour le fun" les totaux pondérés... C'est toujours intéressant de connaître
plusieurs chemin, même pour atteindre le même but! Quoi qu'après réflexion, pour les diagonales ça ne fonctionnera pas...
Enfin bref, tout ça pour te dire merci de m'avoir accorder un peu de ton temps!
moi