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
|
## 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