Problem: Durchmischen eines zweidimensionalen Arrays

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Beitrag von Sylvia »

HeXOR hat geschrieben:Schlafmütze @Sylvia :mrgreen:
Ja, ja...den Jungen gehört die Welt. Soll ich mich mit meinen 18 Lenzen
hetzen lassen...? :D
Basic Pur = PureBasic
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Da mir grade langweilig is, und ich immernoch von Sylvias Daueralter geblendet bin, hab ich nen MickyMaus-Quiz gemacht... vielleicht hilfts dir ja:

Code: Alles auswählen

Structure _QUIZ_
	Frage.s
	Moegliche_Antworten.s[5]
	Loesung.s
EndStructure

Global NewList Quiz_Fragen._QUIZ_()

Procedure MischeQuizKarten()

	Static We_Are_Initialized.l
   
	If We_Are_Initialized = #False
		We_Are_Initialized = #True
		;Initialize Karten
		Restore Quiz_Fragen
		Read a$
		
		While a$ <> "[THEEND]"
			AddElement(Quiz_Fragen())
			Quiz_Fragen()\Frage = a$
			j = 0
			Read a$
			While a$ <> "[ENDE]"
				Quiz_Fragen()\Moegliche_Antworten[j] = a$
				Read a$
				j + 1
			Wend
			Read Quiz_Fragen()\Loesung
			Read a$
		Wend
	EndIf
   
	;Mischen... so etwa 200mal...
   
	For i = 0 To 200

		;Wir suchen zwei zufällige unterschiedliche Zahlen zwischen 1 und #Anzahl_Fragen
		random1 = 0
		random2 = 0

		While random1 = random2
			random1 = Random(CountList(Quiz_Fragen()) - 1)
			random2 = Random(CountList(Quiz_Fragen()) - 1)
		Wend
		SelectElement(Quiz_Fragen(), random1)
		*One = @Quiz_Fragen()
		SelectElement(Quiz_Fragen(), random2)
		*Two = @Quiz_Fragen()

		;Wir vertauschen die beiden gefundenen Positionen
		SwapElements(Quiz_Fragen(), *One, *Two)

	Next i

EndProcedure

MischeQuizKarten()

OpenConsole()
Punkte = 0
ForEach Quiz_Fragen()
	
	PrintN(Quiz_Fragen()\Frage)
	PrintN("")
	i = 0
	While Quiz_Fragen()\Moegliche_Antworten[i]
		PrintN(Str(i + 1) + ". " + Quiz_Fragen()\Moegliche_Antworten[i])
		i + 1
	Wend
	PrintN("")
	a$ = Input()
	If a$ = Quiz_Fragen()\Loesung
		Punkte + 1
	EndIf
	
	
Next
PrintN("")
PrintN("Endergebnis: " + Str(Punkte) + " Punkte erzielt!")
Input()

End
DataSection
	Quiz_Fragen:
	;Frage1
	Data.s "Wer hat an der Uhr gedreht ?"
	Data.s "Paulchen"
	Data.s "Dorfdepp"
	Data.s "Stinkfussindianer"
	Data.s "[ENDE]"
	Data.s "1"
	
	Data.s "Wieviel ist 2x2 ?"
	Data.s "8"
	Data.s "Aegypten ?"
	Data.s "Schach!"
	Data.s "4"
	Data.s "[ENDE]"
	Data.s "4"
	
	Data.s "Koennen Eisbaeren luegen ?"
	Data.s "Noe"
	Data.s "Wasn das fuer ne Frage ?"
	Data.s "Klar"
	Data.s "[ENDE]"
	Data.s "1"
	
	Data.s "Bart Simpson sagt immer:"
	Data.s "Fahr zur Hoelle"
	Data.s "Aye Caramba"
	Data.s "D'OH"
	Data.s "[ENDE]"
	Data.s "2"
	
	Data.s "[THEEND]"
; ...
EndDataSection
Antworten