Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 01-01-2021 21:00:41

amlm33
Membre
Inscription : 01-01-2021
Messages : 3

[Python] Programmation Jeu du Taquin

Bonsoir à tous,

Je me permets de vous demander de l'aide sur un rapport d'informatique que j'ai à rendre à la rentrée. Je dois réaliser la programmation du Jeu du Taquin.

J'ai déjà écrit l'algorithme en python pour le jeu avec un mélange de la grille initiale en 100 coups, et le jeu est fonctionnel. Cependant, je dois aussi étudier le cas où une grille de jeu est générée aléatoirement et il faut vérifier que cette grille permet d'aboutir à la position finale de fin de jeu, ou bien recommencer.
Je ne sais pas comment écrire la fonction qui permet de vérifier que la grille générée permet d'aboutir à la "position finale de fin de jeu, ou bien recommencer".

J'ai déjà écrit la manière de générer une grille aléatoirement de format 4 x 4 :
L=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0]
random.shuffle(L)
T1=np.array(L)
T1.shape=(4,4)
print(T1)

Je vous remercie de votre aide à tous et je vous souhaite une bonne année.

amlm33

Hors ligne

#2 01-01-2021 22:47:59

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 985

Re : [Python] Programmation Jeu du Taquin

Bonsoir,

Tu ne sas pas comment écrire la fonction ? ou tu ne sais pas trouver l'algorithme de vérification ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 02-01-2021 00:11:08

amlm33
Membre
Inscription : 01-01-2021
Messages : 3

Re : [Python] Programmation Jeu du Taquin

yoshi a écrit :

Bonsoir,

Tu ne sas pas comment écrire la fonction ? ou tu ne sais pas trouver l'algorithme de vérification ?

@+


Bonsoir,

Je vous remercie de votre réponse.
Je ne sais ni écrire la fonction, ni trouver l'algorithme de vérification. Je ne vois pas comment aborder le problème.

Hors ligne

#4 02-01-2021 17:05:24

amlm33
Membre
Inscription : 01-01-2021
Messages : 3

Re : [Python] Programmation Jeu du Taquin

Bonjour,

Je pensais calculer la signature d'une permutation mais je n'arrive pas à trouver un code qui fonctionne.
Je vous remercie de votre aide

Hors ligne

#5 02-01-2021 19:35:57

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 985

Re : [Python] Programmation Jeu du Taquin

Bonsoir,

il ne faudrait pas croire que silence = il m'a laissé tomber...
Nan, nan !
J'ai passé la matinée dessus et je suis arrivé à quelque de propre.
Je me suis inspiré de Wikipedia.
Dans ton code, tu vas de 0 à 15, 15 étant l'espace...
Avant de faire appel à la fonction (ou tout au début après tout), je prévois de remplacer le 0 par 16.
Pourquoi ?
D'après Wikipedia et d'autres, il faut trier le tableau de nombres par ordre croissant avec une méthode de tri faisant appel aux permutations, tel le "tri à bulle" (j'avais ça en stock) : peu importe s'il ne permute pas exclusivement avec 16, on compte le nombre de permutations effectuées.
Puis, on compte le nombre de cases horizontales pour aller au bout de la colonne, et on ajoute le nb de déplacements verticaux pour aller de cette case à la dernière en bas à droite.
A ce que j'ai compris, il ne faut pas que le ne nombre de permutations et le nombre de déplacements de la case vide (16) soient de parité différentes...
Et ta fonction retournera True ou False.
Tu récupères cette mention :
- si la fonction a retourné False, tu génères une autre position,
- si elle a retourné True, tu passes au jeu.
Logiquement tu dois générer un 1er tableau 16 nombres de 0 à 15, puis les répartir dans un liste de 4 sous-listes de 4 éléments, c'est avec ce tableau que le jeu doit se dérouler.
Si oui, tu passes à la fonction la première liste et la position du zéro ou du 16 dans la liste 4 x4  par (ligne, colonne).
Comme je ne sais pas comment ton code va fonctionner, la fonction que j'ai codée, prend la première liste en fait un lise 4x4 et calcule la position (ligne,colonne) du 0 ( ou 16, ou blanc) pour en déduire la distance horizontale+verticale pour rejoindre la case finale en bas à droite...
Donc pour affiner, j'ai besoin de savoir comment tu as pensé ton code...

@+

[EDIT] Ah, mais je vois que tu fais appel à numpy, je vais déjà pouvoir simplifier ce que j'ai fait.

Dernière modification par yoshi (02-01-2021 19:40:22)


Arx Tarpeia Capitoli proxima...

Hors ligne

#6 03-01-2021 10:38:04

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 985

Re : [Python] Programmation Jeu du Taquin

Bonjour,

Après le temps que j'ai investi dans ton projet, je me vois contrait de "t'envoyer sur les roses".
Cf https://www.ilemaths.net/sujet-taquin-p … 61435.html
A ton avis, combien de temps, avant que l'ïle Maths s'aperçoive que u t'adonnes à un jeu généralement honni : le crossposting !
Si ça ne va pas assez vite, j'irai le leur signaler!

Autrement dit, tu manges à plusieurs râteliers et ça ne fait pas !

Tu as cru pouvoir jouer sur deux tableaux, tu auras perdu sur les deux (Dommage, je venais de finir intégralement via numpy de refaire ce que j'avais fait en Python classique"

Tu as perdu sur les deux tableaux ? Pas grave : 100% des perdants ont tenté leur chance !

Cette leçon vaut bien un fromage sans doute...

Sujet fermé.

      Yoshi
- Modérateur -


Arx Tarpeia Capitoli proxima...

Hors ligne

Pied de page des forums