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
#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>
;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]
;<==
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
;Splash
SplashImageOn("", $splash, 320, 322, -1, -1, 1)
Sleep(1500)
SplashOff()
;<==
;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)
_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
;<==
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
$str = StringSplit($var[$question][1], '-', 1) ;Antworten splitten
GUICtrlSetData($Frage, $var[$question][0]) ;Frage Nr. 1
For $i = 1 To 4
GUICtrlSetData($Antwort[$i], $str[$i]) ;Antwortmöglichkeiten zu Frage Nr. 1
Next
; SPÄTESTENS HIER HÖRT ES AUF
Switch $str[5]
Case 1
$e = "A"
Case 2
$e = "B"
Case 3
$e = "C"
Case 4
$e = "D"
EndSwitch
EndFunc ;==>_Next
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
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
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