Compare commits
6 commits
Algorithme
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cbdf05907f | ||
|
|
55c513cc7d | ||
|
|
c5e4fd3628 | ||
|
|
92eed96a35 | ||
|
|
236258d809 | ||
|
|
3c3398ab59 |
3 changed files with 2 additions and 70 deletions
17
README.md
17
README.md
|
|
@ -1,18 +1,5 @@
|
|||
## Wildfire
|
||||
**EN** : Scripts for my class project a wildfire simulation in the "Conway's Game of Life" style to study wildfire propagation.
|
||||
|
||||
**FR** : Des scripts pour mon projet informatique de prépa BCPST dont le but est de simuler et d'étudier la propagation des feux de forêts à l'aide d'automates cellulaires, en s'inspirant du "Conway's Game of Life"
|
||||
|
||||
***classes.py*** :
|
||||
|
||||
Essaie de définition du programme à partir de Classes Python dans le but de simplifier le code, ou du moins son écriture.
|
||||
|
||||
***genForet.py***
|
||||
- **genForet(n, p)** :
|
||||
La fonction génère une matrice carrée de taille n\*n avec des 0 et des 1, p représentant la probabilité qu'il y ait un 1 dans une case de la matrice (p=0.25 par défaut)
|
||||
|
||||
- **affichage(foret)** :
|
||||
La fonction prend en entrée une matrice et génère une forêt selon les règles suivantes : si la case contient un 1 alors il y a un arbre, rien sinon
|
||||
|
||||
|
||||
Des scripts dont le but est de simuler et d'étudier la propagation des feux de forêts à l'aide d'automates cellulaires, en s'inspirant du "Conway's Game of Life"
|
||||
|
||||
## Voir les deux branches Algorithme et Classes pour accéder au code
|
||||
|
|
|
|||
20
classes.py
20
classes.py
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Created on Tue Feb 5 22:22:54 2019
|
||||
|
||||
@author: LordOf20th
|
||||
"""
|
||||
|
||||
class Arbre:
|
||||
""" Classe définissant un arbre, caractérisé par :
|
||||
- Son état : Sain ou En feu (par défaut à sa création l'arbre est considéré Sain)
|
||||
- Sa position en x et y """
|
||||
def __init__(self, x, y):
|
||||
self.x=x
|
||||
self.y=y
|
||||
self.brule=False
|
||||
def enflammer(self):
|
||||
""" Méthode pour enflammer l'arbre"""
|
||||
|
||||
if not self.brule:
|
||||
self.brule = True
|
||||
35
genForet.py
35
genForet.py
|
|
@ -1,35 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Created on Fri Feb 1 11:30:02 2019
|
||||
|
||||
@author: LordOf20th
|
||||
"""
|
||||
import numpy as np
|
||||
import random
|
||||
import tkinter as tk
|
||||
|
||||
def genForet(n,p=0.25):
|
||||
foret=np.full(shape=(n,n), fill_value=0)
|
||||
for i in range(0,foret.shape[0]):
|
||||
for j in range(0,foret.shape[1]):
|
||||
if random.random() <= p:
|
||||
foret[i,j]=1
|
||||
return foret
|
||||
|
||||
def affichage(foret):
|
||||
|
||||
fenetre = tk.Tk() #Crée la fenêtre que l'on va modifier
|
||||
|
||||
label = tk.Label(fenetre, text="Wildfire") #Met en place le titre
|
||||
label.pack()
|
||||
|
||||
canvas = tk.Canvas(fenetre, width=(foret.shape[0]+2)*10, height=(foret.shape[1]+2)*10,background='red') #On définit le canevas qui affiche notre forêt
|
||||
canvas.create_rectangle(10,10,(foret.shape[0]+1)*10,(foret.shape[1]+1)*10,fill='#c68c53')
|
||||
for i in range(0,foret.shape[0]):
|
||||
for j in range(0,foret.shape[1]):
|
||||
if foret[i,j]== 1:
|
||||
canvas.create_rectangle((i+1)*10,(j+1)*10,(i+2)*10,(j+2)*10,fill='green',width=0)
|
||||
canvas.pack()
|
||||
bouton = tk.Button(fenetre, text="Quitter", command=fenetre.quit)
|
||||
bouton.pack()
|
||||
fenetre.mainloop() #affiche la fenêtre
|
||||
Loading…
Add table
Reference in a new issue