davidmarli | Bonjour,
bon finalement, on peut "jouer" plutôt que de faire jouer l'ordinateur.
On a pondu ça : ça focntionne.
Il y a certainement moyen d'optimiser.
Code :
- import random
- def init_tab(nbcase):
- tab=[]
- for i in range(nbcase):
- tab.append([0] * nbcase)
- for i in range(nbcase):
- for j in range(nbcase):
- tab[i][j]=random.randint(1,nbcase)
- return tab
-
- def init_tab_temp(nbcase):
- tab=[]
- for i in range(nbcase):
- tab.append([0] * nbcase)
- tab[0][0]=-1
- return tab
-
- def affiche_tab(tab,t_temp,nbcase):
- for i in range(nbcase):
- for j in range(nbcase):
- if t_temp[i][j]==-1:print('\033[1;34m',tab[i][j], end='')
- else:print('\033[1;30m',tab[i][j], end='')
- print('')
- def nb_possible(t1,t_temp,nb_next,nbcase):
- rep=False
- for i in range(nbcase):
- for j in range(nbcase):
-
- if t_temp[i][j]==-1:
- if i>0:
- if t1[i-1][j]==nb_next:rep=True
- if i<nbcase-1:
- if t1[i+1][j]==nb_next:rep=True
- if j>0:
- if t1[i][j-1]==nb_next:rep=True
- if j<nbcase-1:
- if t1[i][j+1]==nb_next:rep=True
- return rep
- #on parcourt le tableau : pour chaque case -1 on regarde celle à côté et on regarde si elle contient un nb_next ou un -1
- # si c'esdt le cas on la marque sinon on passe à la suivante.
- def change_case_adj(t1,t_temp,nb_next,nbcase):
- t2=t_temp
- for i in range(nbcase):
-
- for j in range(nbcase):
-
- if t_temp[i][j]==-1:
- if i>0:
- if t1[i-1][j]==nb_next: t2[i-1][j]=-1 #case au dessus
-
- if i<nbcase-1:
- if t1[i+1][j]==nb_next: t2[i+1][j]=-1 #case en dessous
-
- if j>0:
- if t1[i][j-1]==nb_next: t2[i][j-1]=-1 #case à gauche
-
- if j<nbcase-1:
- if t1[i][j+1]==nb_next: t2[i][j+1]=-1 #case à droite
- t_temp=t2
-
- for i in range(nbcase):
- for j in range(nbcase):
- if t2[i][j]==-1:t1[i][j]=nb_next
- return (t1,t_temp)
- def verif_fini(t1,nb_next):
- rep=True
- for i in range(len(t1)):
- for j in range(len(t1)):
- if t1[i][j]!=nb_next:rep=False
- return rep
- ''' Prog Principal '''
- #on demande à l utilisateur la taille du tableau
- print("\033[1;30m" )
- n=int(input('Quelle taille pour le tableau ?'))
- #on initialise le tableau
- # random sur les cellules
- t1=init_tab(n)
- print('')
- t_temp=init_tab_temp(n)
- affiche_tab(t1,t_temp,n)
- #tableau temporaire pour marquer les cases figées
- # on joue tant que le tableau n'a pas toutes les cases identiques
- fini=False
- compteur=1
- while fini==False:
- print('')
- print('Essai n° : ',str(compteur))
- print('')
-
- #on demande à l'utilisateur que lnombre il choisit
- nb_next=int(input('Quel nombre choisissez-vous ?'))
- print('')
-
- #on regarde si ce nombre est possible
- if nb_possible(t1,t_temp,nb_next,n)==True:
- change_case_adj(t1,t_temp,nb_next,n)
- print('')
- affiche_tab(t1,t_temp,n)
- fini=verif_fini(t1,nb_next)
- else:
- print('Ce choix n est pas possible !')
- compteur=compteur+1
- # le jeu est fini
- if fini==True:
- print('')
- print('Bravo')
- print('Vous avez réussi en ',str(compteur),' essais')
- affiche_tab(t1,t_temp,n)
|
---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
|