Hallo
Stimmt, hast wohl Recht. 149 Sekunden brauch er bei mir (Core2Quad q6600 @ 2,8ghz, 4gig ram und halt x64. Wird aber halt nur 25% CPU benutzt, weil AutoIt ja leider kein Multithreading beherrscht.)
MfG Spider
Hallo
Stimmt, hast wohl Recht. 149 Sekunden brauch er bei mir (Core2Quad q6600 @ 2,8ghz, 4gig ram und halt x64. Wird aber halt nur 25% CPU benutzt, weil AutoIt ja leider kein Multithreading beherrscht.)
MfG Spider
Hallo
Ich bekomme bei 1.000.000 Ziehungen folgendes Ergebnis (hab nicht so ein Glück )
2572 x 3 Richtige
149 x 4 Richtige
5 x 5 Richtige
0 x 6 Richtige
Was mich auch mal interessieren würde: Wie lange braucht er bei euch für 1.000.000 Ziehungen? Hab grad Windows XP x64 drauf gespielt und wollt mal gucken ob das Teil wrkl schneller ist
Mfg Spider
Edit: Aha? Das ist interessant, wenn ich die Zahlen 1-6 nehme komme ich zu folgendem Ergebnis:
1038 x 3 Richtige
61 x 4 Richtige
2 x 5 Richtige
0 x 6 Richtige
Mh, ist der Zufallsalgo wohl doch nicht so Zufällig wie immer gedacht ;P
HAllo
Schonmal google gefragt? Als beispiel könntest du Google ja FTP Tutorial DynDns oder sowas in der Art fragen...
Außerdem hat das nichts mit AutoIt zutun, ergo wird es nach Off Topic verschoben
Edit: Aber nicht von mir, das Teil spinnt mal wieder und sagt ich hätte keine Rechte. Wo ist pee wenn man ihn braucht?
Mfg Spider
Hallo
Bei dieser Version sieht man wie oft 3,4,5 und 6 mal getroffen wurde.
Diesmal kann die schleife nur mit ESC beendet werden!
ScreenShot:
autoit.de/wcf/attachment/4479/
#include <ComboConstants.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
Opt('GUIOnEventMode', 1)
Global $aLottoNum[49], $timer, $bBreak = False,$iCount = 0,$hListV_3,$hListV_4,$hListV_5,$hListV_6
For $i = 1 To 49
$aLottoNum[$i - 1] = $i
Next
GUICreate('Lottogewinn 6 aus 49', 510, 380)
GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
GUISetBkColor(0xaaaaaa)
HotKeySet('{ESC}', '_Break')
Global $ahCheck[49]
For $i = 0 To 48
$ahCheck[$i] = GUICtrlCreateCheckbox($i + 1, 20 + Mod($i, 7) * 70, 10 + Int($i / 7) * 30, 60, 25)
GUICtrlSetOnEvent(-1, '_CheckboxCounter')
Next
;~ $hMatch = GUICtrlCreateCombo('3 Richtige', 10, 240, 75, 25, $CBS_DROPDOWNLIST)
;~ GUICtrlSetData(-1, '4 Richtige|5 Richtige|6 Richtige', '5 Richtige')
;~ GUICtrlSetTip(-1, 'Abbruchbedingung auswählen!')
$hStart = GUICtrlCreateButton('Start', 10, 335, 490, 20)
GUICtrlSetOnEvent(-1, '_Start')
GUICtrlSetState($hStart, $GUI_DISABLE)
GUICtrlCreateLabel('Anzahl der Ziehungen:', 150, 242, 130, 25)
GUICtrlSetFont(-1, 10, 400)
$hListV = GUICtrlCreateListView("Richtige|Anzahl",10,230,490,100)
For $i = 3 To 6
Assign("hListV_"&$i,GUICtrlCreateListViewItem($i&"|0",$hListV))
Next
$hStatus = GUICtrlCreateLabel(' 6 Zahlen auswählen!', 0, 360, 510, 20)
GUICtrlSetBkColor(-1, 0xeeeeee)
GUICtrlSetFont(-1, 12, 400)
GUISetState()
While True
Sleep(10)
WEnd
Func _End()
Exit
EndFunc ;==>_End
Func _Break()
$bBreak = True
EndFunc ;==>_Break
Func _Start()
Local $aTip[6], $aDraw, $iWin = StringLeft(6, 1),$i3,$i4,$i5,$i6
$iCount = 0
;~ GUICtrlSetState($hMatch, $GUI_DISABLE)
GUICtrlSetState($hStart, $GUI_DISABLE)
For $i = 0 To 48
If BitAND(GUICtrlRead($ahCheck[$i]), $GUI_CHECKED) Then
$aTip[$iCount] = $i + 1
$iCount += 1
EndIf
Next
$iCount = 0
GUICtrlSetData($hStatus, ' Bitte warten...')
$timer = TimerInit()
AdlibEnable('_DisplayTimer', 500)
Do
$iCount += 1
;~ If $iCount / 500 = Int($iCount / 500) Then GUICtrlSetData($hDrawCount, $iCount)
$aDraw = _Lottodraw()
Switch _Win($aTip, $aDraw)
Case 3
$i3 += 1
GUICtrlSetData($hListV_3,"3|"&$i3)
Case 4
$i4 += 1
GUICtrlSetData($hListV_4,"4|"&$i4)
Case 5
$i5 += 1
GUICtrlSetData($hListV_5,"5|"&$i5)
Case 6
$i6 += 1
GUICtrlSetData($hListV_6,"6|"&$i6)
EndSwitch
Until $bBreak
If Not $bBreak Then
GUICtrlSetData($hStatus, ' Gewonnen!')
MsgBox(0, 'Lottogewinn', 'Hurra, ' & $iWin & ' Richtige!' & @CRLF & 'Anzahl der Ziehungen: ' _
& $iCount & @CRLF & 'Benötigte Zeit: ' & Round(TimerDiff($timer) / 1000, 3) & ' sek.')
EndIf
$bBreak = False
GUICtrlSetData($hStatus, ' Start-Button anklicken!')
;~ GUICtrlSetState($hMatch, $GUI_ENABLE)
GUICtrlSetState($hStart, $GUI_ENABLE)
AdlibDisable()
EndFunc ;==>_Start
Func _DisplayTimer()
GUICtrlSetData($hStatus, ' Bitte warten... Benötigte Zeit: ' & Int(TimerDiff($timer) / 1000) & ' sek. ('&$iCount&' Ziehungen)')
EndFunc ;==>_DisplayTimer
Func _Lottodraw()
Local $aTmp = $aLottoNum, $aDraw[6], $iTmp
For $i = 0 To 5
$iRandom = Random(0, 48 - $i, 1)
$aDraw[$i] = $aTmp[$iRandom]
$aTmp[$iRandom] = $aTmp[48 - $i]
Next
_ArraySort($aDraw)
Return $aDraw
EndFunc ;==>_Lottodraw
Func _Win($aTip, $aDraw)
Local $iCount = 0
For $i = 0 To 5
If $aTip[$i] = $aDraw[$i] Then $iCount += 1
Next
Return $iCount
EndFunc ;==>_Win
Func _CheckboxCounter()
Local $iCount = 0
For $i = 0 To 48
$iCount += BitAND(GUICtrlRead($ahCheck[$i]), $GUI_CHECKED)
Next
GUICtrlSetData($hStatus, ' ' & 6 - $iCount & ' Zahlen auswählen!')
If $iCount = 6 Then
_CheckboxState($GUI_DISABLE)
GUICtrlSetState($hStart, $GUI_ENABLE)
GUICtrlSetData($hStatus, ' Start-Button anklicken!')
Else
_CheckboxState($GUI_ENABLE)
GUICtrlSetState($hStart, $GUI_DISABLE)
EndIf
EndFunc ;==>_CheckboxCounter
Func _CheckboxState($State)
For $i = 0 To 48
If BitAND(GUICtrlRead($ahCheck[$i]), $GUI_UNCHECKED) Then GUICtrlSetState($ahCheck[$i], $State)
Next
EndFunc ;==>_CheckboxState
Mfg Spider
Hallo
Nur weil etwas mit GDI geht, heißt es nicht automatisch dass es mit GDI+ auch gehen muss.
Aber du willst AutoIt "befehle"? Bitte:
_WinAPI_CreateRectRgn
_WinAPI_CreateRoundRectRgn
_WinAPI_CombineRgn
_WinAPI_SetWindowRgn
Diese 4 einfach durch die DllCalls ersetzen Ob das nun aber so viel bringt, außer vlt Script Schönheit...
Mfg Spider
Hallo
Und warum mit GDI+?
Mfg Spider
Hallo
Ist aber schon blöd, wenn man auf seiner Uhr unten rechts 21:30 stehen hat, und in der GUI noch 21:29 :p Ich meine 500 ms kann man sehen..
Bei maximal 50 ms (also Sleep(100)) wird das schon schwerer Und das macht wirklich keinen Unterschied wenn es bei einem GuiCtrlSetData bleibt.
10x Resourcensparener stimmt auch nicht, da das Exponentiell ist. Ist dem PC doch egal, ob der 100 ms wartet oder 1000 ms wartet. Wie willst du nachmessen, dass er mehr CPU oder GPU oder was auch immer braucht?
Gruß zurück @pee
Mfg Spider
Hallo
Es ist sowas von egal, ob du nun 1000 oder 100 nimmst. Erst dadrunter kann das Label auf alten PC's anfangen zu flickern
Problem bei 1000 ist, dass du nicht auf die Sekunde genau bist. Kann ja sein das die Sekunde jetzt schon umspringt, aber das SCript das erst in beispielsweise 900ms "mitbekommt"
Mfg Spider
Hallo
Wiso?
Da musst' ich doppelt schmunzeln
Aber zum Thema:
Auch auf die Gefahr hin, dass ich dich jetzt komplett verwirre Das funktioniert auch:
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
Opt("GuiOnEventMode",1)
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 478, 373, 284, 192)
$Image1 = GUICtrlCreatePic("", 56, 24, 161, 129, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Button1 = GUICtrlCreateButton("x1", 352, 24, 113, 41, 0)
$Button2 = GUICtrlCreateButton("2", 184, 248, 113, 41, 0)
$Button3 = GUICtrlCreateButton("3", 184, 192, 113, 41, 0)
$Button4 = GUICtrlCreateButton("4", 56, 248, 113, 41, 0)
$Button5 = GUICtrlCreateButton("5", 56, 192, 113, 41, 0)
$Button6 = GUICtrlCreateButton("6", 312, 192, 113, 41, 0)
$Button7 = GUICtrlCreateButton("7", 56, 304, 113, 41, 0)
$Button8 = GUICtrlCreateButton("8", 184, 307, 113, 41, 0)
$Button9 = GUICtrlCreateButton("9", 312, 248, 113, 41, 0)
$Button10 = GUICtrlCreateButton("10", 312, 304, 113, 41, 0)
$Button11 = GUICtrlCreateButton("11", 237, 25, 113, 41, 0)
$Label1 = GUICtrlCreateLabel("Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC, 256, 96, 145);<== Die aktuelle Zeit soll hintern dem "Zeit:" stehn
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE,"_exit")
#EndRegion ### END Koda GUI section ###
While 1
GuiCtrlSetData($Label1, "Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC)
Sleep(250)
WEnd
Func _exit()
Exit
EndFunc
Mfg Spider
Hallo
Du wärst ja auch nicht der Erste, der das in AutoIt geschrieben und auch schon veröffentlicht hat
Mfg Spider
Hallo
Danke für den Beitrag Alina aber was gibts da zu diskutieren?
Das was du geschrieben hast entspricht 100% der Wahrheit, leder nicht 100% der Realität..
Grundlegende neue Regeln werden von Pee aber auch immer noch auf der Hauptseite unter Nachrichten angekündigt (letzes Beispiel: Signaturen)
Mfg Spider
Hallo
Ne früher brauchte man noch kein TCPStartup.. glaub ich
Wie gesagt, schon steinalt das Teil..
Mfg Spider
`Hallo
Haben wir letztens erst durchgeführt, so eine Reinigung (vor nem halben Jahr :D)
Habt aber Recht, währe mal wieder notwendig. Das macht am besten Gun-Food wenn der Zeit hat.
Mfg Spider
Hallo
Tut mir leid, das ist ein geschlossenes Projekt. Ist aber auch nichts aufregendes was man zeigen könnte. Halt ein Windows Media Player Objekt mit einem Logschreiber (in eine TXT Datei).
Mfg Spider
Hallo
Komisch, ich hatte auch sofort pee unter Verdacht
Mfg Spider
Hallo
Oder einfach ganz weg damit und Bot Threads ganz einfach schließen oder ggf. löschen/in den Papierkorb verschieben (falls WBB3 sowas hat?)
Mfg Spider
Hallo
Hübsch BitBoy, ich bin auch kein Fan von WMI
Aber deine Funktion brauch bei mir leider eine halbe Sekunde (500 ms) während die Version mit WMI und Refresher nur 2ms braucht..
Mfg Spider
Hallo
Oscar : Gefährlich, automatisieren würde ich sowas nicht glaub ich eher nicht
Andy: Jup, schöne Geschichte, die sich leider nur zu oft bewahrheitet
Natürlich werden sie alles abnicken, aber ich denke die meisten Scr1pt0r-Kiddies schaffen es nochnicht mal diese einfache Frage zu beantworten. Ganz einfach weil sie zu dumm dafür sind
Ich meine, abschalten werden wir das wohl nie können, aber zumindest verringern. Und da finde ich die Idee von levithan und von Tweaky nicht schlecht!
Mfg Spider