Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MODULE MÉTÉO (NURMITE)


Information sur la source

Catégorie :Projet NURMITES Classé sous : module, météo, nurmite Niveau : Débutant Date de création : 17/07/2001 Date de mise à jour : 18/07/2001 00:00:00 Vu : 9 244

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Description

Voici mon deuxième essai de module, ici pour la météo. Pour utuiliser ce module, il faut commencer par l'initialiser avec la procédure idoine. Ensuite, à chaque cycle on appelle la procédure CycleMeteo() qui se charge de faire changer les conditions climatiques.

Euh, j'ai modifié le code juste pour l'énumération des directions... je l'ai encore modifié pour ôter quelques bugs après tests...
 

Source

  • 'Directions possible (8)
  • Const Nord = 0
  • Const NE = 1
  • Const Est = 2
  • Const SE = 3
  • Const Sud = 4
  • Const SO = 5
  • Const Ouest = 6
  • Const NO = 7
  • Public Enum Direction
  • Nord
  • NE
  • Est
  • SE
  • Sud
  • SO
  • Ouest
  • NO
  • End Enum
  • 'Période maximale possible
  • Const MaxPeriode = 511
  • Public Type Meteo
  • Wind_Speed As Integer
  • Wind_Direction As Direction
  • Light As Boolean
  • Rain As Boolean
  • End Type
  • Private Periode_DayNight As Integer
  • Private Periode_Rain As Integer
  • Public MapMeteo As Meteo
  • Public Sub InitializeMeteo(Alea As Boolean, Optional WindSpeed As Integer, Optional WindDirection As Direction, Optional Light As Boolean, Optional Rain As Boolean, Optional PeriodeDayNight As Integer, Optional PeriodeRain As Integer)
  • 'alea permet de générer des conditions climatiques aléatoires
  • If Alea = True Then
  • 'initialise le générateur de nombres aléatoires.
  • Randomize
  • MapMeteo.Wind_Speed = Int(Rnd * 11)
  • MapMeteo.Wind_Direction = Int(Rnd * 8)
  • If Int(Rnd * 2) = 1 Then MapMeteo.Light = True Else MapMeteo.Light = False
  • If Int(Rnd * 2) = 1 Then MapMeteo.Rain = True Else MapMeteo.Rain = False
  • Periode_DayNight = Int(Rnd * MaxPeriode + 1)
  • Periode_Rain = Int(Rnd * MaxPeriode + 1)
  • Else
  • 'dans le cas contraire, on utilise les paramètres optionnels
  • MapMeteo.Wind_Speed = WindSpeed
  • MapMeteo.Wind_Direction = WindDirection
  • MapMeteo.Light = Light
  • MapMeteo.Rain = Rain
  • Periode_DayNight = PeriodeDayNight
  • Periode_Rain = PeriodeRain
  • End If
  • End Sub
  • Public Sub CycleMeteo()
  • Dim sens As Byte
  • 'initialise le générateur de nombres aléatoires.
  • Randomize
  • 'tirage d'un nombre aléatoire parmi {-1, 0, 1}
  • sens = Int(Rnd * 3) - 1
  • 'changement de la direction du vent
  • 'le modulo 8 permet de passer de 7 à 0 (8 Mod 8 = 0)
  • MapMeteo.Wind_Direction = (MapMeteo.Wind_Direction + sens) Mod 8
  • If MapMeteo.Wind_Speed = 0 Then
  • 'tirage d'un nombre aléatoire parmi {0, 1}
  • sens = Int(Rnd * 2)
  • MapMeteo.Wind_Speed = MapMeteo.Wind_Speed + sens
  • ElseIf MapMeteo.Wind_Speed = 10 Then
  • 'tirage d'un nombre aléatoire parmi {-1, 0}
  • sens = -Int(Rnd * 2)
  • MapMeteo.Wind_Speed = MapMeteo.Wind_Speed + sens
  • Else
  • 'tirage d'un nombre aléatoire parmi {-1, 0, 1}
  • sens = Int(Rnd) * 2 - 1
  • MapMeteo.Wind_Speed = MapMeteo.Wind_Speed + sens
  • End If
  • 'Cette partie génère des périodes de nuit et de pluie
  • 'Le temps restant est décrémenté à chaque cycle. lorsqu'il
  • 'arrive à zéro, on génère une nouvelle période aléatoirement.
  • Periode_DayNight = Periode_DayNight - 1
  • 'si la période est écoulée, alors on tire un moment (jour/nuit)
  • If Periode_DayNight <= 0 Then
  • Periode_DayNight = Int(Rnd * MaxPeriode + 1)
  • If Int(Rnd) = 1 Then Light = True Else Light = False
  • End If
  • Periode_Rain = Periode_Rain - 1
  • 'si le temps est écoulé, alors on tire un temps (pluie ou pas)
  • If Periode_Rain <= 0 Then
  • Periode_Rain = Int(Rnd * MaxPeriode + 1)
  • If Int(Rnd) = 1 Then Rain = True Else Rain = False
  • End If
  • End Sub
  • 'Retourne la vitesse du vent ( 0-10 )
  • Public Function GetWindSpeed() As Integer
  • GetWindSpeed = MapMeteo.Wind_Speed
  • End Function
  • 'Retourne la direction du vent ( type direction )
  • Public Function GetWindDirection() As Direction
  • GetWindDirection = MapMeteo.Wind_Direction
  • End Function
  • 'Retourne TRUE si il fait nuit, retourne FALSE si il fait jour.
  • Public Function IsNight() As Boolean
  • IsNight = Not (MapMeteo.Light)
  • End Function
  • 'Retourne TRUE si il pleut.
  • Public Function IsRaining() As Boolean
  • IsRaining = EnvMeteo.Rain
  • End Function
'Directions possible (8)
Const Nord = 0
Const NE = 1
Const Est = 2
Const SE = 3
Const Sud = 4
Const SO = 5
Const Ouest = 6
Const NO = 7

Public Enum Direction
    Nord
    NE
    Est
    SE
    Sud
    SO
    Ouest
    NO
End Enum
 
'Période maximale possible
Const MaxPeriode = 511

Public Type Meteo
    Wind_Speed As Integer
    Wind_Direction As Direction
    Light As Boolean
    Rain As Boolean
End Type

Private Periode_DayNight As Integer
Private Periode_Rain As Integer

Public MapMeteo As Meteo

Public Sub InitializeMeteo(Alea As Boolean, Optional WindSpeed As Integer, Optional WindDirection As Direction, Optional Light As Boolean, Optional Rain As Boolean, Optional PeriodeDayNight As Integer, Optional PeriodeRain As Integer)
    'alea permet de générer des conditions climatiques aléatoires
    If Alea = True Then
        'initialise le générateur de nombres aléatoires.
        Randomize
        MapMeteo.Wind_Speed = Int(Rnd * 11)
        MapMeteo.Wind_Direction = Int(Rnd * 8)
        If Int(Rnd * 2) = 1 Then MapMeteo.Light = True Else MapMeteo.Light = False
        If Int(Rnd * 2) = 1 Then MapMeteo.Rain = True Else MapMeteo.Rain = False
        Periode_DayNight = Int(Rnd * MaxPeriode + 1)
        Periode_Rain = Int(Rnd * MaxPeriode + 1)
    Else
        'dans le cas contraire, on utilise les paramètres optionnels
        MapMeteo.Wind_Speed = WindSpeed
        MapMeteo.Wind_Direction = WindDirection
        MapMeteo.Light = Light
        MapMeteo.Rain = Rain
        Periode_DayNight = PeriodeDayNight
        Periode_Rain = PeriodeRain
    End If
End Sub

Public Sub CycleMeteo()
    Dim sens As Byte
    'initialise le générateur de nombres aléatoires.
    Randomize
    'tirage d'un nombre aléatoire parmi {-1, 0, 1}
    sens = Int(Rnd * 3) - 1
    'changement de la direction du vent
    'le modulo 8 permet de passer de 7 à 0 (8 Mod 8 = 0)
    
    MapMeteo.Wind_Direction = (MapMeteo.Wind_Direction + sens) Mod 8
    
    If MapMeteo.Wind_Speed = 0 Then
        'tirage d'un nombre aléatoire parmi {0, 1}
        sens = Int(Rnd * 2)
        MapMeteo.Wind_Speed = MapMeteo.Wind_Speed + sens
    ElseIf MapMeteo.Wind_Speed = 10 Then
        'tirage d'un nombre aléatoire parmi {-1, 0}
        sens = -Int(Rnd * 2)
        MapMeteo.Wind_Speed = MapMeteo.Wind_Speed + sens
    Else
        'tirage d'un nombre aléatoire parmi {-1, 0, 1}
        sens = Int(Rnd) * 2 - 1
        MapMeteo.Wind_Speed = MapMeteo.Wind_Speed + sens
    End If
    
    'Cette partie génère des périodes de nuit et de pluie
    'Le temps restant est décrémenté à chaque cycle. lorsqu'il
    'arrive à zéro, on génère une nouvelle période aléatoirement.
    Periode_DayNight = Periode_DayNight - 1
    'si la période est écoulée, alors on tire un moment (jour/nuit)
    If Periode_DayNight <= 0 Then
        Periode_DayNight = Int(Rnd * MaxPeriode + 1)
        If Int(Rnd) = 1 Then Light = True Else Light = False
    End If
    
    Periode_Rain = Periode_Rain - 1
    'si le temps est écoulé, alors on tire un temps (pluie ou pas)
    If Periode_Rain <= 0 Then
        Periode_Rain = Int(Rnd * MaxPeriode + 1)
        If Int(Rnd) = 1 Then Rain = True Else Rain = False
    End If
End Sub

'Retourne la vitesse du vent ( 0-10 )
Public Function GetWindSpeed() As Integer
    GetWindSpeed = MapMeteo.Wind_Speed
End Function

'Retourne la direction du vent ( type direction )
Public Function GetWindDirection() As Direction
    GetWindDirection = MapMeteo.Wind_Direction
End Function
 
'Retourne TRUE si il fait nuit, retourne FALSE si il fait jour.
Public Function IsNight() As Boolean
    IsNight = Not (MapMeteo.Light)
End Function

'Retourne TRUE si il pleut.
Public Function IsRaining() As Boolean
    IsRaining = EnvMeteo.Rain
End Function

Conclusion

Vlà, dites-moi ce qui est bien et ce qui l'est moins.
Je pensais aussi que l'on pourrai facilement faire intervenir la température dans les conditions climatiques.
 

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Nurmite: le module ROUTE [ par Sylderon ] Bonjour à tous.J'ai vu récemment ce projet et décidé de vous donner un coup de main.Aussi je vous propose de m'occuper du module ROUTE pour élaborer d .: module Abandon :. [ par El Manipulator [Le vrai Le seul L'unique ] ] ben c'est moi, et je vous présente le nouveau module que j'ai mis tant de temps a développer. Le module Abandon.Le concept de base de ce module consis Module ROUTE [ par Sylderon ] Une première intégration de calcul d'itinéraire est dispo en zone download.C'est un début et je continue de travailler dessus.A+ c2i.fr - Module Route : GRRRRRRR...... [ par c2i-Richard Clark ] Je me balade ce dimanche sur ce site du cher Nix.Je vois à ce moment le projet Nurmite dont je trouve l'idée fort sympathique .Je regarde les différen insertion de SQL dans un module [ par Mary ] re-bonjour...je voudrais savoir si l'insertion de SQL dans un module d'un projet en vb6 est possible...en fait vb semble reconnaître le sql qd on l'in Debut du Module de cerveau [ par ToasTy ] J'ai mis le debut du module de erveau que je suis en train de faire mais je le continuerai que si j'ai des avis positifs...J'ai pas mal d'idees mais s A propos du module de cerveau...(à lire !!!) [ par ToasTy ] Bon j'avais pas tenu compte du module dans le projet, mais maintenant je suis en train d'arranger tout ca.Par contre j'ai besoin de plusieurs chose : bye bye! [ par BlackWizzard ] j'abandonne le projet nurmite...ça fait 2 semaines au moins que VB6 n'a pas été ouvert une seul fois!je suis en train d'apprendre de nouveaux language Module standard PUBLIC dans une dll AciveX ? [ par VaLi ] HELP ME !!Je charche à déclarer un module standard (.bas) public (ou global) dans une DLL ActiveX. Même en tripatouillant et en ajoutant des Attribute Module Memoire : correctif ... [ par tartempion ] Je vais aller Uploader une version corrigée du mod memoire: - ajout d'une procédure Oubli() Et un correctif pour l'appel des autres fonctions du mod


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.