Wer wird Millionär ?

  • Also, wie manche vielleicht schon gesehen haben in einem anderem Thread, bastle ich ein wenig an dem Spiel "Wer wird Millionär". Ist auch fast alles schön und gut. Jedoch habe ich zurzeit 2 Probleme.

    Wer die Bilder auch noch haben will, gibts alles als komplettpaket: Download Link

    1. Problem: Das mit dem Random ist nicht so toll, da manche Fragen Doppelt vorkommen können. Ich habe schon wie ihr seht, ausgeschlossen, dass 2x hintereinander die selbe Frage kommt. Jedoch kann nach 1Runde dann wieder die vorletzte Frage drankommen. (Habe Probiert es zu Lösen (Siehe Codestelle mit Problem 1)

    2. Problem: Ich möchte die Funktion eines 50-50 Jokers einbauen, Jedoch fehlt mir der Ansatz, um 2 Random Antwortmöglichkeiten zu Deleten / Hiden, wobei diese nicht der Antwortmöglichkeit entsprechen darf.

    Hoffe es ist verständlich genug, ansonsten nachfragen.

    Danke schon einmal für eure Hilfe


    MfG SiLenCa

    Hier einmal der Code:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\..\..\Eigene Dateien\Eigene Bilder\millionaer.ico
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>

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

    ;Variablen deklarierung
    Global $ini = @ScriptDir & "\Daten.ini", $splash = @ScriptDir & "\Millionär.jpg", $bkgr = @ScriptDir & "\a.jpg", $var = IniReadSection(@ScriptDir & "\Daten.ini", "Fragen")
    Global $Antwort[5], $e, $question, $str, $y = 315, $Euro = "0 Euro", $lastquestion, $Count = 1, $save[9999]
    ;<==

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

    If $var = 1 Then
    MsgBox(0, "Fehler", "Datei 'Daten.ini konnte nicht gelesen werden." & @CRLF & "Bitte überprüfen Sie, ob sich die Datei im Ordner Befindet.")
    Exit
    EndIf

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

    ;Splash
    SplashImageOn("", $splash, 320, 322, -1, -1, 1)
    Sleep(1500)
    SplashOff()
    ;<==

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

    ;Main Gui
    GUICreate("Wer wird Millionär", 631, 378)
    GUICtrlCreatePic($bkgr, 0, 0, 631, 378)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetFont(15)
    $Frage = GUICtrlCreateEdit("", 50, 235, 390, 47, $ES_READONLY, 0) ;Feld für Frage
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUISetFont(12)
    $Antwort[1] = GUICtrlCreateLabel("", 63, 300, 155, 23) ;Feld für Antwort A
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $A = GUICtrlCreateLabel("", 30, 294, 195, 37) ;Soll auf Klick reagieren
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_ONTOP)
    $Antwort[2] = GUICtrlCreateLabel("", 63, 337, 155, 23) ;Feld für Antwort B
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $B = GUICtrlCreateLabel("", 30, 331, 195, 37) ;Soll auf Klick reagieren
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_ONTOP)
    $Antwort[3] = GUICtrlCreateLabel("", 295, 300, 155, 23) ;Feld für Antwort C
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $C = GUICtrlCreateLabel("", 262, 294, 195, 37) ;Soll auf Klick reagieren
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_ONTOP)
    $Antwort[4] = GUICtrlCreateLabel("", 295, 337, 155, 23) ;Feld für Antwort D
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $D = GUICtrlCreateLabel("", 262, 331, 195, 37) ;Soll auf Klick reagieren
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_ONTOP)
    GUISetFont(20)
    $Geld = GUICtrlCreateLabel("X", 505, $y)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

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

    _Next()

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

    GUISetState()

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

    ;Mainloop
    While 1
    Local $l
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE
    $close = MsgBox(4, "Wirklich Beenden?", "Wollen sie wirklich aufhören?")
    Switch $close
    Case 6
    Exit
    EndSwitch
    Case $A
    $sicher = MsgBox(4,"Sicher?","Sind sie sicher, dass sie Antwort A nehmen wollen?")
    Switch $sicher
    Case 6
    $l = 1
    If $l = $str[5] Then
    _Geld()
    $y -= 20
    _Next()
    GUICtrlSetPos($Geld, 505, $y)
    Else
    MsgBox(0, "Falsch", "Antwort A ist leider falsch, die richtige Lösung wäre " & $e & " gewesen.")
    _NewGame()
    EndIf
    EndSwitch
    Case $B
    $sicher = MsgBox(4,"Sicher?","Sind sie sicher, dass sie Antwort B nehmen wollen?")
    Switch $sicher
    Case 6
    $l = 2
    If $l = $str[5] Then
    _Geld()
    $y -= 20
    _Next()
    GUICtrlSetPos($Geld, 505, $y)
    Else
    MsgBox(0, "Falsch", "Antwort B ist leider falsch, die richtige Lösung wäre " & $e & " gewesen.")
    _NewGame()
    EndIf
    EndSwitch
    Case $C
    $sicher = MsgBox(4,"Sicher?","Sind sie sicher, dass sie Antwort C nehmen wollen?")
    Switch $sicher
    Case 6
    $l = 3
    If $l = $str[5] Then
    _Geld()
    $y -= 20
    _Next()
    GUICtrlSetPos($Geld, 505, $y)
    Else
    MsgBox(0, "Falsch", "Antwort C ist leider falsch, die richtige Lösung wäre " & $e & " gewesen.")
    _NewGame()
    EndIf
    EndSwitch
    Case $D
    $sicher = MsgBox(4,"Sicher?","Sind sie sicher, dass sie Antwort D nehmen wollen?")
    Switch $sicher
    Case 6
    $l = 4
    If $l = $str[5] Then
    _Geld()
    $y -= 20
    _Next()
    GUICtrlSetPos($Geld, 505, $y)
    Else
    MsgBox(0, "Falsch", "Antwort D ist leider falsch, die richtige Lösung wäre " & $e & " gewesen.")
    _NewGame()
    EndIf
    EndSwitch
    EndSwitch
    WEnd
    ;<==

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

    Func _Next()
    ; HIER FÄNGT DAS 1. Problem AN
    Do
    $question = Random(1, UBound($var) - 1, 1) ;Zufällige Frage
    For $i = 1 To $Count
    If $question = $save[$Count] Then ContinueLoop 2
    Next
    Until $question <> $lastquestion

    $lastquestion = $question
    $save[$Count] = $lastquestion
    $Count += 1

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

    $str = StringSplit($var[$question][1], '-', 1) ;Antworten splitten
    GUICtrlSetData($Frage, $var[$question][0]) ;Frage Nr. 1

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

    For $i = 1 To 4
    GUICtrlSetData($Antwort[$i], $str[$i]) ;Antwortmöglichkeiten zu Frage Nr. 1
    Next

    ; SPÄTESTENS HIER HÖRT ES AUF :)

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

    Switch $str[5]
    Case 1
    $e = "A"
    Case 2
    $e = "B"
    Case 3
    $e = "C"
    Case 4
    $e = "D"
    EndSwitch
    EndFunc ;==>_Next

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

    Func _Geld()
    Switch $y
    Case 315
    $Euro = "100 Euro"
    Case 295
    $Euro = "200 Euro"
    Case 275
    $Euro = "200 Euro"
    Case 255
    $Euro = "500 Euro"
    Case 235
    $Euro = "1.000 Euro"
    Case 215
    $Euro = "2.000 Euro"
    Case 195
    $Euro = "4.000 Euro"
    Case 175
    $Euro = "8.000 Euro"
    Case 155
    $Euro = "16.000 Euro"
    Case 135
    $Euro = "32.000 Euro"
    Case 115
    $Euro = "64.000 Euro"
    Case 95
    $Euro = "125.000 Euro"
    Case 75
    $Euro = "250.000 Euro"
    Case 55
    $Euro = "500.000 Euro"
    Case Else
    MsgBox(0, "Richtig", "Glückwunsch, Sie haben 1 Million Euro Gewonnen!!!!")
    _NewGame()
    EndSwitch
    MsgBox(0, "Richtig", "Glückwunsch, Sie haben " & $Euro & " bis jetzt.")
    EndFunc ;==>_Geld

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

    Func _NewGame()
    GUICtrlSetData($Frage, "")
    $y = 315
    GUICtrlSetPos($Geld, 505, $y)
    For $i = 1 To 4
    GUICtrlSetData($Antwort[$i], "")
    Next
    $New = MsgBox(4, "Neues Spiel?", "Möchten sie ein neues Spiel beginnen?")
    Switch $New
    Case 6
    _Next()
    Case 7
    Exit
    EndSwitch
    EndFunc ;==>_NewGame

    [/autoit]

    Hier die Daten.ini:

    Spoiler anzeigen

    [Fragen]
    Wie heißt unsere Kanzlerin ? = Brigitte Neumann-Ursula von der Leyen-Ulrike Maischberger-Angela Merkel-4
    Was ist ein Kelvin-Generator = Wassertropfengenerator-Starker Fön-Auto-Musikverstärker-1
    Wie lautet der Vorname von einem gewissen D. Duck ? = Dumbert-Dagobert-Doris-Depp-2
    Um was handelt es sich bei einer AK 47 ? = Fahrzeug-Flugzeug-Waffe-Toilette-3
    Wie schnell fliegen Passagierflugzeuge ca. (kmh) ? = 1600-470-900-45-3
    Wo liegt das Uralgebierge ? = Westrussland-Südrussland-China-Deutschland-1
    Was ist AutoIt ? = Spielzeug-Müsli-Chemische Kampfstoffe-Skriptsprache-4
    Was ist Barack Obamas Wahlspruch ? = Yes he did-Yes we can-No you cant-What the fuck-2
    Was heißt Moin auf Russisch ? = Bljad-Nastrowje-Priwet-Babuschka-3
    Was ist ein Noob ? = Naturkatastrophe-Raubtier-Anfänger-Politiker-3
    Wieviel Gramm sind 15,5 Kilogramm ? = 5500-15500-nichts-115000-2
    Was ist Koks ? = Ein Baustoff-Ein Heilmittel-Ein Irrer-Eine Droge-4
    Kindergarten auf Englisch ? = Kindergarten-Childgarden-Childhood-Ghetto-1
    Was ist Salpeter ? = Pökelsalz-Sprengstoff-Märchenfigur-ModeMarke-1
    Wo ist die Schweinegrippe ausgebrochen ? England-Estland-China-Mexico-4
    Wo gibts es noch Piraterie ? Neuguinea-Somalia-Deutschland-Australien-2
    Autokennzeichen für Hamburg ? = HB-HMB-HH-H-3
    Wie lautet die erste Primzahl ? = 3-5-2-7-3
    Was ist die Beste Waffe bei Call of Duty 4 ? = Ak47-Barett-Uzi-Dragunov-4
    Was ist Scintologie ? = Universität-Sekte-Schule-Geruch-2
    Was braucht ein Auto ? = Pneus-Zeus-Geus-Meus-1
    Wer leitet "Germanys next Topmodel" ? = Jörg Pilawa-Heidi Klum-Seal-Peter Fox-2
    Was ist, nach Meinung vieler Ausländer, typisch für Deutsche ? = Pommes-Sauberkeit-Schrottautos-Gemüse-2
    Wer Gewinnt meistens bei "Schlag den Raab" ? Steffan Raab-Pro7-Kandidat-Jury-2
    Das schnellste Straßenauto ? = Bugatti Veyrone-Porsche 911 GT-Golf GTI-Nissan VXT-1
    Was Was ist Influenz ? = Ladungsverschiebung-Gewalt-Appetit-Gier-1
    Wer hat grade keine Lust mehr ? = ich-du-er-sie-1

    Edit: Schnuffel Sorry, aber ich habe irgentwie nen Problem gehabt, noch nen Text unter dem 2. Spoiler anzeigen zu lassen. Hab es jetzt hoch Editiert. sry es lag an einem komischen Spoiler, den ich irgentwie in dem anderen drin hatte :P

    4 Mal editiert, zuletzt von SiLenCa (29. April 2009 um 21:33)

  • Zitat

    Jedoch habe ich zurzeit 2 Probleme.

    und wenn Du uns noch sagst, was Deine Probleme sind...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Spoiler anzeigen
    [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 277, 57, 193, 125)
    Dim $Button[4][2]
    $Button[0][0] = GUICtrlCreateButton("Falsch", 2, 2, 75, 25, 0)
    $Button[1][0] = GUICtrlCreateButton("Falsch", 78, 2, 75, 25, 0)
    $Button[2][0] = GUICtrlCreateButton("Falsch", 2, 28, 75, 25, 0)
    $Button[3][0] = GUICtrlCreateButton("Falsch", 78, 28, 75, 25, 0)
    For $1 = 0 To 3
    $Button[$1][1] = False
    Next

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

    $50 = GUICtrlCreateButton("50-50", 198, 2, 75, 25, 0)
    $Ran = Random(0,3)
    GUICtrlSetData ($Button[$Ran][0],"Richtig")
    $Button[$Ran][1] = True
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    For $1 = 0 To 3
    Switch $nMsg
    Case -3
    Exit
    Case $Button[$1][0]
    If $Button[$1][1] = True Then
    MsgBox (64,"Richtig","Richtig")
    ElseIf $Button[$1][1] = False Then
    MsgBox (16,"Falsch","Falsch")
    EndIf
    Case $50
    GUICtrlSetState ($50,128)
    For $1 = 1 To 2
    Do
    $Ran = Random(0,3)
    Until $Button[$Ran][1] = False
    GUICtrlSetState($Button[$Ran][0],128)
    $Button[$Ran][1] = "NO"
    Next
    EndSwitch
    Next
    WEnd

    [/autoit]

    mfg. Jam00

  • Ok, cool. Das mit dem 50-50 habe ich hinbekommen:

    Spoiler anzeigen
    [autoit]

    Case $50
    _50()
    EndSwitch
    WEnd
    ;<==

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

    Func _50()
    If $joker = False Then
    $joker = True
    For $i = 1 To 2
    Do
    $rnd = Random(1, 4, 1)
    Until $rnd <> $str[5]
    GUICtrlSetState($Answer[$rnd], $GUI_HIDE)
    GUICtrlSetState($Antwort[$rnd], $GUI_HIDE)
    Next
    Else
    MsgBox(0, "Betrüger", "Du hast den Joker bereits benutzt.")
    EndIf
    EndFunc ;==>_50

    [/autoit]

    Das Problem, dass Fragen öfters drankommen besteht immernoch (leider)
    Weiss da wer was ?

    • Offizieller Beitrag

    Damit keine Fragen doppelt vorkommen musst Du sie aus dem "Array nehmen".
    Das geht am leichtesten, wenn man das Ende des Zufallsbereichs in jeder Runde um eins verringert und die letzte Frage an die Position der momentan gestellten Frage kopiert.
    Hört sich kompliziert an, ist aber gar nicht so schwer. Hier ein Beispiel:

    [autoit]


    Global $array[9] = ['Frage1', 'Frage2', 'Frage3', 'Frage4', 'Frage5', 'Frage6', 'Frage7', 'Frage8', 'Frage9']

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

    For $i = 0 To 5
    $random = Random(0, 8 - $i, 1)
    MsgBox(0, 'Frage', $array[$random])
    $array[$random] = $array[UBound($array) - 1 - $i]
    Next

    [/autoit]
  • Naja, für mich doch recht kompliziert ^^ :P hab es versucht mit _ArrayDisplay am ende zu verstehen, hat mich ein wenig mehr verwirrt ^^. Ausserdem habe ich das Array
    $Var[...][...] also 2Dimensional. Das macht die Sache für mich nicht leichter. Habe komische sachen ausprobiert, jedoch scheiterte jede meiner Varianten ^^ Vllt kannst ja nochn Tipp geben wie das bei mir Funktionieren könnte. (Funktion _Next())

  • Ach ich kann auch Notfalls warten ^^ ich Probiere in der Zeit ja auch weiter, jedoch vergeblich ;)

    Habe das jetzt mit ArrayDelete und $var[0][0] = Ubound($var) -1 gemacht. Denke es funktioniert jetzt. Kannst ja trotzdem mal deine Variante schreiben Oscar vllt ist sie ja besser als meine.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\..\Eigene Dateien\Eigene Bilder\millionaer.ico
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>

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

    ;Variablen deklarierung
    Global $ini = @ScriptDir & "\Daten.ini", $splash = @ScriptDir & "\Millionär.jpg", $bkgr = @ScriptDir & "\a.jpg", $var = IniReadSection(@ScriptDir & "\Daten.ini", "Fragen")
    Global $Antwort[5], $Answer[5], $e, $question, $str, $y = 315, $Euro = "0 Euro", $lastquestion, $save[9999], $joker = False, $Million = False, $hidden = False, $Grenze = $Euro
    ;<==

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

    ;Überprüfung, ob Datei Exestiert
    If $var = 1 Then
    MsgBox(0, "Fehler", "Datei 'Daten.ini konnte nicht gelesen werden." & @CRLF & "Bitte überprüfen Sie, ob sich die Datei im Ordner Befindet.")
    Exit
    EndIf
    ;<==

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

    ;Splash
    SplashImageOn("", $splash, 320, 322, -1, -1, 1)
    Sleep(1500)
    SplashOff()
    ;<==

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

    ;Main Gui
    GUICreate("Wer wird Millionär", 631, 378)
    GUICtrlCreatePic($bkgr, 0, 0, 631, 378)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetFont(15)
    $Frage = GUICtrlCreateEdit("", 50, 235, 390, 47, $ES_READONLY, 0) ;Feld für Frage
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUISetFont(12)
    $Antwort[1] = GUICtrlCreateLabel("", 63, 300, 155, 23) ;Feld für Antwort A
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Answer[1] = GUICtrlCreateLabel("", 30, 294, 195, 37) ;Soll auf Klick reagieren
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_ONTOP)
    $Antwort[2] = GUICtrlCreateLabel("", 63, 337, 155, 23) ;Feld für Antwort B
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Answer[2] = GUICtrlCreateLabel("", 30, 331, 195, 37) ;Soll auf Klick reagieren
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_ONTOP)
    $Antwort[3] = GUICtrlCreateLabel("", 295, 300, 155, 23) ;Feld für Antwort C
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Answer[3] = GUICtrlCreateLabel("", 262, 294, 195, 37) ;Soll auf Klick reagieren
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_ONTOP)
    $Antwort[4] = GUICtrlCreateLabel("", 295, 337, 155, 23) ;Feld für Antwort D
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Answer[4] = GUICtrlCreateLabel("", 262, 331, 195, 37) ;Soll auf Klick reagieren
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_ONTOP)
    GUISetFont(20)
    $Geld = GUICtrlCreateLabel("X", 505, $y)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $50 = GUICtrlCreateLabel("", 500, 349, 43, 25) ;Soll auf Klick reagieren
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_ONTOP)
    GUISetFont(28)
    $used = GUICtrlCreateLabel("X", 510, 340)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_HIDE)

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

    _Next()

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

    GUISetState()

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

    ;Mainloop
    While 1
    Local $l
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE
    $close = MsgBox(4, "Wirklich Beenden?", "Wollen sie wirklich aufhören?")
    Switch $close
    Case 6
    Exit
    EndSwitch
    Case $Answer[1]
    $sicher = MsgBox(4, "Sicher?", "Sind sie sicher, dass sie Antwort A nehmen wollen?")
    Switch $sicher
    Case 6
    $l = 1
    If $l = $str[5] Then
    _Geld()
    $y -= 20
    _Next()
    GUICtrlSetPos($Geld, 505, $y)
    Else
    MsgBox(0, "Falsch", "Antwort A ist leider falsch, die richtige Lösung wäre " & $e & " gewesen." & @CRLF & @CRLF & "Sie Fallen auf " & $Grenze & " zurück.")
    _NewGame()
    EndIf
    EndSwitch
    Case $Answer[2]
    $sicher = MsgBox(4, "Sicher?", "Sind sie sicher, dass sie Antwort B nehmen wollen?")
    Switch $sicher
    Case 6
    $l = 2
    If $l = $str[5] Then
    _Geld()
    $y -= 20
    _Next()
    GUICtrlSetPos($Geld, 505, $y)
    Else
    MsgBox(0, "Falsch", "Antwort B ist leider falsch, die richtige Lösung wäre " & $e & " gewesen." & @CRLF & @CRLF & "Sie Fallen auf " & $Grenze & " zurück.")
    _NewGame()
    EndIf
    EndSwitch
    Case $Answer[3]
    $sicher = MsgBox(4, "Sicher?", "Sind sie sicher, dass sie Antwort C nehmen wollen?")
    Switch $sicher
    Case 6
    $l = 3
    If $l = $str[5] Then
    _Geld()
    $y -= 20
    _Next()
    GUICtrlSetPos($Geld, 505, $y)
    Else
    MsgBox(0, "Falsch", "Antwort C ist leider falsch, die richtige Lösung wäre " & $e & " gewesen." & @CRLF & @CRLF & "Sie Fallen auf " & $Grenze & " zurück.")
    _NewGame()
    EndIf
    EndSwitch
    Case $Answer[4]
    $sicher = MsgBox(4, "Sicher?", "Sind sie sicher, dass sie Antwort D nehmen wollen?")
    Switch $sicher
    Case 6
    $l = 4
    If $l = $str[5] Then
    _Geld()
    $y -= 20
    _Next()
    GUICtrlSetPos($Geld, 505, $y)
    Else
    MsgBox(0, "Falsch", "Antwort D ist leider falsch, die richtige Lösung wäre " & $e & " gewesen." & @CRLF & @CRLF & "Sie Fallen auf " & $Grenze & " zurück.")
    _NewGame()
    EndIf
    EndSwitch
    Case $50
    _50()
    EndSwitch
    WEnd
    ;<==

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

    Func _50()
    If $joker = False Then
    $joker = True
    For $i = 1 To 2
    Do
    $rnd = Random(1, 4, 1)
    Until $rnd <> $str[5]
    GUICtrlSetState($Answer[$rnd], $GUI_HIDE)
    GUICtrlSetState($Antwort[$rnd], $GUI_HIDE)
    Next
    GUICtrlSetState($used,$GUI_SHOW)
    Else
    MsgBox(0, "Betrüger", "Du hast den Joker bereits benutzt.")
    EndIf
    EndFunc ;==>_50

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

    Func _Next()
    If $hidden = True Then
    GUICtrlSetState($Geld, $GUI_SHOW)
    $hidden = False
    EndIf
    If $joker = True Then
    For $i = 1 To 4
    GUICtrlSetState($Answer[$i], $GUI_SHOW)
    GUICtrlSetState($Antwort[$i], $GUI_SHOW)
    Next
    EndIf
    Do
    $random = Random(1, UBound($var) - 1, 1) ;Zufällige Frage
    Until $random <> 0
    $str = StringSplit($var[$random][1], '-', 1) ;Antworten splitten
    GUICtrlSetData($Frage, $var[$random][0]) ;Frage ins Label schreiben
    For $i = 1 To 4
    GUICtrlSetData($Antwort[$i], $str[$i]) ;Antwortmöglichkeiten in die Labels schreiben
    Next
    Switch $str[5]
    Case 1
    $e = "A"
    Case 2
    $e = "B"
    Case 3
    $e = "C"
    Case 4
    $e = "D"
    EndSwitch
    _ArrayDelete($var,$random)
    $var[0][0] = Ubound($var) -1
    EndFunc ;==>_Next

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

    Func _Geld()
    Switch $y
    Case 315
    $Euro = "100 Euro"
    Case 295
    $Euro = "200 Euro"
    Case 275
    $Euro = "200 Euro"
    Case 255
    $Euro = "500 Euro"
    Case 235
    $Euro = "1.000 Euro"
    $Grenze = $Euro
    MsgBox(0, "Richtig", "Richtig, Sie haben die " & $Grenze & " Grenze erreicht.")
    Case 215
    $Euro = "2.000 Euro"
    Case 195
    $Euro = "4.000 Euro"
    Case 175
    $Euro = "8.000 Euro"
    Case 155
    $Euro = "16.000 Euro"
    Case 135
    $Euro = "32.000 Euro"
    $Grenze = $Euro
    MsgBox(0, "Richtig", "Richtig, Sie haben die " & $Grenze & " Grenze erreicht.")
    Case 115
    $Euro = "64.000 Euro"
    Case 95
    $Euro = "125.000 Euro"
    Case 75
    $Euro = "250.000 Euro"
    Case 55
    $Euro = "500.000 Euro"
    Case Else
    $Million = True
    MsgBox(0, "Richtig", "Glückwunsch, Sie haben 1 Million Euro Gewonnen!!!!")
    _NewGame()
    EndSwitch
    If $Million = False And $Grenze <> $Euro Then MsgBox(0, "Richtig", "Glückwunsch, Sie haben " & $Euro & " bis jetzt.")
    $Million = False
    EndFunc ;==>_Geld

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

    Func _NewGame()
    $var = IniReadSection(@ScriptDir & "\Daten.ini", "Fragen")
    $Euro = "0 Euro"
    $Grenze = $Euro
    $joker = False
    GUICtrlSetState($used,$GUI_HIDE)
    GUICtrlSetData($Frage, "")
    $y = 315
    GUICtrlSetState($Geld, $GUI_HIDE)
    GUICtrlSetPos($Geld, 505, $y)
    $hidden = True
    For $i = 1 To 4
    GUICtrlSetData($Antwort[$i], "")
    Next
    $New = MsgBox(4, "Neues Spiel?", "Möchten sie ein neues Spiel beginnen?")
    Switch $New
    Case 6
    _Next()
    Case 7
    Exit
    EndSwitch
    EndFunc ;==>_NewGame

    [/autoit]

    Einmal editiert, zuletzt von SiLenCa (29. April 2009 um 18:27)

    • Offizieller Beitrag

    Na siehste, Du hast es doch geschafft!
    _ArrayDelete funktioniert auch. Ist geschwindigkeitsmässig nicht so toll (wegen ReDim), aber das macht in Deinem Script nichts aus.
    Die Variante, die ich oben benutzt habe, stammt AFAIR von BugFix aus unserem damaligen Lottozahlen-Contest. Dadurch, dass sie ohne ReDim auskommt, ist sie "sauschnell".
    Bei Deinem Script spielt die Geschwindigkeit aber keine Rolle, deshalb lass es ruhig bei _ArrayDelete.

  • Ist Euch eigentlich aufgefallen, das hier um Euro gespielt wird, aber der Herr Jauch noch auf seiner Wand die alte DM hat?
    Da hat RTL wohl ein Fehler gemacht, oder? ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Ja, stimmt schon ;) Aber ich habe kein anderes gefunden, sonst hätte ich auch ein Bild mit besserer Qualität genommen.
    Habe jetzt noch Bilder und Sounds hinzugefügt.

    Hier der neue Download Link

    Wenn wer Bugs findet, oder verbesserungsvorschläge hat, Bitte bei mir melden.

    PS: Falls wer Lust hat ein Paar Fragen mit Antworten in die Daten.ini reinzuschreiben, kann er das machen und hier zum download gerne Anbieten;)

    Edit: Hat vielleicht wer Ideen für die anderen beiden Joker ? Telefen / Publikum ?

    Einmal editiert, zuletzt von SiLenCa (29. April 2009 um 21:42)

  • wenn ich spiele und den 50:50 nehmme und nach der näcksten scheitere und ein neues spiel anfange ist gleich immer schon der 50:50 da so das ich nur noch 2 fragen beantworten muss

  • Joker ? Telefen / Publikum ?

    Also da würde ich mit TIME arbeiten.
    Nimmst Du z. B. den Telefon-Joker und es ist gerade eine ungerade Minute sowie gerade Stunde und ..., dann sagt er die Wahrheit, sonst: PECH.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • So danke für euer Feedback.
    Alina die Idee mit der Zeit finde ich ganz gut, mal schauen ob ich das mache.

    @Sircool, ich habe jetzt etwas rumgebastelt. Hoffe Fehler ist jetzt gefixxt.

    Hier der neue Download Link

  • Hallo SiLenCa.

    Also mir ist folgendes aufgefallen.

    Wird das Spiel gestartet, ist bereits die erste Frage als gelöst mit einem "X" markiert.

    Die Musik nach jeder Frage und das Bild von "Oliver Pochert" (oder wer das sein soll) würde ich nicht jedes mal abspielen / einblenden, sondern nur nach € 500 und dann nach den bekannten Schritten, wo man bei der Show dann maximal herabfallen kann.

    Die Musikdateien sollten wesentlich kleiner sein, denn so ist der download sehr groß. eigentlich nicht schlimm, aber habe mich erschrocken, als ich sah wie groß die RAR-Datei ist.

    So, dann mal ein sonniges Wochenende. In Deutschland ist ja morgen wieder einmal ein Feiertag. Dafür hatte Dänemark ja "Grün Donnerstag" frei.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Alina, das X rechts, soll eigentlich anzeigen, bei welcher Frage man ist, nicht welche man schon gelöst hat :) Das mit den Sounds kleinermachen... weiss nicht wie das geht. Weniger Sounds und Bilder, ist eine gute idee, jedoch was soll ich stattdessen bei den anderen Fragen machen, wenn man sie Richtig beantwortet ? :P

  • Weniger Sounds und Bilder, ist eine gute idee, jedoch was soll ich stattdessen bei den anderen Fragen machen, wenn man sie Richtig beantwortet ? :P

    Nun einfach die nächste Frage einblenden.
    Wenn es ein Top sein "muss", dann einfach ein ganz kurzen, z. B. ein "WOW" oder "SUUUUPER".

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr