Bonjour pourriez vous m'aider avec ce programme en Python, j'ai un problème pour mélanger les éléments de mon tableau. Il faut que je met en place en fonction qui joue 100 coups à partir du 0 de façon à mélanger aléatoirement le tabeau..Le problème est que je ne sais pas comment faire.
from tkinter import*
grille=[]
ligne=3
col=3
value = -1
for line in range (ligne) :
grille.append([])
for colonne in range(col) :
value += 1
grille[line].append(value)
for element in grille :
print(element)
def melange(element) :
(j 'ai envie d'uliser shuffle mais ça ne marche pas et si ça marchais cela n'aurait mélanger qu'une fois)
D'autre part :
Si vous pouviez m'expliquer comment créer une fonction qui permette de jouer des coups c'est à dire une fonction qui intervertis les places des numéros qui entoure le 0.
Par exemple :
[0 , 7, 8]
[5,2, 3]
[1,4,6]
Entrer un nombre : 5
[5,7,8]
[0,2, 3]
[1,4,6]
Et si jamais le chiffre n'est pas à coter du 0 c'est à si on aurait par exemple choisi 4 comme nombre aurait renvoyer coup invalide.
Bonjour.
Un exemple :
#*******************************************************************************
# IMPORT ***********************************************************************
#*******************************************************************************
# module de generation de nombres aleatoires
import random
#*******************************************************************************
# DEF **************************************************************************
#*******************************************************************************
# -- afficher_taquin ----------------------------------------------------------
#
# Description : affichage du Taquin
#
# Parameters :
#
# Return :
#
# Notes :
# --- --- ---
# | 0 | 1 | 2 |
# --- --- ---
# | 3 | 4 | 5 |
# --- --- ---
# | 6 | 7 | 8 |
# --- --- ---
#
def afficher_taquin() :
print " --- --- ---"
print " |", l_case[0], "|", l_case[1], "|", l_case[2], "|"
print " --- --- ---"
print " |", l_case[3], "|", l_case[4], "|", l_case[5], "|"
print " --- --- ---"
print " |", l_case[6], "|", l_case[7], "|", l_case[8], "|"
print " --- --- ---"
print " "
# -- echanger_cases ----------------------------------------------------------
#
# Description : echange de 2 cases
#
# Parameters :
#
# Return :
#
# Notes : aucunes cases echangées si pas possible
#
def echanger_cases(case1, case2) :
# echanges horizontaux
# 0 <-> 1 ?
if (case1 == 0 and case2 == 1) or (case1 == 1 and case2 == 0) :
l_case[0], l_case[1] = l_case[1], l_case[0]
# 1 <-> 2 ?
elif (case1 == 1 and case2 == 2) or (case1 == 2 and case2 == 1) :
l_case[1], l_case[2] = l_case[2], l_case[1]
# 3 <-> 4 ?
elif (case1 == 3 and case2 == 4) or (case1 == 4 and case2 == 3) :
l_case[3], l_case[4] = l_case[4], l_case[3]
# 4 <-> 5 ?
elif (case1 == 4 and case2 == 5) or (case1 == 5 and case2 == 4) :
l_case[4], l_case[5] = l_case[5], l_case[4]
# 6 <-> 7 ?
elif (case1 == 6 and case2 == 7) or (case1 == 7 and case2 == 6) :
l_case[6], l_case[7] = l_case[7], l_case[6]
# 7 <-> 8
elif (case1 == 7 and case2 == 8) or (case1 == 8 and case2 == 7) :
l_case[7], l_case[8] = l_case[8], l_case[7]
# echanges verticaux
# 0 <-> 3 ?
elif (case1 == 0 and case2 == 3) or (case1 == 3 and case2 == 0) :
l_case[0], l_case[3] = l_case[3], l_case[0]
# 3 <-> 6 ?
elif (case1 == 3 and case2 == 6) or (case1 == 6 and case2 == 3) :
l_case[3], l_case[6] = l_case[6], l_case[3]
# 1 <-> 4 ?
elif (case1 == 1 and case2 == 4) or (case1 == 4 and case2 == 1) :
l_case[1], l_case[4] = l_case[4], l_case[1]
# 4 <-> 7 ?
elif (case1 == 4 and case2 == 7) or (case1 == 7 and case2 == 4) :
l_case[4], l_case[7] = l_case[7], l_case[4]
# 2 <-> 5 ?
elif (case1 == 2 and case2 == 5) or (case1 == 5 and case2 == 2) :
l_case[2], l_case[5] = l_case[5], l_case[2]
# 5 <-> 8
elif (case1 == 5 and case2 == 8) or (case1 == 8 and case2 == 5) :
l_case[5], l_case[8] = l_case[8], l_case[5]
#*******************************************************************************
# MAIN *************************************************************************
#*******************************************************************************
# initialisation du Taquin ----------------------------------------------------
# liste vide par defaut
l_case = []
i = 0
while i < 9 :
# chiffre aleatoire de 0 a 8
chiffre = random.randrange(0, 9)
# deja eu ?
if chiffre not in l_case :
# non : on le garde
l_case.append(chiffre)
i += 1
# jeu -------------------------------------------------------------------------
while (True) :
# affichage du Taquin
afficher_taquin()
# saisie
numero = int(input(" Entrez le numero de la piece a bouger de 1 a 8 : "))
# numero valide ?
if 1 <= numero and numero <= 8 :
# oui : recherche de la case contenant le zero
case_zero = l_case.index(0)
# recherche de la case contenant le numero
case_numero = l_case.index(numero)
# echange (si possible)
echanger_cases(case_zero, case_numero)
--- --- ---
| 7 | 2 | 3 |
--- --- ---
| 4 | 6 | 5 |
--- --- ---
| 8 | 0 | 1 |
--- --- ---
Entrez le numero de la piece a bouger de 1 a 8 : 6
--- --- ---
| 7 | 2 | 3 |
--- --- ---
| 4 | 0 | 5 |
--- --- ---
| 8 | 6 | 1 |
--- --- ---
Entrez le numero de la piece a bouger de 1 a 8 : 4
--- --- ---
| 7 | 2 | 3 |
--- --- ---
| 0 | 4 | 5 |
--- --- ---
| 8 | 6 | 1 |
--- --- ---
Entrez le numero de la piece a bouger de 1 a 8 :
Remarque : pour du Python 3.x :
# -- afficher_taquin ----------------------------------------------------------
#
# Description : affichage du Taquin
#
# Parameters :
#
# Return :
#
# Notes : pour Python 3.x
#
# --- --- ---
# | 0 | 1 | 2 |
# --- --- ---
# | 3 | 4 | 5 |
# --- --- ---
# | 6 | 7 | 8 |
# --- --- ---
#
def afficher_taquin() :
print(" --- --- ---")
print(" |", l_case[0], "|", l_case[1], "|", l_case[2], "|")
print(" --- --- ---")
print(" |", l_case[3], "|", l_case[4], "|", l_case[5], "|")
print(" --- --- ---")
print(" |", l_case[6], "|", l_case[7], "|", l_case[8], "|")
print(" --- --- ---")
print(" ")
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :