Water hat Geburtstag!!!

  • Hey water alles Gute zum 53. Geburtstag (Ich hoffe ich habe mich nicht verrechnet)! Genieß den Tag!

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Vielen Dank für Eure Geburtstagswünsche!
    Ich werde mir heute auf jeden Fall etwas Wasser - Lebenswasser - in Form von Whisky einflössen. Ein paar gute Flaschen stehen in Sichtweite rum.
    Skripte, die ich heute oder morgen schreibe, könnt Ihr daher getrost in die Tonne treten :D

    chesstiger : 02:51 - stehst Du so früh auf oder warst Du noch gar nicht im Bett :?:

    • Offizieller Beitrag

    Hallo water,
    auch von mir Alle Gute.

    Und als Schmankerl gibt es eine Simulation deiner Geburtstagsparty, mußt nur noch deine Daten anpassen. :D

    Spoiler anzeigen
    [autoit]

    #include "AutoItObject.au3"

    [/autoit] [autoit][/autoit] [autoit]

    _AutoItObject_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    $o_water = _BirthdayPartyCreate('water')

    [/autoit] [autoit][/autoit] [autoit]

    $o_water.Gender = 'm'
    $o_water.Gewicht = 75

    [/autoit] [autoit][/autoit] [autoit]

    Local $sTimeLast, $indexDrink
    Local $Glas_Bier = 250, $ProzAlcBier = 5
    Local $Korn = 20, $ProzAlcKorn = 38
    Local $aDrink[2][2] = [[$Glas_Bier,$ProzAlcBier], [$Korn,$ProzAlcKorn]]

    [/autoit] [autoit][/autoit] [autoit]

    ; es geht los: ein Bier, hinterher ein Korn
    $o_water.Drink($Glas_Bier, $ProzAlcBier, '20:00')
    $o_water.Drink($Korn, $ProzAlcKorn, '20:05')
    $o_water.AnzahlBier = $o_water.AnzahlBier +1
    $o_water.AnzahlKorn = $o_water.AnzahlKorn +1
    $sTimeLast = '20:05'

    [/autoit] [autoit][/autoit] [autoit]

    ; und nun steigt die Party, Runde für Runde, alle 10 - 20 min wird getrunken
    ; mal ein Bier, mal ein Korn, rein zufällig -- aber bei 2,5 Promille ist Schluß ;)
    While $o_water.Promille <= 2.5
    $sTimeLast = _TimeAdd($sTimeLast, Random(10, 20, 1))
    $indexDrink = Random(0, 1, 1)
    $o_water.Drink($aDrink[$indexDrink][0], $aDrink[$indexDrink][1], $sTimeLast)
    If $indexDrink = 0 Then
    $o_water.AnzahlBier = $o_water.AnzahlBier +1
    Else
    $o_water.AnzahlKorn = $o_water.AnzahlKorn +1
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, 'Feierabend', 'Die Party ist beendet' & @CRLF & @CRLF & _
    'Die letzte Runde gab es um: ' & $sTimeLast & ' Uhr' & @CRLF & @CRLF & _
    'Pegelstand: ' & StringFormat('%.2f', $o_water.Promille) & ' ' & Chr(137) & @CRLF & @CRLF & _
    'getrunken wurden:' & @CRLF & _
    'Bier: ' & $o_water.AnzahlBier & @CRLF & _
    'Korn: ' & $o_water.AnzahlKorn )

    [/autoit] [autoit][/autoit] [autoit]

    Func _BirthdayPartyCreate($sName)
    Local $self = _AutoItObject_Create()
    _AutoItObject_AddProperty($self, 'Name', $ELSCOPE_READONLY, $sName)
    _AutoItObject_AddProperty($self, 'Gender', $ELSCOPE_PUBLIC, 'm')
    _AutoItObject_AddProperty($self, 'Gewicht', $ELSCOPE_PUBLIC, 85)
    _AutoItObject_AddProperty($self, 'tLastDrink', $ELSCOPE_PUBLIC, 0)
    _AutoItObject_AddProperty($self, 'Promille', $ELSCOPE_PUBLIC, 0)
    _AutoItObject_AddProperty($self, 'AnzahlBier', $ELSCOPE_PUBLIC, 0)
    _AutoItObject_AddProperty($self, 'AnzahlKorn', $ELSCOPE_PUBLIC, 0)
    _AutoItObject_AddMethod($self, 'Drink', "_DrinkAlc")
    Return $self
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _DrinkAlc(ByRef $self, $iMenge_ml, $iProzAlc, $iUhrZeit)
    #cs
    Widmark'sche Formel:

    [/autoit] [autoit][/autoit] [autoit]

    A Flüssigkeit in ml * Alkoholgehalt in % * 0.81
    /
    B Körpergewicht * 0.7 [w=0.6]
    C - Resorptionsdefizit
    D - Alkoholabbau
    = Blutalkoholgehalt in ‰
    #ce
    If $self.tLastDrink = 0 Then $self.tLastDrink = $iUhrZeit
    Local $iTimeDiff = _TimeDiff($self.tLastDrink, $iUhrZeit)
    Local $iFactor = 0.7
    If $self.Gender = 'w' Then $iFactor = 0.6
    Local $A, $B, $C, $D
    $A = $iMenge_ml * $iProzAlc / 100 * 0.81
    $B = $self.Gewicht * $iFactor
    $C = 0.2 * $A / $B
    $self.Promille = $self.Promille + ($A / $B - $C)
    $D = $iTimeDiff * 0.15
    If $D > 0 Then
    $self.Promille = $self.Promille - $D
    If $self.Promille < 0 Then $self.Promille = 0
    EndIf
    $self.tLastDrink = $iUhrZeit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _TimeDiff($t1, $t2)
    Local $iPos = StringInStr($t1, ':')
    If $iPos Then $t1 = StringLeft($t1, $iPos-1) + StringTrimLeft($t1, $iPos) * 1/60
    $iPos = StringInStr($t2, ':')
    If $iPos Then $t2 = StringLeft($t2, $iPos-1) + StringTrimLeft($t2, $iPos) * 1/60
    Local $iDiff = $t2 - $t1
    If $iDiff < 0 Then $iDiff = ($t2 + 24) - $t1
    Return $iDiff
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _TimeAdd($t1, $iDiff)
    Local $iPos = StringInStr($t1, ':')
    If $iPos Then $t1 = StringLeft($t1, $iPos-1) + StringTrimLeft($t1, $iPos) * 1/60
    $t1 += ($iDiff * 1/60)
    If $t1 >= 24 Then $t1 -= 24
    Local $iHour = Int($t1), $iMin = Ceiling(($t1 - $iHour) * 60)
    Return $iHour & ':' & StringFormat('%02d', $iMin)
    EndFunc

    [/autoit]
  • Alles Gute! :party:

    "Je mehr Käse, desto mehr Löcher; je mehr Löcher, desto weniger Käse. Ergo: Je mehr Käse, desto weniger Käse. 8| "
    "Programmers never die: they just GOSUB without RETURN"
    "I tried to change the world but I couldn't find the source code."

  • BugFix

    Danke für das Schmankerl!
    Meine Größe hast Du fast richtig erwischt: 184
    Die Party endet so gegen 02:00 nachts nach gut 15 Bier und 12 Korn. Mann bin ich breit 8)
    Also erst mal ausschlafen um den Alk wieder auf das normale Niveau (0,5%%) zu bringen.