Hallo liebe AutoIt-Gemeinde!
Ihr kennt warscheinlich das Kartenspiel "Watten". Ich würde gerne eine PC-version machen und hab irgendwie keinen Ansatz, wie ich:
1. die Karten nicht doppelt ausgebe,
2. welche Karte den Stich macht.
Ich will bitte erst noch mal keine Scripte, sonst lern ich ja nichts.
MfG. tobi_girst
Watten - Das Spiel von dem meine Klasse nicht genug bekommt! :D
-
- [ offen ]
-
tobi_girst -
28. Mai 2009 um 16:46 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Hallo
Nein ich kenn Watten nicht, liegt wohl daran, dass es "hauptsächlich in Bayern, Österreich, der Schweiz und Südtirol gespielt wird" (Zitat: Wiki)
Aber es gibt hier schon gute Scripte im Forum (irgendjemand hat sogar mal glaub ich ein Kartendeck UDF geschrieben)
Mfg Spider
-
Gefunden im englischen Forum! Aber das hilft mir nicht weiter.
Ich glaub, ich mach mir erstmal alles selber. Schritt für Schritt
1) Wie kann ich Dateinahmen zufallsgesteuert mischen, aber so dass keine doppelt kommt? ZB Array, mir "unter1.bmp", "unter2.bmp", ... drinnen?
Edit: Wer einen Scanner und Watterkarten (doppeldeutsch, 36 Blatt) hat, würde mich um f´jede Karte freuen! -
Watten?
Wir im Pott kennen nur WACKEN *fg*
Öhm ich meine unser "King of Array" aka BugFix hatte vor kurzem noch ein angepasstes Script/UDF hier geposted welches die Windowskarten "zur Verfügung" stellt.
Ich denke bei Fragen zur Programmierlogik ist ein wenig Quelltext hilfreich viel Spaß beim Coden...
-
Doppeldeutsche Spielkarten brauch ich, nicht die 'Solitär'-Karten
Brauche halt etwas QT bitte -
tach,
vielleicht hilfts dir ja.. 32 blatt -> http://upload.wikimedia.org/wikipedia/comm…c4/Huncards.jpg
watten spielt man bei uns aber mit 32 blatt... niederbayern
-
Doppeldeutsche Spielkarten brauch ich, nicht die 'Solitär'-Karten
Höh ? Doppeldeutsch ? Ich kenne Skat-Blätter und Poker/Romme/Bridge etc. beide kannste mit den Windows Karten / Farben ideal umsetzen *grübel*
Wenn dir das zu schwer ist, bastel dir ersteinmal ein Array mit allen Karten - wenn diese verteilt sind, kannste sie ja rauslöschen etc.
Wenn du das nicht alles im Kopf zusammen denken kannst, "male" ersteinmal schriftlich alle Schritte auf - Programmablauf, Module etc - diese kansnt du dann Step by Step codieren und später zusammenfügen, bzw erweitern.
-
@kal_el: Thx, aber da fehlt die "WELI" (Schell 6er)
ctec: thx, werd ich machen!
MfG. tobi_girst -
Speichere doch alle Daten in einem normalem Array, und dann nehme folgende Funktion:
[autoit]Local $temp[1] = [0], $X = 1
[/autoit][autoit][/autoit][autoit]
Local $numElements = Ubound($myArray) - 1
;Loop through all array elements
For $X = 1 to $numElements
;Store copy of current element
$temp[0] = $myArray[$X]
;MsgBox(0, 0, "$temp[0] = " & $myArray[$X])
$random = Random($X, $numElements, 1)
;MsgBox(0, 0, "Random number = " & $Random)
;Overwrite current element with random element
$myArray[$X] = $myArray[$random]
;MsgBox(0, 0, "$myArray[$X] = " & $myArray[$x] & " - swapped data w/ " & $random);Overwrite random element with original copy of current element
[/autoit]
$myArray[$random] = $temp[0]
Next
EndFunc ;==>ArrShuffleSo aus dem englischem Forum...
-
Karten gibt es bei http://commons.wikimedia.org/wiki/Category:…t_playing_cards vileicht
must sie dan aber zu jpg umwandeln -
muh_kuh: Danke, aber ich hab schon welche in der richtigen Größe!
@MattiasG.: Da fehlt die 1. Zeile (Func (..) -
So, ich hab jetz die 1. Zeile, der Code ist etwas verändert als deiner.(Link)
Aber wie verwende ich die Func? Wie soll ich sie einbauen?Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
Opt ("guicoordmode", 0)
$cards = _FileListToArray (@scriptdir & "\cards", "*.bmp", 1)
$card=$cards[Random (1, 32, 1)]
$back = "herz-ass.bmp"
$cardwidht = 50
$cardwidth = 129;150
$cardheight = 200$card_1 = "cards\" & $cards [Random (1, 32, 1)]
[/autoit] [autoit][/autoit] [autoit]
$card_2 = "cards\" & $cards [Random (1, 32, 1)]
$card_3 = "cards\" & $cards [Random (1, 32, 1)]
$card_4 = "cards\" & $cards [Random (1, 32, 1)]
$card_5 = "cards\" & $cards [Random (1, 32, 1)]GUICreate ("Watten - Programmiert von Tobias Girstmair (http://www.girstmair.tk)", 800-104, 800-50);, 0, 0)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel ("Derzeit nur Stich-Watten (Ohne Ansagen, ohne Spezial-Karten)", 0, 0)
GUICtrlCreatebutton ("", 25, 25, $cardwidth, $cardheight, 0x0080)
GUICtrlSetImage (-1, "cards\back\back.bmp")
GUICtrlCreatebutton ("", 129, 0, $cardwidth, $cardheight, 0x0080)
GUICtrlSetImage (-1, "cards\back\back.bmp")
GUICtrlCreatebutton ("", 129, 0, $cardwidth, $cardheight, 0x0080)
GUICtrlSetImage (-1, "cards\back\back.bmp")
GUICtrlCreatebutton ("", 129, 0, $cardwidth, $cardheight, 0x0080)
GUICtrlSetImage (-1, "cards\back\back.bmp")
GUICtrlCreatebutton ("", 129, 0, $cardwidth, $cardheight, 0x0080)
GUICtrlSetImage (-1, "cards\back\back.bmp")GUICtrlCreatebutton ("", -330, 250, $cardwidth, $cardheight, 0x0080)
[/autoit] [autoit][/autoit] [autoit]
;~ GUICtrlSetImage (-1, $cards[random (1, 31, 1)])
$card__2 = GUICtrlCreatebutton ("", 90, 05, $cardwidth, $cardheight, 0x0080)
;~ GUICtrlSetImage (-1, $cards[random (1, 31, 1)])$1 = GUICtrlCreatebutton ($card_1, -360+90-6, 250, $cardwidth, $cardheight, 0x0080)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetImage (-1, $card_1)
$2 = GUICtrlCreatebutton ($card_2, 129, 0, $cardwidth, $cardheight, 0x0080)
GUICtrlSetImage (-1, $card_2)
$3 = GUICtrlCreatebutton ($card_3, 129, 0, $cardwidth, $cardheight, 0x0080)
GUICtrlSetImage (-1, $card_3)
$4 = GUICtrlCreatebutton ($card_4, 129, 0, $cardwidth, $cardheight, 0x0080)
GUICtrlSetImage (-1, $card_4)
$5 = GUICtrlCreatebutton ($card_5, 129, 0, $cardwidth, $cardheight, 0x0080)
GUICtrlSetImage (-1, $card_5)GUICtrlCreateLabel ("0 : 0", 90, -20)
[/autoit]
GUISetState ()
While 1
Switch GUIGetMsg()
Case -3
Exit 0
Case $1
GUICtrlSetImage ($card__2, $card_1)
GUICtrlDelete ($1)
Case $2
GUICtrlSetImage ($card__2, $card_2)
GUICtrlDelete ($2)
Case $3
GUICtrlSetImage ($card__2, $card_3)
GUICtrlDelete ($3)
Case $4
GUICtrlSetImage ($card__2, $card_4)
GUICtrlDelete ($4)
Case $5
GUICtrlSetImage ($card__2, $card_5)
GUICtrlDelete ($5)
EndSwitch
WEnd
#Region Func
Func _ArrayShuffle(ByRef $aArray, $iBase = 0, $iUBound = Default)
If Not IsArray($aArray) Then Return SetError(1, 0, 0)
If UBound($aArray, 0) <> 1 Then Return SetError(2, 0, 0)
Local $temp, $rand
If $iUBound = Default Or $iUBound = 0 Then $iUBound = UBound($aArray) - 1
For $i = $iBase To $iUBound
$temp = $aArray[$i]
$rand = Random($iBase, $iUBound, 1)
$aArray[$i] = $aArray[$rand]
$aArray[$rand] = $temp
Next
EndFunc
#EndRegion Func
Momentan verwendet er einfach $cards[Random (1, 32, 1)]