Is vielleicht nich so das beste hier aber kann ja noch werden^^
denke jeder weiß wie das dink funzt:)
Stadt, Land, Fluss -Generator
-
i7Clock -
10. August 2010 um 23:58
-
-
Das ist doch kein Stadt, Land, Fluss Generator eher ein ABC ausgeber oder so.
Aber sonst Ok! -
Wieso? Bei Stadt,Land, Fluss muss man doch die Sachen suchen die mit einem ausgewählten Buchstaben beginnen. Und damit niemand einen Buchstaben nennt nur weil er gerade besonders viel dazu kennt ist das Tool da....
@i7Clock
Vieleicht könntest du noch die Buchstaben aus dem Alphabet entfernen, wenn sie schonmal dran waren. -
es gibt den Befehl
[autoit]Chr()
[/autoit], der spart
-
@EM
es gibt den Befehl
[autoit]Chr()
[/autoit]
, der spart
ja, aber dann kann man es nicht so leicht an diesen Wunsch anpassenVieleicht könntest du noch die Buchstaben aus dem Alphabet entfernen, wenn sie schonmal dran waren.
Spoiler anzeigen
[autoit]#include <array.au3>
[/autoit] [autoit][/autoit] [autoit]GUICreate ("A-Z", 144, 35)
[/autoit] [autoit][/autoit] [autoit]
GUISetState (@SW_SHOW)
GUISetBkColor (0xAAAAAA)dim $array[26] = [ "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z" ], $i, $y
[/autoit] [autoit][/autoit] [autoit]
Global $AZ = GUICtrlCreateInput ("", 65, 5, 14)
Global $Start = GUICtrlCreateButton ("Start", 5, 5, 60, 25)
Global $Stopp = GUICtrlCreateButton ("Stopp", 79, 5, 60, 25)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg ()
if $nMsg = -3 Then Exit
If $Start = $nMsg Then
_AZ($AZ)
EndIf
WEndFunc _AZ($AZ)
[/autoit]
Do
$nMsg = GUIGetMsg ()
$y = Ubound($array)-1
$i = Round(Random (0, $y))
GUICtrlSetData ($AZ, $array[$i])
Until $Stopp = $nMsg
if $i > 0 Then
_ArrayDelete($array,$i)
Else
MsgBox(0,"Ende","alle Buchstaben waren 1mal dran!",5)
Exit
EndIf
EndFuncmfg (Auto)Bert
-
autoBert klar doch !
[autoit]
[/autoit][autoit][/autoit][autoit]
;65 to 90
#include <Misc.au3>
#include <Array.au3>
Global $Alphabet[26] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Global $Random, $AllNumbers = 0While 1
[/autoit][autoit][/autoit][autoit]
If _IsPressed("10") Then
Local $Chr = _RealRandomChr()
If @error = -1 Then MsgBox(0, "Error", "Alle Buchstaben bereits ausgewählt.")
If Not @error Then MsgBox(0, "Der CHR", $Chr)
EndIf
If _IsPressed("0D") Then _ArrayDisplay($Alphabet)
If _IsPressed("1B") Then Exit
WEndFunc _RealRandomChr()
[/autoit]
$Random = Random(0, 25, 1)
While 1
If $Alphabet[$Random] = 0 Then
$Alphabet[$Random] = 1
Return Chr($Random + 65)
ExitLoop
ElseIf $Alphabet[$Random] = 1 Then
If _CountArray($Alphabet) = 26 Then
SetError(-1)
ExitLoop
EndIf
$Random = Random(0, 25, 1)
EndIf
WEnd
EndFunc ;==>_RealRandomChr
Func _CountArray($Array)
Local $ArrayCount = 0
For $i = 0 To UBound($Array) - 1
$ArrayCount = $ArrayCount + $Array[$i]
Next
Return $ArrayCount
EndFunc ;==>_CountArray
(noch mal verkürzt) -
Besser !
[autoit]Func _CountArray(ByRef $Array)
[/autoit]
Local $ArrayCount = 0
For $i = 0 To UBound($Array) - 1
$ArrayCount += $Array[$i]
Next
Return $ArrayCount
EndFunc ;==>_CountArray -
ja, aber dann kann man es nicht so leicht an diesen Wunsch anpassen
autoBert klar doch !
das ist nicht angepasst, Gui fehlt und trotzdem länger
mfg (Auto)Bert
-
Als "Stringfreak" kommen mir keine Arrays ins Haus!^^
[autoit]$Buchstaben = "abcdefghijklmnopqrstuvwxyz"
[/autoit][autoit][/autoit][autoit]Do
[/autoit][autoit][/autoit][autoit]
$erg = _BuchstabeRandom($Buchstaben) ;einen zufälligen Buchstaben aus der Liste holen
Until ConsoleWrite($erg) = 0 ;so lange, bis die Liste leer ist, Buchstaben in die Console schreiben
ConsoleWrite(@CRLF) ;damit es auch schön aussieht^^Func _BuchstabeRandom(ByRef $Buchstaben)
[/autoit]
Local $ret = StringMid($Buchstaben, Random(1, StringLen($Buchstaben), 1), 1) ;zufälligen Buchstaben...
$Buchstaben = StringReplace($Buchstaben, $ret, "", 1, 1) ;...aus der Liste löschen
Return $ret ;zufälligen Buchstaben zurückgeben
EndFunc ;==>_BuchstabeRandom