CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Carré magique

Spiritel
Spiritel
Niveau 5
14 mars 2015 à 11:47:10

Bien le bonjour !

Je viens vers vous car je désespère...
Je cherche à programmer un programme sous python où l'utilisateur saisit un entier "n" qui définira la taille d'un carré magique... Tout va bien mais le remplissage du dit carré pose problème...

J'ai peur de vous induire en erreur dans mon explication du carré magique donc je vous invite à vous rendre ici pour plus d'informations : http://fr.wikipedia.org/wiki/Carr%C3%A9_magique_%28math%C3%A9matiques%29 :-)

Je vous link la fonction où je remplis le carré (mon programme principal ne fait appel que aux fonctions et initialise le tableau "T=empty((n,n),int)" c'est tout) :
https://image.noelshack.com/fichiers/2015/11/1426330016-capture.png

Spiritel
Spiritel
Niveau 5
14 mars 2015 à 11:48:54

Je tiens à préciser que le tableau est initialisé de la façon suivante :
T=empty((n,n),int)
Et qu'il est remplit de 0.

:merci: bien pour votre aide !!! :-d

Spiritel
Spiritel
Niveau 5
14 mars 2015 à 11:51:58

Mmmmm après vérification j'ai bien une piste...
Il faudrait que je parte de la case T[i][j]=1 mais je bloque un peu ^^"

Spiritel
Spiritel
Niveau 5
14 mars 2015 à 18:12:42

Le remplissage du carré me pose problème, j'aurais aimé une aide, une correction, un indice, un conseil :-d.

BlackChinchilla
BlackChinchilla
Niveau 10
14 mars 2015 à 18:53:04

Mais c'est quoi le problème? :hap:

Spiritel
Spiritel
Niveau 5
14 mars 2015 à 19:16:47

Le problème c'est que le carré ne se remplit pas correctement ^^".
J'ai pas mal bidouillé entre temps mais soit je retrouve des 0 (alors que ceux ci devraient être remplacés par des valeurs allant de 1 à n**2).
Ou alors il me sort un carré où les valeurs sont mal placées...

Donc il y a quelque chose qui cloche dans la fonction que je vous ai link mais j'ai beau me creuser la tête je ne trouve pas...

Je me rapproche doucement, là le 1 et le 2 sont bien placés mais après plus rien... :
https://image.noelshack.com/fichiers/2015/11/1426356986-capture3.png

Avez vous une idée des lignes qui posent problèmes ?

Schiffer
Schiffer
Niveau 10
14 mars 2015 à 19:53:17

Regarde coté programmation par contraintes

Spiritel
Spiritel
Niveau 5
14 mars 2015 à 21:35:40

bluepoint_ merci pour ton conseil, oui j'ai essayé de faire une trace mais je reste bloqué, je vous ai proposé l'algorithme se rapprochant au plus du résultat que j'attends tout en sachant pertinemment qu'il ne fonctionnait pas... :snif:

Schiffer, je n'ai pas compris ^^".
Je ne cache pas le fait que je commence en programmation ^^".

Spiritel
Spiritel
Niveau 5
14 mars 2015 à 21:43:38

bluepoint_ Oui en effet c'est normal que je change les valeurs de i et de j dans la boucle mais je m'y prends mal...

Le carré magique se remplit de la sorte (du moins une des façons) :
- on place 1 au milieu de la première ligne
- on se déplace à droite puis en haut pour stocker la valeur suivante (tout ça jusque n²) si la case est vide (ici on traduit par si la case est égale à 0)
- si la case n'est pas vide (différente de 0) on revient à la case précédente et on se déplace vers le bas
- si on sort du carré on revient au côté opposé

Donc je veux que le programme stocke les indices de la case (donc i et j) afin que je puisse revenir sur cette case si la première option de remplissage n'est pas disponible, je n'ai plus qu'à descendre d'une ligne (tout en veillant à la sortie du carré) afin de placer la prochaines valeurs.
Mais c'est là que ça coince, je place surement mal ce retour aux valeurs de i et j...

Spiritel
Spiritel
Niveau 5
14 mars 2015 à 21:58:13

Je reconnais ne pas avoir été très clair jusque là, j’espère l'être davantage avec ces commentaires :
https://image.noelshack.com/fichiers/2015/11/1426366689-capture4.png

Spiritel
Spiritel
Niveau 5
15 mars 2015 à 11:22:01

:up: Quelqu'un sait comment corriger mon erreur...? :-p

Spiritel
Spiritel
Niveau 5
15 mars 2015 à 11:24:45

Salut CitroenDSKatre, merci pour ta réponse (en même temps que mon up ^^").
Je copie colle tout ça dans mon éditeur pour y voir plus clair mais déjà je vois où sont mes erreurs! ;)
Je reviens juste après.

Spiritel
Spiritel
Niveau 5
15 mars 2015 à 11:31:19

Magnifique ça marche aussi pour n=5 à première vue !
:merci: beaucoup l'ami !
Je me sens con parce que en réalité c'était beaucoup plus simple que je ne le pensais. Je m'étais trop focalisé sur la méthode de remplissage du tableau à 2D avec les 2 boucles i et j alors qu'on en avait pas du tout besoin.
Je sais désormais qu'on peut remplir un tableau sans ces boucles dans certains cas :-d.

Encore une fois :merci: !

Me reste plus qu'à faire les additions de lignes et de colonnes, ça devrait être plus simple :rire2: .

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment