Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

sudoku recuit simulé


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Futur Membre du Club
    sudoku recuit simulé
    Bonjour à tous !
    Je débute en informatique et j'essaie de coder un algorithme basé sur le recuit simulé pour résoudre les sudokus inspirées de la méthode ci jointe, mais sans succés... Je vous met également mes lignes de codes.
    Pouvez vous m'aider?
    merci d'avance

  2. #2
    Expert éminent sénior
    Salut,

    Citation Envoyé par aabdoulay Voir le message
    Je vous met également mes lignes de codes
    Lorsque vous postez du code, utilisez la balise code (le bouton # dans le menu d'édition des messages) plutôt que poster des images.

    Pouvez vous m'aider?
    Lorsque je me lance dans un nouveau projet, je commence par regarder ce que d'autres ont déjà fait dans le même domaine ou dans des domaines proches.
    Et à l'ère d'Internet et des moteurs de recherches, c'est quand même facile à faire...
    La résolution de sudoku en ayant inspiré plus d'un, vous y trouveriez même une implémentation proche de votre algo ici.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    bonjour,
    merci pour vos informations
    le lien que vous m'avez donné est en effet très adapté, mais je ne comprends pas une des lignes :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def make_candidate_data(self):
            """
            Generates "neighbor" board by randomly picking
            a square, then swapping two small squares within.
            """
            new_data = deepcopy(self.data)
            block = randint(0,8)
            num_in_block = len(self.get_block_indices(block, ignore_originals=True))
            random_squares = sample(range(num_in_block),2)
            square1, square2 = [self.get_block_indices(block, ignore_originals=True)[ind] for ind in random_squares]    <<<<------------
            new_data[square1], new_data[square2] = new_data[square2], new_data[square1]
    return new_data


    pouvez vous me l'expliquer?
    merci d'avance

  4. #4
    Expert éminent sénior
    La ligne:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    square1, square2 = [self.get_block_indices(block, ignore_originals=True)[ind] for ind in random_squares]


    équivaut à:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    squares = []
    for ind in random_squares:
         squares.append(self.get_block_indices(block, ignore_originals=True)[ind])
    square1, square2 = squares


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Futur Membre du Club
    que signifie ind?

  6. #6
    Futur Membre du Club
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     : def get_block_indices(self, k, ignore_originals=False):
            """
            Get data indices for kth block of puzzle.
            """
            row_offset = (k // 3) * 3
            col_offset = (k % 3)  * 3
            indices = [col_offset + (j%3) + 9*(row_offset + (j//3)) for j in range(9)]
            if ignore_originals:
                indices = filter(lambda x<img src="images/smilies/icon_mad.gif" border="0" alt="" title=":x" class="inlineimg" /> not in self.original_entries, indices)
    return indices


    Si je comprends bien, cette fonction récupère les chiffres de chaque case d'un bloc k donné, est ce vrai?
    Je ne comprends pas la ligne 7, ainsi que la ligne 9. Pouvez vous me l'expliquer? Que signifie ignore_originals?

  7. #7
    Expert éminent sénior
    Citation Envoyé par aabdoulay Voir le message
    Si je comprends bien, cette fonction récupère les chiffres de chaque case d'un bloc k donné, est ce vrai?
    çà fait ce que çà dit: "Get data indices for kth block of puzzle"

    Citation Envoyé par aabdoulay Voir le message
    Je ne comprends pas la ligne 7
    C'est la même construction que le cas précédent: compréhension de liste ou liste en compréhension. Si vous voulez en savoir plus, cherchez un peu sur Internet!

    Que signifie ignore_originals?
    Etudiez un peu le code pour voir à quoi çà correspond. Normalement, juste en connaissant l'algo. et le jeu du sudoku, vous devriez comprendre.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Futur Membre du Club
    Merci beaucoup pour votre aide

###raw>template_hook.ano_emploi###