Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-06-2007, 17:20   #1 (permalink)
Neuer User
 
Registriert seit: May 2006
Beiträge: 118
Array Problem mit Kartenspiel

Hi
Sorry erst mal wenn ich doch falsch hier bin
Ich versuch ein Kartenspiel zu machen in Flash mit meinem Red5 Server.

Es klappt bis jetzt alles ganze gut. So dass ich die Karten bekommen und auch verschieben kann nach belieben.

Aber das Ende ist dochn harten BRocken mit lauter Arrays

Also
Hab jetzt ein mehrer Arrays z.b. so:
var karten1teil:Array = ["blau_8","rot_8","gelb_8"];
var karten2teil:Array = ["blau_8","blau_9","blau_10"];

So und jetzt muss ich das prüfen ob jetzt die karten im Array ENTWEDER
die gleiche Farben haben und gleichzeitig eine Folge von Zahlen sind ODER
verschiedene Farben haben und die gleichen Zahlen sind.

Ich hab da schon erste Versuche angestellt, aber des schien mir so kompliziert und verlangsamt das Flash Cs3 :S

Und dann kommt auch noch ein Problem mit dem Joker. Wenn ein arrayellement "Joker_j" heißt dann soll es für alle Karten stehen....

Kann mir jemand einen Tip geben obs da vielleicht Tricks gibt?

Ich hab das so gemacht das ich nochmal jedes Element als Array speichere und prüfe ob alle Farben gleich sind danach folgt ob die Zahlen jeweils 1 mehr als der vorherige ist... und dann falls farben nicht alle gleich sind... ob die Zahlen gleich sind....lauter if und for schleifen

Oder weiß jemand wie ich das besser sortieren könnte.
Danke schonmal im voraus.
thehope1983 ist offline   Mit Zitat antworten
Alt 21-06-2007, 17:36   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Du denkst zu kompliziert:
ActionScript:
  1. class Card {
  2.     private color:String;
  3.     private value:Number;
  4.     public function Card() {
  5.     }
  6.     public function getColor():String {
  7.         return this.color;
  8.     }
  9.     public function getValue():Number {
  10.         return this.value;
  11.     }
  12.     public function setColor(color:String):void {
  13.         this.color = color;
  14.     }
  15.     public function setValue(value:Number):void {
  16.         this.value = value;
  17.     }
  18. }
Erzeugen eines Kartensets mit 4 Farben á 10 Karten:
ActionScript:
  1. var deck:Array = new Array();
  2. var cardColors:Array = new Array("blue", "green", "red", "yellow");
  3. var maxValue:int = 10;
  4. for (var i:int = 0; i<cardColors.length; i++) {
  5.     this.deck[i] = new Array();
  6.     for (var j:int = 0; i<maxValue; i++) {
  7.         this.deck[i][j] = new Card();
  8.         this.deck[i][j].setColor(this.cardColors[i]);
  9.         this.deck[i][j].setValue(j+1);
  10.     }
  11. }
So als Idee, wie man das machen kann. Die Vergleiche kann man dann einfach über die get()-Methoden machen.
Omega Psi ist offline   Mit Zitat antworten
Alt 21-06-2007, 18:00   #3 (permalink)
Neuer User
 
Registriert seit: May 2006
Beiträge: 118
Ich arbeite eigentlich nur in der Flash CS3 Ebene und hab keine externen Klassen erstellt. Das scheint auf jedenfall simpler zu sein ein Deck herzustellen.

Aber ich will ja am Schluss die Sortierung vergleichen. Ob es alles richtig sortiert wurde wenn jemand den Fertigbutton klickt sozusagen.
thehope1983 ist offline   Mit Zitat antworten
Alt 21-06-2007, 18:06   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Das geht alles. Du kannst den Karten beispielsweise bei bestimmten Werten ja auch Namen geben... das ganze ist ja nur skizziert.

Was die Sortierung angeht. Das geht auf diese Weise ja auch nicht gerade unbequem:
ActionScript:
  1. function isSorted(set:Array):Boolean {
  2.     for (var i:int = 0; i<set.length; i++) {
  3.         if (set[i].getValue() > set[i+1].getValue()) {
  4.             return false;
  5.         }
  6.     }
  7.     return true;
  8. }
Ein Beispiel zur Überprüfung der korrekten Sortierung.
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:10 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele