Partage
  • Partager sur Facebook
  • Partager sur Twitter

Algorithme

Sujet résolu
    24 novembre 2010 à 13:28:49

    Bonjour.

    Alors je voudrais savoir comment faire un algorithme efficace pour trouver le nombre de case avec une certaine valeur autour d'une seule case. Je m'explique : on a part exemple quelque chose comme ça :
    ..
    .o.
    ..
    Les points représentent les "cases" à identifier, et le "o" représente la "case" de départ. Je cherche à trouver le nombre de points adjacents au "o". J'aurais réfléchi à faire comme ceci mais je pense pas que ça soit trop efficace :
    le carré de 9 "signes" (point, "o" ou espace) est un tableau multi-dimensionnel, on le parcourt comme ça (en python, sans boucle) :
    if carre[0][0] == '.': 
    ... #en ignorant le "o"
    if carre[2][2] == '.':
    

    Mais comme je l'ais dit plus haut, ce n'est pas très efficace et répétitif.

    Donc voilà je voudrais savoir faire ça "intelligemment". Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      24 novembre 2010 à 14:50:43

      J'ai pas très bien compris quel était ton problème, j'ai fais une fonction néanmoins plus courte pour compter les voisins, elle est surement pas optimisée mais c'est déjà un peu plus élégant que mettre huit if a la suite:
      # Compte le nombre de 'carac' dans 'tab [[]*3]'
      def count(tab, carac):
          c = 0
          for i in range(3):
              for j in range(3):
                  if tab[i][j] == carac:
                      c += 1
          return c
      

      • Partager sur Facebook
      • Partager sur Twitter
        24 novembre 2010 à 15:44:17

        C'est a peu près ça que je voulais faire, merci.
        • Partager sur Facebook
        • Partager sur Twitter

        Algorithme

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown