Hallo an alle hier im Forum,
ich bin Neuling in der Swift Programmierung und bräuchte mal eure Hilfe. Ich mache schon einige Stunden rum, komme aber auf keinen grünen Zweig. Ich möchte wie in dem Code zu sehen ist per Zufall 4 Texte in einem Label ausgeben welche sich nicht wiederholen sollen. Wenn alle 4 Texte in zufälliger Reihenfolge ausgegeben wurden, wird der Zähler gelöscht und es soll von vorne losgehen. In meinem Code habe ich einen String Array "Nachricht" declariert von Text 1 - 4. Beim betätigen des Buttons wird die Funktion "Nachricht ausgeben" aktiviert. Der globale INT Array "Zähler" wird per append mit den generierten Zufallszahlen gefüttert. In einer repeat Schleife soll abgefragt werden ob die aktuelle Zufallszahl bereits vorhanden ist. Wenn ja wird innerhalb der Schleife eine neue Zufallszahl generiert, wenn sie nicht im Zähler vorkommt wird sie im Label angezeigt. Leider funktioniert es aber nicht. Das löschen des Zählers bei der vierten Ausgabe des Textes funktioniert, aber trotzdem ist ein Fehler drin weil die generierten Zufallszahlen doppelt auftauchen. Es wäre super wenn mir jemand helfen könnte.
Liebe Grüße, Nicolai
Alles anzeigen
ich bin Neuling in der Swift Programmierung und bräuchte mal eure Hilfe. Ich mache schon einige Stunden rum, komme aber auf keinen grünen Zweig. Ich möchte wie in dem Code zu sehen ist per Zufall 4 Texte in einem Label ausgeben welche sich nicht wiederholen sollen. Wenn alle 4 Texte in zufälliger Reihenfolge ausgegeben wurden, wird der Zähler gelöscht und es soll von vorne losgehen. In meinem Code habe ich einen String Array "Nachricht" declariert von Text 1 - 4. Beim betätigen des Buttons wird die Funktion "Nachricht ausgeben" aktiviert. Der globale INT Array "Zähler" wird per append mit den generierten Zufallszahlen gefüttert. In einer repeat Schleife soll abgefragt werden ob die aktuelle Zufallszahl bereits vorhanden ist. Wenn ja wird innerhalb der Schleife eine neue Zufallszahl generiert, wenn sie nicht im Zähler vorkommt wird sie im Label angezeigt. Leider funktioniert es aber nicht. Das löschen des Zählers bei der vierten Ausgabe des Textes funktioniert, aber trotzdem ist ein Fehler drin weil die generierten Zufallszahlen doppelt auftauchen. Es wäre super wenn mir jemand helfen könnte.
Liebe Grüße, Nicolai
Quellcode
- import UIKit
- // Globale Variable für Zähler
- var zähler = [Int] ()
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- }
- @IBOutlet weak var label: UILabel!
- @IBAction func Button(_ sender: Any) {
- // Ausgabe der Nachricht bei klick auf den Button
- self.NachrichtAusgeben ()
- }
- // Funktion für die zufällige Ausgabe der Nachricht
- func NachrichtAusgeben () {
- var nachricht = ["Text 1"]
- nachricht.append ("Text 2")
- nachricht.append ("Text 3")
- nachricht.append ("Text 4")
- let anzahl = (nachricht.count) // Anzahl der Nachrichten
- var zufall = Int.random(in: 0...(anzahl-1)) // Zufallszahl ermitteln
- zähler.append (zufall) // dem Zähler die Zufallszahl hinzufügen
- let anzahlZähler = (zähler.count) // Anzahl der gespeicherten Zufälle im Zähler
- print (zähler)
- print (anzahlZähler)
- //for a in 0...(anzahlZähler-1) {
- var a = Int()
- repeat {
- if zähler[a] == zufall {
- zufall = Int.random(in: 0...(anzahl-1))
- } else {
- label.text = nachricht[zufall] }
- //print (zähler[a])
- a += 1
- if anzahlZähler == anzahl {
- zähler = []
- print ("Ende")
- }
- } while a <= (zähler.count)-1
- }
- }