Und was sagt dir der Fehler deines Wissens nach?
Kartenspiel mehrere Karten als Array?
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
Der Fehler sagt mir, dass sich der arrayindex irgendwann außerhalb des festgelegten Bereichs 0-1 befindet.
Das Problem ist, beim Start wird die Rückseite angezeigt.
Dann drücke ich drauf und das erste Bild erscheint. Danach klicke ich mehrmals auf das Bild und dann kommt der Fehler.
Hast du da noch einen Tip für mich? -
Hab jetzt die Erhöhung des Indexes mal rausgenommen.
Jetzt dreht er die Rückseite einmal um auf den index 0 und macht dann gar nichts mehr. -
Also habe jetzt hinbekommen.
Waffeln, vielen Dank, dass du dir Zeit genommen hast um mich zum Ziel zu bringen und mir nicht irgendwelche Vorträge über fehlende Grundkenntnisse gehalten hast
Hab vielen Dank und Guten Rutsch dir -
Kann ich dich irgendwo liken um deinen Status zu verbessern?
-
Brauchst nirgends auf gefällt mir oder sowas drücken, das bringt mir ja auch nichts
Du kannst dem index out of bounds Fehler auch relativ einfach aus dem weg gehen indem du prüfst ob der index den du hochzählst größer als die länge des arrays minus 1 ist. -
Ok, das merk ich mir.
Hättest du noch einen Tip wie man die Indexwerte eines Arrays zufällig anzeigen lässt? -
es gibt random-funktionen.
-
Weiß ich.
Das ist genauso Hilfreich wie, dass es "Autos" gibt. -
TobFab1987 schrieb:
Weiß ich.
Das ist genauso Hilfreich wie, dass es "Autos" gibt.
du willst einen zufälligen index aus einer bestimmten range. dazu verwendet man einen zufalls-generator. -
Hmm, einfach ein bissel "mehr" als 4 Wörter.
Ich dachte das ist ein Fachforum?? Das man sich hier mit Beispielen unterstützt oder so.
Ich möchte aber das er wirklich zufällig nur einmal, jeden Wert anzeigt.
Gibt es dafür auch eine lösung? -
es ist ein fachforum, nur sind die meisten nicht wirklich vom fach.
was du willst, ist wohl einmal die karten "durchmischen".
im englischen nennt man das shuffle. such einfach bei google danach. dort findest du konzepte mit denen du in jeder programmiersprache dann ein array bzw ein indexset oder was auch immer mischen kannst (denn ich denke nicht dass es in siwft eine extra funktion dafür gibt). -
Ok. Hab was gefunden in meinem Fachbuch.
Aber irgendwas haut da nicht so hin.
Die Ausgabe der Schleife sollte eig. ein Integerwert sein den den der Bildindex erkennt.
Der Code ist:
Sehr Ihr den Fehler? -
Der Fehler is:
fatal error: swapping a location with itself is not supported -
Jetzt lasse ich mich doch wieder zu einer Antwort im Swift-Bereich hinreißen, aber diesmal "gefahrlos": Mein Beitrag enthält nichts Swift-spezifisches.
Ich habe den Eindruck, Dein Hauptproblem ist, dass Du keine genaue Vorstellung hast, was Dein Programm genau leisten soll. Also nicht bzgl. der genauen Statements, sondern den tatsächlichen Algorithmus. Sagt Dir "Pseudo-Code" etwas? Wenn nicht, versuche einmal strukturiert, aber in Prosa zu schreiben, was Dein Programm wann machen soll. Wenn ja, schreibe es in Pseudo-Code auf:
Welche Karten-Gruppen gibt es zu unterscheiden? Aus welchen soll die nächste Karte zufällig ausgewählt werden? Was passiert, wenn man eine Karte umdreht. Gehe das Spiel schrittweise durch und schreibe alle Aspekte (verkürzt) auf, dann hast Du Deinen Algorithmus. Diesen dann in eine Sprache - und sei es Swift - zu übersetzen, ist eher der leichtere, aber zweite Teil.
HTH, MattesDiese Seite bleibt aus technischen Gründen unbedruckt. -
Wenn Du "echte" Zusatzzahlen willst, die sich nicht bei jedem Start wiederholen, musst du deinen Generator erst mal initialisieren.
Wie das in Swift geht (was ist das eigentlich?) weiß ich nicht
In C z.B.
Das ließt sich für mich leichter, als der ganze Gulasch den ich oben sehen... -
TobFab1987 schrieb:
Der Fehler is:
fatal error: swapping a location with itself is not supported
-
Ich habe den Thread nur grob quergelesen...
Der Hinweis auf Pseudocode als ersten Schritt ist sehr wichtig und richtig. Schritt 1b wäre es dann, sich zu überlegen, welche Objekte man braucht und welche Objekte, was über die anderen Objekte wissen und wofür sie zuständig sind.
Bei der ersten Implementierung eines solches Datenmodels würde man erstmal normalerweise GUI, also Bilder und Views, weglassen. Erstmal soll's ja funktionieren. Ints und Strings reichen da. Der optische Zucker kommt später.
Solch ein einfaches Kartendeck/ 'Kartenspiel' eignet sich sehr gut als Anfängerprojekt zum Üben.
Passenderweise hat Apple genau so ein einfaches Kartenmodell als Muster-Packages für den kommenden Open-Source Packetmanager ausgewählt. Unter github.com/apple findet sich genau solcher grundlegender Kartenspiel-code von Apple. Das sind dort die vier Git-Projekte, die mit 'example' anfangen. Die Aufteilung in vier Packages liegt nur daran, daß sie als Testcases für den Packagemanager dienen. Normalerweise würde man das in einem Projekt zusammenfassen. Ist auch eigentlich nur sehr wenig Code.
Da könnte man als Anfänger mal reinschauen und gucken, ob man versteht und nachvollziehen kann, was der Code da jeweils macht. Dann würde man es zurseite legen und es nochmal selber versuchen...^^