Inscription / Connexion Nouveau Sujet
Niveau Maths sup
Partager :

Taquin python

Posté par
amlm33
01-01-21 à 19:39

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

Posté par
carpediem
re : Taquin python 01-01-21 à 20:02

salut

ça me semble bien compliqué ...

il faut donc programmer les déplacements possibles (je suppose que "0" désigne la case vide)
donc il faut programmer le déplacement d'une case adjacente à 0 : il y entre 2 et 4 déplacements valides suivant que 0 soit dans un coin, sur un côté ou "au milieu" : pas au bord

on peut remarquer que toute position avec un déplacement amenant à une position gagnante est gagnant .... ce qui implique qu'on va procéder par récursivité ...

Posté par
amlm33
re : Taquin python 01-01-21 à 20:31

Salut Carpediem,

Je te remercie pour ces informations mais que signifie "par récursivité", SVP ?

Bonne soirée

Posté par
carpediem
re : Taquin python 01-01-21 à 20:48

ne sais-tu pas ce qu'est une fonction récursive ?

Posté par
amlm33
re : Taquin python 01-01-21 à 20:56

Non, pas pour l'instant.
Merci

Posté par
GBZM
re : Taquin python 02-01-21 à 14:32

Bonjour (et bonne année),

Il y a un critère simple qui permet de savoir si une configuration de taquin est résoluble ou pas. Elle consiste à calculer la signature d'une permutation.
Voir par exemple ici :

Posté par
amlm33
re : Taquin python 02-01-21 à 16:03

Bonjour,

Merci beaucoup.
J'avais trouvé ce lien, je voyais bien que cela correspondait à ce que je voulais mais j'ai du mal à écrire le code.
Pourriez-vous m'aider, SVP ?
Amlm33

Posté par
GBZM
re : Taquin python 02-01-21 à 16:38

Si tu veux suivre ce qui est indiqué dans le lien, tu peux écrire :

- une procédure qui prend en entrée un tableau 4x4 représentant une configuration du taquin (comme le tableau T1 que tu produis - il serait d'ailleurs pas mal d'écrire ce que tu as fait comme une procédure ) et retourne la liste indiquée dans le lien (sans le 0).

- une procédure qui calcule le nombre d'inversions d'une liste qui représente une permutation des entiers de 1 à 15.

Avec ça tu pourras tester si un tableau 4x4 peut se ramener à la configuration de départ par des mouvements autorisés.

-

Posté par
amlm33
re : Taquin python 02-01-21 à 17:45

Merci beaucoup.
J'essaye d'écrire le code.

Posté par
malou Webmaster
re : Taquin python 03-01-21 à 16:09

Bonjour à tous
amlm33 terminera seul
demande multisite, ben voyons....



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !