noch einmal eine Frage zu Random

Hallo zusammen, meine Unwetter Simulation fürs Aquarium steht soweit. Jetzt hätte ich eine Frage. Da das Unwetter ja nicht jeden Tag sein soll :slight_smile: möchte ich gerne eine if Abfrage erstellen wo zufällig ein Tag aus dem Aktuellen Monat ausgewählt wird wann die Simulation laufen soll. Also ich frage über die RTC in meinem Programm wie folgt die Zeit und das Datum ab: datum[3] =stunden , datum[2] =minuten , datum[1] =sekunden , datum[4] = tage , datum[5] =monate , datum[6] =jahre. Ich möchte die if Abfrage so gestalten , wenn das der richtige weg ist..... if ((datum[5] < 13) and (datum[4] == random(1,31)) and (datum[3] == random(1,25)))
{
Ausführung der Simulation....
}
das jeden Monat an einem zufällig ausgewählten Tag, zur zufällig ausgewählten Stunde die Simulation ab läuft. Kann ich das so abfragen oder liege ich da Falsch. Ich bedanke mich schon einmal für Eure Hilfe.

l.G.Jürgen

Also ich habe bemerkt das es so nicht gehen kann, da jeder Monat unter 13 liegt und somit die Simulation bei jedem Durchlauf startet, da muss ich mir was anderes überlegen.

l.G.Jürgen

Probiers mal ungefähr so:

TageImMonat[]={31,28,31,30,...} //damit immer sicher ist, dass das Gewitter ausgelöst wird und nicht im Februar der 31. gewürfelt wird und dann erst im März das Unwetter kommt


if (gewitterflag == 0){   //ist schon ein Tag festgelegt?
  if ((datum[4]==1)&& (datum[3]==0)&&(datum[2]==0)){       //Monatsanfang wird gewürfelt    
    gewittertag=random(1,TageImMonat[datum[5]]+1);    //Wir suchen uns einen Tag
    gewitterstunde=random(0,25);  //und eine Stunde
    gewitterflag=1; //und sagen, dass wir gewürfelt haben.     
}
}

if ((datum[4]==gewittertag)&&(datum[3]==gewitterstunde)){ 
  lass_regnen();
  gewitterflag=0; //Gewitter vorbei, warte bis nächsten Monatsanfang
}

Im Fall, dass der 1. gewürfelt wird und Stunde 0, wird, wenn das Gewitter kürzer als eine Minute dauert nochmal gewürfelt, ansonsten sollte es nur einmal im Monat ausgelöst werden.

hi,

als aufgabe ja nett, aber Dir ist doch klar, daß Du beim gewitter zusehen willst (und wenn dann noch gäste da sind...).

gruß stefan

Einmal erst Danke für Deine Hilfe Smada

Eisebaer, Das mit dem Zuschauen ist mir nicht so wichtig, ich habe das schon so Oft gesehen. Mir geht es im Grunde darum , das Möglich zu machen. Wenn meine Gäste das sehen wollen und es wird Nacht darüber :slight_smile: dann müssen Sie bleiben, ich feiere gerne......

l.G.Jürgen

Ich hatte es jetzt so gelöst, das geht auch nur dann hat man immer an den 4 Tagen um die gleiche zeit das gewitter.
z.B. if ((tage == 7) or (tage == 14) or (tage == 21) or (tage == 28) and (stunden == 0) and (minuten == 15))

datum[4] , datum[5] und datum[6] wird von tage, stunden und Minuten übernommen, aber der Code von
Smada gefällt mir besser :slight_smile:

l.G.Jürgen

ich feiere gerne......

das hätt' ich jetzt von einem maler in rente nicht vermutet...

Du weist doch, je Öller je Döller...... Ich bin fast jedes Wochenende am Wohnwagen, da kommst Du um das Feiern garnicht rum..

l.G.Jürgen

TageImMonat[]={0,31,28,31,30,...}

Mir fällt gerade auf, da muss noch eine 0 oder so davor, oder im TageImMonat[datum[5]-1] ein -1, da man ja bei 0 anfängt zu zählen...

OK Danke für den Hinweis.