2016-04-09 8 views
0

Ich mache eine einfache Aktivität, die zuerst 2 zufällige Karten generieren wird. Jetzt habe ich bereits eine Methode für card1, aber ich möchte diese Methode auf card2 kopieren, ohne sie zu kopieren. Gibt es eine Möglichkeit, dass ich eine bestimmte Methode wiederverwenden kann? Dies ist die Methode:Übergeben Sie Methode zu einer Variablen

  public static void Cards_Match(){ 
       if(c1 >= 0 && c1 <=3) 
        { 
         card_rank = cards[0]; 

        } 
       else if(c1 >= 4 && c1 <=7) 
        { 
         card_rank = cards[1]; 
        } 
       else if(c1 >= 8 && c1 <=11) 
        { 
         card_rank = cards[2]; 
        } 
       else if(c1 >= 12 && c1 <=15) 
        { 
         card_rank = cards[3]; 
        } 
       else if(c1 >= 16 && c1 <=19) 
        { 
         card_rank = cards[4]; 
        } 
       else if(c1 >= 20 && c1 <=23) 
        { 
         card_rank = cards[5]; 
        } 
       else if(c1 >= 24 && c1 <=27) 
        { 
         card_rank = cards[6]; 
        } 
       else if(c1 >= 28 && c1 <=31) 
        { 
         card_rank = cards[7]; 
        } 
       else if(c1 >= 32 && c1 <=35) 
        { 
         card_rank = cards[8]; 
        } 
       else if(c1 >= 36 && c1 <=39) 
        { 
         card_rank = cards[9]; 
        } 
       else if(c1 >= 40 && c1 <=43) 
        { 
         card_rank = cards[10]; 
        } 
       else if(c1 >= 44 && c1 <=47) 
        { 
         card_rank = cards[11]; 
        } 
       else if(c1 >= 48 && c1 <=51) 
        { 
         card_rank = cards[12]; 
        } 

       if(c1 % 4 == 0) 
        { 
         card_suit = suits[0]; 
        } 

       else if(c1 % 4 == 1) 
        { 
         card_suit = suits[1]; 
        } 

       else if(c1 % 4 == 2) 
        { 
         card_suit = suits[2]; 
        } 

       else if(c1 % 4 == 3) 
        { 
         card_suit = suits[3]; 
        } 
      System.out.println("Your 1st card is: " +card_rank +" of " +card_suit); 
      System.out.println("Your 2nd card is: " +card_rank +" of " +card_suit); 
+0

Schreiben Sie Ihre Variablen nicht fest, und vermeiden Sie die Verwendung von "globalen Variablen", und Sie werden nicht auf dieses Problem stoßen. – Natecat

+0

Ja, ich verwende globale Variablen, aber ich bin nicht hardcoding meine Variablen. :) –

Antwort

1

Ich gehe davon aus c1 und c2 Ihre zufällig generierten Karten sind.

Um das Verfahren wiederverwendbar zu machen, müssen Sie Variablen innerhalb Ihrer Parameter

Ex identifizieren. Cards_Match (Das sind die Parameter)

Also, um die Methode im Wesentlichen zu "kopieren", müssten Sie ein Objekt oder eine Variable aufrufen (sagen wir Ihre zufällige Karte ist von einem Objekt "RandomCard") und legte das in Ihre paramemters

public static void Cards_Match(RandomCard card){...} 

Dann, in der Sie c1 gesetzt hat, mit der Parameter Version „Karte“

Dies ermöglicht die Wiederverwendbarkeit des Verfahrens ersetzen. So können Sie diese Methode unbegrenzt wiederverwenden.

Wenn Sie weitere Fragen haben, fragen Sie uns!

+0

Ich sah dies in jemandes Code online, so meine Frage ist, wie vergleichen Sie, welche größer oder höher ist in den Karten in dieser for-Schleife: für (int i = 0; i <2; i ++) { \t \t \t Saitenanzug = Anzüge [Deck [i]/13]; \t \t \t Zeichenfolge rank = Ränge [Deck [i]% 13]; \t \t \t System.out.println ("Sie haben die" + Rang + "von" + Anzug); \t \t \t \t \t \t} \t \t} –

+0

Nun, hier ist der zweite Teil eines Verfahrens, eine Variable zurück. Je nachdem, welchen Rang Sie einer bestimmten Karte gegeben haben, können Sie eine Variable zurückgeben (sagen wir, Sie ordnen sie mit einem int ein). Also, in Bezug auf die Kartenrangfolge, wie auch immer Sie es einrichten möchten, wo König eine 12 ist und Ace eine 0 ist, können Sie diese Variable durch die Methode zurückgeben. Ex. public static int Karten_Match (RandomCard-Karte) { ... return rankofcard; } Also, was Sie jetzt tun können, ist den Wert der Methode in einer ganzen Zahl speichern und dies mit der anderen zufälligen Karte tun. Jetzt haben Sie zwei Ints, Sie können leicht von dort auf vergleichen. – Asymons

Verwandte Themen