Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-02-2007, 06:52   #1 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
Kartendeck auswerten

hi,

Wollt mal in die Runde fragen, wie ihr das machen würdet, also rein theoretisch. Undzwar geht es darum, Pokerkarten auszuwerten.

Also, wie kann man am besten die Hand auswerten:
Ich habe alle Karten auf der Hand in ein Array gelegt ( zB. 1, 20, 3, 17, 31 )
wobei 1 zB. "Kreuz König", 20 zB. "Herz Zehn" usw. darstellen.
Nun muss man das Array nach vielen Kriterien auswerten und zB. prüfen, ob zB. ein Paar, Drilling, Fullhouse ect in den Karten ist.

Eine andere Möglichkeit wäre, die Karten mit z.B. "KA"=Karo Acht, "H1"=Herz Zehn zu bezeichnen, das alles in ein Array legen und das dann mittels .toString in einen String verwandeln, den man dann auswertet.

Wie würdet ihr das machen?
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 28-02-2007, 07:38   #2 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
Zitat:
Zitat von Circushund Beitrag anzeigen
Wie würdet ihr das machen?
Ich würde wahrscheinlich jeder Karte gleich 2 Eigenschaften zuweisen: einmal die Farbe, einmal die Zahl. Entweder mit einem
  • 2-dimensionalen Array: [[farbe,wert][farbe,wert]....]
  • oder mit einem Objektearray: Karte[nr].farbe / Karte[nr].wert
  • oder - analog zu deiner Idee - mittels String, dann aber so: "K8"=Karo Acht, "H10"=Herz Zehn.

So kannst du leichter Farbe und Kartenwert auseinander halten und das Auswerten wird einfacher.

Gruss - Skorpion
Skorpion ist offline   Mit Zitat antworten
Alt 28-02-2007, 14:20   #3 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
Poker karten

thx,
jo, das hab ich gemacht, hier der Code
(+geklautem Code von hgseib )

Was mir noch fehlt ist Code für Strasse, Royal Flush und Strait Flush...

PHP-Code:
var FarbenAbk:Array = ["K","P","H","E"];
var 
WertAbk:Array = ["A","K","D","B","1","9","8","7"];
var 
Satz:Array = new Array();

// initilalisierung ////////////////////////////////////////////////////////////////
function init(){
    
//Farben und Karten zuordnen
    
for (var i=0i<4i++){
        for (var 
ii=0ii<8ii++){
            
            
kartenStapel.push( [kartenFarben[i],kartenWert[ii] ]);
            
Satz.push([FarbenAbk[i],WertAbk[ii]]);
            
//trace(kartenStapel.length-1+" "+kartenFarben[i]+" "+kartenWert[ii])
            //trace(Satz[Satz.length-1]);
        
}
    }
    
    
bntausch_OK._visible false;
    
//theDeck = Deck.concat();
    
    
textfelderFüllen();

}

      
// return array([ Mehrfacheintrag,[und dessen indizes] ]);
Array.prototype.Gleiche = function()
{ var 
duplo = [];
  var 
anz this.length;
  if (
anz>2)
  { for (var 
0i<anz-1i++)
    { for (var 
i+1j<anzj++)
      { if (
this[i] == this[j])
        { var 
false;
          for (var 
m in duplo)
          { if (
this[j] == duplo[m][0])
            { 
true;
              var 
dm1 duplo[m][1];
              var 
dm1.length;
              while (
n-- && dm1[n] != j) { }
              if (
n<0dm1.push(j);
          } }
          if (!
fduplo.push([this[i], [ij]]);
          break;
  } } } }
  return 
duplo;
}
// Karten auswerten/////////////////////////////////////////////////////////////////
function kartenauswerten(){
    
    var 
Blatt:Array=new Array();
    
Blatt.length=0;
    var 
Wert: Array = new Array(); 
    var 
Farbe: Array = new Array();
    var 
AufHand:String="";
    
    
txtBlatt.text AufHand
    
    
for(var i=0iHand.length;i++)
    {
     
Farbe.push(Satz[Hand[i]][0]);
     
Wert.push(Satz[Hand[i]][1]);
    }
        
    
Blatt.push(Wert.Gleiche());
    
Blatt.push(Farbe.Gleiche());
    
//Blatt.push([[8][2,3],[9][2,3]])
    
trace(" Das Blatt :" Blatt[1]);
    
trace(" Das Blatt hat :" Blatt[1][0][1].length);
    
    
//Ein Paar / Drilling / Vierling
    
if( Blatt[0].length == 1){
        
     if( 
Blatt[0][0][1].length == 2){
     
AufHand "Ein Paar "Blatt[0][0][0]}
     
     if( 
Blatt[0][0][1].length == 3){
     
AufHand "Drilling "Blatt[0][0][0]}
     
     if( 
Blatt[0][0][1].length == 4){
     
AufHand "Vierling "Blatt[0][0][0]}
     
     }
    
//Zwei Paar / Full House
    
if( Blatt[0].length == 2){
        
      if( (
Blatt[0][0][1].length == 2) && (Blatt[0][1][1].length == 2)){
      
AufHand "Zwei Paar "Blatt[0][0][0] + Blatt[0][1][0]}
      
      if( (
Blatt[0][0][1].length == 3) && (Blatt[0][1][1].length == 2)){
      
AufHand "Full House "Blatt[0][0][0] + Blatt[0][1][0]}
      
      if( (
Blatt[0][0][1].length == 2) && (Blatt[0][1][1].length == 3)){
      
AufHand "Full House "Blatt[0][0][0] + Blatt[0][1][0]}
    }
    
//Flash
     
if( Blatt[1][0][1].length == 5){
     
AufHand "Flush "Blatt[1][0][0]}

    
    
txtBlatt.text AufHand
    
    trace
(AufHand)

__________________
Say no to Internet Explorer 6!
Circushund 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 17:49 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele