- Offizieller Beitrag
Hi,
danke für dein Feedback ytwinky. Ich werde mir deine Anmerkungen mal ansehen, wenn ich Zeit finde.
Endlich mal jemand der wirklich testet und konstruktive Hinweise gibt!
Kudos!
So long,
Mega
Hi,
danke für dein Feedback ytwinky. Ich werde mir deine Anmerkungen mal ansehen, wenn ich Zeit finde.
Endlich mal jemand der wirklich testet und konstruktive Hinweise gibt!
Kudos!
So long,
Mega
Hi th.meger,
Meine Lieblingsliste süchtig machender Spiele:
-Freecell
-Yahtzee(Mega)[obwohl noch nicht ganz fehlerfrei]
-Same
-Columns
-Moorhuhn
Nachdem ich 'nur' noch Alien 12 und Alien 11 rausspielen muß, bin ich ziemlich sicher,
daß die Straßenerkennung einen Fehler hat
(Achso, mein max. ist 322)
-Die Highscore-Liste würde ich sortiert in einem Array speichern..
(dann ist es leichter, zu erkennen, ob der Spieler sich überhaupt eintragen muß/kann, so kann dann auch die nicht nötige Meldung verhindert werden)
Sortieralgorithmen hat AutoIt eingebaut, QSort und BubbleSort habe ich hier gepostet(irgendwo)
Das ist nur meine Meinung als Spieler, der Programmierer bist Du!
Gruß
ytwinky
Hi,
super dass das Spiel dir so gut gefällt. Kannst du mir einen Screenshot schicken, falls du nochmal einen angeblichen Fehler in der Berechnung findest. Ich teste gerade seit 10 min., aber die Straßen werden immer korrekt berechnet.
Die HS in ein Array speichern? Ist doch schon. Du meinst noch einfacher als
If ControlGetText("", "", $point_PL) >= Int(StringMid($highScore_A[9], 1, 3))
So long,
Mega
Hier ein ScreenShot(KEIN Fake!!)
Es ist ohne Probleme möglich, den angezeigten Wurf als 'Große Straße' abzuspeichern(In diesem Fall wäre es eher 'Steiniger Gebirgspfad')
Zu dem Array-Problem bastel ich gerade eine anschauliche Darstellung..
(Muttu noch was warten..)
..genuch gewartet..
$fixDice1 = GUICtrlCreateMenuitem($language_A[61][1], $game)
$fixDice2 = GUICtrlCreateMenuitem($language_A[62][1], $game)
$fixDice3 = GUICtrlCreateMenuitem($language_A[63][1], $game)
$fixDice4 = GUICtrlCreateMenuitem($language_A[64][1], $game)
$fixDice5 = GUICtrlCreateMenuitem($language_A[65][1], $game)
könnte so ausssehen:
Es ergeben sich dann natürlich mindestens folgende Änderungen:
Case $msg[0] = $fixDice[1] Or $msg[0] = $dice1_B And $msg[1] = $GUI
fixDice1()
Case ($msg[0] = $fixDice[2] Or $msg[0] = $dice2_B) And $msg[1] = $GUI
fixDice2()
Case ($msg[0] = $fixDice[3] Or $msg[0] = $dice3_B) And $msg[1] = $GUI
fixDice3()
Case ($msg[0] = $fixDice[4] Or $msg[0] = $dice4_B) And $msg[1] = $GUI
fixDice4()
Case ($msg[0] = $fixDice[5] Or $msg[0] = $dice5_B) And $msg[1] = $GUI
fixDice5()
sowie
Dim $Label_A[49] = ['', $defaultstatus, $options, $restart, $undo, $highScore, $exit, $view, $hide, $language, _
$languageChoice, $help, $aboutGUI, $game_G, $dices_G, $numbers_G, $specials_G, _
$rolls_G, $totalPoints_G, $ones_L, $twos_L, $threes_L, $fours_L, $fives_L, $sixes_L, $bonus_L, $threeOK_L, _
$fourOK_L, $fullHouse_L, $shortRun_L, $longRun_L, $yahtzee_L, $chance_L, $roll_B, $rollsLeft_DL, _
$points_DL, $question, $bonusPoints_PL, $highScoreList, $save_B, $exit_B, $statuslabel, $game, $fixDice[6], $rollDice]
Interessant ist auch diese Überlegung:
Func fixDice($which)
If $diceArray_S[$which-1] <> 1 Then
GUICtrlSetStyle($dice_B[$which], $BS_ICON, $WS_EX_STATICEDGE)
GUICtrlSetState($dice_L[$which], $GUI_SHOW)
$diceArray_S[$which-1] = 1
Else
GUICtrlSetStyle($dice_B[$which], $BS_ICON + $WS_BORDER, "")
GUICtrlSetState($dice_L[$which], $GUI_DISABLE + $GUI_HIDE)
$diceArray_S[$which-1] = 0
EndIf
EndFunc ;==>fixDice
Alles anzeigen
Würde eine Menge an Code sparen, inwieweit sich das durchführen läßt, hängt davon ab, wie
weit ich mich in DEIN Spiel reinknie..
Es ist nun mal so, wie Murphy sagt:"Ein Programm ist nie fertig"
(Beweis: s. m$ :rofl2: )
So, und jetz isses wieder ganz dein Programm
Btw:
Ich rede nur von dem Skript, das du hier gepostest hast. In diesem habe ich auch schon einige
der genannten Änderungen vorgenommen, kann natürlich sein, daß in der Exe-Datei der Fehler
nicht auftritt(isser nämlich eben beim Probieren natürlich nicht..)
Das ist eben die Gefahr, wenn fremde Skripts einfach geändert werden:
Man tut des Guten manchmal zuviel: überoptimiert :rofl2:
Gruß
ytwinky
Hallo,
in der Funktion highScoreGUI ist auch noch ein kleiner Fehler:
If ControlGetText("", "", $point_PL) >= Int(StringMid($highScore_A[9], 1, 3)) And $finished = True Then
Es wird nur überprüft ob die erreichte Punktzahl höher oder gleich der auf Platz 10 ist. Gespeichert werden aber 12 Plätze, wenn meine Punktzahl also besser ist als Platz 11 oder 12 aber schlechter als Platz 10 wird sie nicht berücksichtigt!
besser wäre:
If ControlGetText("", "", $point_PL) >= Int(StringMid($highScore_A[UBound($highScore_A)-1], 1, 3)) And $finished = True Then
Der Fehler 'Steiniger Gebirgspfad' von ytwinky ist bei mir bisher noch nicht aufgetreten!
Ich habe soeben einen neuen Highscore erreicht: 332 :party4: :party3:
HI,
vielen Dank für eure Anmerkungen. Den Fehler mit dem Vergleich mit Platz 10 anstatt 12 hatte ich direkt nach dem ich es gepostet hatte schon selbst gefunden. :tongue:
Hmmh, manchmal ist die Frage, wie ich es schneller machen kann, meinetwegen kann der Code ruhig länger werden, hauptsache schnell.
Die HighScore dauert solange, weil er viele Stringoperationen machen muss, außerdem ist die Verschlüsselung und Entschlüsselung ziemlich langsam.
Die falsche Straßenbrechnung konnte ich bisher noch nicht nachvollziehen. Evtl. Muss ich mal einen Bot schreiben, der das spielt und überprüft.
Macht weiter so Jungs. So macht es wirklich Spaß!
Kudos!
So long,
Mega