FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Bataille navale SM
Automate cellulaire : simulation de feu de forêt Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
Automate cellulaire : simulation de feu de forêt Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
Automate cellulaire : simulation de feu de forêt Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Automate cellulaire : simulation de feu de forêt Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Automate cellulaire : simulation de feu de forêt Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Automate cellulaire : simulation de feu de forêt Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Automate cellulaire : simulation de feu de forêt Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Automate cellulaire : simulation de feu de forêt Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Automate cellulaire : simulation de feu de forêt Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Automate cellulaire : simulation de feu de forêt Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
Automate cellulaire : simulation de feu de forêt Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
Automate cellulaire : simulation de feu de forêt Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Automate cellulaire : simulation de feu de forêt Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Automate cellulaire : simulation de feu de forêt Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Automate cellulaire : simulation de feu de forêt Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
-40%
Le deal à ne pas rater :
-40% sur le Pack Gaming Mario PDP Manette filaire + Casque filaire ...
29.99 € 49.99 €
Voir le deal

 

 Automate cellulaire : simulation de feu de forêt

Aller en bas 
5 participants
AuteurMessage
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Automate cellulaire : simulation de feu de forêt Empty
MessageSujet: Automate cellulaire : simulation de feu de forêt   Automate cellulaire : simulation de feu de forêt EmptyVen 3 Mar 2017 - 3:03

Code:

rem ============================================================================
rem     Automate cellulaire : simulation de feu de forêt
rem            Par papydall : Mars 2017
rem ============================================================================
rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
rem ============================================================================
rem Un automate cellulaire est une grille à maillage carrée. Nous représenterons
rem cette grille par un tableau en deux dimensions.
rem Chaque case du tableau est appelée cellule.
rem Chaque cellule peut être dans un certain état.
rem Dans la simulation de feu de forêts, il y en a 4 (vide, arbre, feu ou cendre).
rem ============================================================================
rem Un automate cellulaire est un objet dynamique, qui change au cours du temps
rem selon certaines règles. Ces changements concernent chacune des cellules.
rem A la date t+1, l’état de toutes les cellules doit être recalculé et dépend
rem uniquement des règles de transition et de l’état de ces cellules aux dates
rem antérieures.
rem En ce qui nous concerne, l’état d’une cellule particulière dépendra uniquement
rem de l’état de ses cellules voisines (et d’elle même) à la date précédente.
rem Nous pourrons considérer en revanche plusieurs types de voisinage, comme le
rem voisinage de Moore (8 voisins) ou le voisinage de Von Neumann (4 voisins).
rem ============================================================================
rem Pour la simulation de feu de forêt, les règles de changement d’état sont :
rem Vide   => Vide
rem Feu    => Cendre
rem Cendre => Cendre
rem Arbre  => Feu si un voisin est en feu et Arbre => Arbre sinon
rem ============================================================================
rem On choisit de représenter chaque état par un carré de couleur différente.
rem Vide   : Noir
rem Arbre  : Vert
rem Feu    : Rouge
rem Cendre : Gris
rem ============================================================================
rem Améliorations possibles du programme :
rem * Faire intervenir la vitesse du vent
rem * Soigner la disposition aléatoire des arbres, ajout des clairières.
rem ============================================================================
rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
rem ============================================================================

Init()
repeat
    Feu()
    Afficher()
until scancode = 27 or incendie = 0
if incendie = 0 then caption 6, "Le feu a cessé de se propager"

end
rem ============================================================================
SUB Init()
    dim n : n = 30 : ' Constante à modifier
    dim tablo1(n+1,n+1), tablo2(n,n)
    dim vide   : vide   = 0
    dim arbre  : arbre  = 1
    dim feu    : feu    = 2
    dim cendre : cendre = 3
    dim cote, demi_cote
    dim i,j,etat
    dim incendie : ' flag indiquant la propagation du feu (= 1) ou sa cessation (= 0)
    width 0,600 : height 0,600 : color 0,200,150,100
    top 0,(screen_y-width(0))/2 : left 0,(screen_x-width(0))/2
    alpha 5 : font_bold 5 : font_name 5,"arial" : font_size 5,18 : left 5,15 : top 5,10
    alpha 6 : font_bold 6 : font_name 6,"arial" : font_size 6,18 : left 6,15 : top 6,50
    picture 10 : width 10,200 : height 10,200
    top 10,200 : left 10,200 : 2d_target_is 10
    caption 5,"Automate cellulaire : simulation de feu de forêt"
    caption 0,"<ESC> pour arrêter"
    cote = width(10)/n : demi_cote = cote / 2
' Initialiser les cases
    for i = 1 to n
        for j = 1 to n
            tablo1(i,j) =  int(rnd(2))  : ' Vide ou Arbre
        next j
    next i
    i = int(rnd(n)+1) : j = int(rnd(n)+1)
    tablo1(i,j) = feu  : ' Cellule de feu
    
END_SUB
rem ============================================================================
SUB Afficher()
    dim_local x,y
    2d_fill_on
    for i = 1 to n
        for j = 1 to n
            select tablo1(i,j)
                case 0 : 2d_pen_color 000,000,000 : 2d_fill_color 000,000,000 : ' vide
                case 1 : 2d_pen_color 000,255,000 : 2d_fill_color 000,255,000 : ' arbre
                case 2 : 2d_pen_color 255,000,000 : 2d_fill_color 255,000,000 : ' feu
                case 3 : 2d_pen_color 128,128,128 : 2d_fill_color 128,128,128 : ' cendre
            end_select
' Transformer les coordonnées i,j du tableau en coordonnées x,y de l'écran
            x = (i-1) * cote : y = (j-1) * cote
            2d_rectangle x,y,x+cote,y+cote
        next j
    next i

END_SUB
rem ============================================================================
SUB Feu()
    incendie = 0
    for i = 1 to n
        for j = 1 to n
            evolution(i,j)
            tablo2(i,j) = etat
        next j
    next i
    for i = 1 to n
        for j = 1 to n
            tablo1(i,j) = tablo2(i,j)
            if tablo1(i,j) = 2 then incendie = 1
        next j
    next i
    
END_SUB
rem ============================================================================
' Déterminer l'état suivant de la case(i,j) qui dépent de tablo1(i,j), des cases
' voisines et des règles de transition
SUB Evolution(i,j)

    if tablo1(i,j) = vide   then etat = vide   : exit_sub
    if tablo1(i,j) = feu    then etat = cendre : exit_sub
    if tablo1(i,j) = cendre then etat = cendre : exit_sub
    if tablo1(i,j) = arbre
       if (tablo1(i-1,j) = feu) or (tablo1(i+1,j) = feu)  or (tablo1(i,j-1) = feu) or (tablo1(i,j+1) = feu) or(tablo1(i-1,j+1) = feu) or (tablo1(i+1,j+1) = feu) or (tablo1(i-1,j-1) = feu) or (tablo1(i+1,j-1) = feu)
          etat = feu
       else
          etat = arbre
       end_if
    end_if
END_SUB
rem ============================================================================


@Jean_debord

Tu peux t'en servir pour l'adapter en FBPANO, si tu veux bien, bien sûr!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1249
Age : 69
Localisation : Limoges
Date d'inscription : 21/09/2008

Automate cellulaire : simulation de feu de forêt Empty
MessageSujet: Re: Automate cellulaire : simulation de feu de forêt   Automate cellulaire : simulation de feu de forêt EmptyVen 3 Mar 2017 - 11:05

Oui je vais regarder cela Smile

Merci Papydall !

J'avais déjà lu quelque chose sur la simulation des feux de forêts mais je ne me rappelle plus où. Dans "Pour la Science" probablement... Je vais rechercher dans mes archives.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Ouf_ca_passe




Nombre de messages : 285
Age : 75
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

Automate cellulaire : simulation de feu de forêt Empty
MessageSujet: Re: Automate cellulaire : simulation de feu de forêt   Automate cellulaire : simulation de feu de forêt EmptyVen 3 Mar 2017 - 11:34

@ Papydall

Est-ce à dire qu'on peut arrêter le processus en créant les contre-feux dans les cases environnantes ou bien tout va cramer ?
Ceci en faisant abstraction du sens du vent et/ou de l'élévation de température qui compromettraient le modèle.
Et il y a probablement d'autres considérations. Je ne suis pas soldat du feu.

Bonne journée
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

Automate cellulaire : simulation de feu de forêt Empty
MessageSujet: re   Automate cellulaire : simulation de feu de forêt EmptyVen 3 Mar 2017 - 13:05

Très intéressant... Laughing
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Automate cellulaire : simulation de feu de forêt Empty
MessageSujet: Re: Automate cellulaire : simulation de feu de forêt   Automate cellulaire : simulation de feu de forêt EmptyVen 3 Mar 2017 - 13:05

Ouf_ca_passe a écrit:
Je ne suis pas soldat du feu.

Moi, non plus !
Dans l’état actuel du programme (qui n’est en fait qu’un simple essai) le processus s’arrête quand on appuie sur la touche <ESC> ou quand le feu s’arrête de lui-même : il n'y a plus de propagation du feu.
Plusieurs améliorations, selon votre imagination, sont possibles  pour agir sur la propagation du feu:
• Ajouter des clairières dans le décor
• Ajouter  une rigole ou un ruisseau
• Tenir compte du vent, de l’humidité ou de la sècheresse
• Etc.

Vous pouvez torturer vos claviers !Idea
C'est bon pour le moral bom

Edit : Yannick tu viens de me dépasser d'un poil Embarassed
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Automate cellulaire : simulation de feu de forêt Empty
MessageSujet: Re: Automate cellulaire : simulation de feu de forêt   Automate cellulaire : simulation de feu de forêt EmptyVen 3 Mar 2017 - 13:09

Très intéressant, belle démonstration papydall!
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Automate cellulaire : simulation de feu de forêt Empty
MessageSujet: Re: Automate cellulaire : simulation de feu de forêt   Automate cellulaire : simulation de feu de forêt EmptyVen 3 Mar 2017 - 13:10

Merci à vous tous.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Automate cellulaire : simulation de feu de forêt Empty
MessageSujet: Re: Automate cellulaire : simulation de feu de forêt   Automate cellulaire : simulation de feu de forêt Empty

Revenir en haut Aller en bas
 
Automate cellulaire : simulation de feu de forêt
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Une forêt (pas toute la forêt) pour faire plaisir à Minibug
» Où j'en suis ...
» Simulation de la fonction IIF
» API Windows
» Simulation d'un objet TreeView

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: