sokrates
Goto Top

Zwei Objekte sollen untereinander etwas austauschen, doch wie?

Hallo,

wenn ich beispielsweise einmal Spieler-1 und Spieler-2 habe und der erste Spieler dem 2. etwas soll (Spieler ist hier einfach nur eine Variable), beispielsweise "Geld".
Wie kann man das noch eleganter hinbekommen?
Das hier ist der einfache Weg mit zwei verschiedenen Variablen. Wie geht das gleiche, nur mit Arrays?

y = 500;
Spieler-1_Geld = 2000;
Spieler-2_Geld = 800;
Spieler-1_Geld = Spieler-1_Geld  - y;
Spieler-2_Geld = Spieler-2_Geld -+ y;



Wie "tauschen" Arrays untereinander solche Daten?

X

Content-Key: 124278

Url: https://administrator.de/contentid/124278

Printed on: April 25, 2024 at 01:04 o'clock

Member: holohype
holohype Sep 05, 2009 at 22:56:58 (UTC)
Goto Top
Der Algorythmus wurde an die Angaben angepasst.

// Algorythmus
y = 500; 
Spieler-1_Geld = 2000; 
Spieler-2_Geld = 800;
//Geldtransfair Spieler_2 nach Spieler_1  
Spieler-1_Geld  + y;
Spieler-2_Geld  - y;
//Geldtransfair Spieler_1 nach Spieler_2
Spieler-2_Geld  + y;
Spieler-1_Geld  - y;

Objektorientierter Ansatz.
Die Notwendigkeit in solchen Objekte mit Kapselung zu arbeiten, bleibt hier unberücksichtigt.

/**
 * @author holohype
 * http://www.HoloH.de
 */
public class Spieler
{
  // Default Tasche lehr
  public float  geld = 0;
  
  // Lehrconstructor
   public Spieler ( )
  {
  }
  
  // Konstruktor mit Parameter für Geldwert g
  public Spieler 
  ( 
    float g
  )
  {
    // Zuweisung des Geldwert an dieses Objekt
    this.geld = g;  
  }
  
  // Geldübergabe zwischen 2 Spielern
  // Spieler s gibt geld g 
  public void bezahleMir 
  ( 
    Spieler s,
    float g
  )
  {
    this.geld = this.geld + g;       
    s.geld = s.geld - g;
  }
  
  /*
  * Die Methode wird mit Run ausgeführt.
  *  Sie dient ausschließlich Demonstrationszwecken
  */
  public static void main 
  ( 
    String  args 
  )
  {
    float y = 500; 
    Spieler spieler_1 = new Spieler ( 2000 );
    Spieler spieler_2 = new Spieler (  800  );
    // Werte ausgeben
    System.out.print   ( " spieler_1 hat "  );  
    System.out.print   ( spieler_1.geld );
    System.out.print   ( " spieler_2 hat "  );  
    System.out.println ( spieler_2.geld );
    
    //Geldtransfair von spieler_1 nach spieler_2
    spieler_1.bezahleMir ( spieler_2, y );
    System.out.print    ( " spieler_1 hat  "  );  
    System.out.print    ( spieler_1.geld ); 
    System.out.print    ( " spieler_2 hat  "  );  
    System.out.println ( spieler_2.geld );    

    //Geldtransfair von spieler_2 nach spieler_1
    spieler_2.bezahleMir ( spieler_1, y );
    System.out.print    ( " spieler_1 hat  "  );  
    System.out.print    ( spieler_1.geld );    
    System.out.print    ( " spieler_2 hat  "  );  
    System.out.println ( spieler_2.geld ); 
        
  } // public static void main ( ... )
       
} // public class Spieler

Ausgabe:

spieler_1 hat 2000.0 spieler_2 hat 800.0
spieler_1 hat 2500.0 spieler_2 hat 300.0
spieler_1 hat 2000.0 spieler_2 hat 800.0

Bei Arrays ist der Datentyp geld und die Methode bezahleMir anzupassen.

Ein Array kann in Java für einfache typen (float, int...) in der Form;
float geld = new float{5];
erzeugt werden.

5 ist die Anzahl der Elemente im Array, float ist der Datentyp, in diesem Fall eine Gleitkommazahl.

Java hat auch Klassen die Arrays verwalten. Diese kan man genauso, wie oben spieler, erzeugen.
Hier kann man sehr komfortabel die Elmente über die Methoden der Klasse handeln.
Dieses währe in der Class Spieler zu definieren.
Member: Sokrates
Sokrates Sep 06, 2009 at 08:57:07 (UTC)
Goto Top
Danke erstmal.
Ich werd es später mal ausprobieren und sag dann Bescheid, wie es ist face-smile

X
Member: Sokrates
Sokrates Sep 25, 2009 at 19:01:41 (UTC)
Goto Top
Funktioniert einwandfrei.
Vielen Dank face-smile

X