home *** CD-ROM | disk | FTP | other *** search
/ Freelog 31 / Freelog031.iso / Prog / LifeGame / lifegame.py next >
Text File  |  2001-12-04  |  2KB  |  63 lines

  1. # le jeu de la vie...
  2.  
  3. # dΘveloppΘ pour rendre la vie plus gaie...
  4. # et surtout pour voir comment gerer des tableaux a 2 dimensions
  5. # variables globales et declarations
  6.  
  7. from whrandom import *
  8. global x,y
  9. population ={}
  10.  
  11. # regroupement des definitions
  12. def voisinage(x,y):
  13.     if(x>9):
  14.         x=9
  15.     if(x<2):
  16.         x=2
  17.     resultat=0
  18.     transitionx=population[(x+1,y)]
  19.     transitioninvx =population[(x-1,y)]
  20.     #ici, on peut fixer les regles de vie de la population avec des if
  21.     if(transitionx==0 and transitioninvx==0):
  22.         resultat=0
  23.     if(transitionx==1 and transitioninvx==1):
  24.         resultat=1
  25.     if(transitionx==0 and transitioninvx==1):
  26.         resultat=0
  27.     if(transitionx==1 and transitioninvx==0):
  28.         resultat=1
  29.     return resultat
  30.  
  31. # creation du cadre et initialisation
  32. for i in range(1,11):
  33.     for j in range(1,11):
  34.         population[(i,j)]=0
  35.  
  36. # generation aleatoire des formes de vie
  37. for depart in range(0,51):
  38.     x=int(random()*10)
  39.     y=int(random()*10)
  40.     population[(x,y)]=1
  41.  
  42. for i in range(1,11):
  43.     print 
  44.     for j in range(1,11):
  45.         print population[(i,j)],
  46. print '\n voici le rΘsultat initial'
  47.  
  48. # boucle principale des cycles de vie (nbre de generations)
  49. # et definition des criteres d'evolution de la population
  50. for boucle in range(1,11):
  51.     for k in range(1,11):
  52.         print 
  53.         for l in range(1,11):
  54.             # ici, on teste l'environnement de la position (k,l)
  55.             teste_pos=voisinage(k,l)
  56.             population[(k,l)]=teste_pos
  57.             print population[(k,l)],        
  58.     print '\n voici le rΘsultat α la ', boucle, ' ieme generation'
  59.  
  60.  
  61.  
  62.  
  63.