2 Fragen: Vergleich, aber wie? Was passiert in diesem Teil?

Status
Nicht offen für weitere Antworten.

marv

Mitglied
Hallo,

ich bin mal wieder bei Java angekommen, ich muss es fürs Studium lernen und es fällt mir schwer. Ich übe gerade mir einem Buch und bin an einem Punkt angekommen, wo es für mich nicht weiter geht. Es ist alles etwas arg abstrakt für mich.
Jetzt aber zu meinen Fragen. Ich habe einen kleinen "Flugsimulator" programmiert, dies ist eine Aufgabe aus dem Buch "Jetzt lerne ich Java".
Soweit sogut, nun habe ich 3 Türme generiert und möchte nun mit Hilfe von "if" eine Kollisionsabfrage machen. Aber mir fehlt hier absolut der Ansatz. Die Syntax einer if Abfrage kenne ich, aber ich weiß nicht wo ich die Vergleichswerte herbekomme.
Des Weiteren würde es mir helfen wenn mir jemand auf Deutsch :) also für Dummies quasi erklären köntne was genau in dem makierten Teil (siehe unten) passiert und wozu ich das mache. (Klari ch weiß es steht hier und da beschrieben, aber es bleibt bei mir einfach nicht hängen)

Hier mein Code:

Code:
public class Turm {
	Position m_position;
	int m_hoehe;
	int m_breite;
	int m_laenge;

	Turm (Position pos, int hoehe, int breite, int laenge) {
		m_position = pos;
		m_hoehe = hoehe;
		m_breite = breite;
		m_laenge = laenge;

	}

}
Code:
public class Position {
	// 2 Variablen deklareieren zur Positionsbestimmung
	int m_x;
	int m_y;

		//Konstruktor
		Position (int x, int y) {
			m_x = x;
			m_y = y;
	}
}
Code:
public class Flugzeug {
	String m_typ;
	int m_turbinen;
	int m_vmax;
	int m_reichweite;
	int m_spannweite;

	Position m_position;
	int m_hoehe;
	int m_aktgeschw;

	Flugzeug (Position pos,String typ, int turbinen, int vmax, int reichweite, int spannweite) {
		m_position = pos;
		m_typ = typ;
		m_turbinen = turbinen;
		m_vmax = vmax;
		m_reichweite = reichweite;
		m_spannweite = spannweite;
		m_position = new Position (0,0);
		m_hoehe = 0;
		m_aktgeschw = 0;


}
	//Ausgabe der akt. Geschwindigkeit
	void flugGeschAusgeben() {
			System.out.println ("");
			System.out.println ("Die aktuelle Geschwindigkeit betraegt: "+ m_aktgeschw);
		}

	int beschleunigung (int beschl){
		//erhoehen der Geschwindigkeit
		m_aktgeschw += beschl;
		return m_aktgeschw;
	}

	int bremsen (int brem){
		//verringern der Geschwindigkeit
		m_aktgeschw -= brem;
		return m_aktgeschw;
	}

}
Code:
public class FlugSimulator {

	public static void main (String[] args){

		Flugzeug Jet = new Flugzeug (new Position (70,120),"LearJet", 2, 1100, 7650, 23);
		Turm Turm1 = new Turm (new Position(70,120),100,25,35);
		Turm Turm2 = new Turm (new Position(100,150),120,20,60);
		Turm Turm3 = new Turm (new Position(110,110),80,15,12);

		Jet.beschleunigung (1120);
		Jet.bremsen (177);
		Jet.flugGeschAusgeben();
}
			//void kollision (){
				//Kollisionsmethode
				if( m_position == pos ) {
				System.out.println ("BOOM");
			}
			else {
				System.out.println ("Alles OK!");


	}
}

Das war mein Code.
Dies ist die Stelle die ich nicht raffe:
Code:
Position m_position;
	int m_hoehe;
	int m_aktgeschw;

	Flugzeug (Position pos,String typ, int turbinen, int vmax, int reichweite, int spannweite) {
		m_position = pos;
		m_typ = typ;
		m_turbinen = turbinen;
		m_vmax = vmax;
		m_reichweite = reichweite;
		m_spannweite = spannweite;
		m_position = new Position (0,0);
		m_hoehe = 0;
		m_aktgeschw = 0;
Und natürlich diesen Teil:
Code:
	//void kollision (){
				//Kollisionsmethode
				if( m_position == pos ) {
				System.out.println ("BOOM");
			}
			else {
				System.out.println ("Alles OK!");


	}

Danke schonmal für eure Hilfe.

Marv
 
S

SlaterB

Gast
die erste Stelle ist ein Konstruktor, bei denen die flüchtigen übergebenen Konfigurations-Parameter
langfristig in Exemplarvariablen des Flugzeugs gespeichert werden,

schlecht ist dort übrigens
m_position = new Position (0,0);
die übergebene Position wird damit gelöscht

-------

die zweite Stelle ist eine Operation, die Kollisionen bestimmt,
bisher enthält sie noch keinen allzu sinnvollen Code, daher muss man auch nicht groß drüber nachdenken,

die Operation könnte eine Position als Parameter übergeben bekommen,
dann macht der Vergleich langsam Sinn,
aber mit m_position.equals(pos) vergleichen, genau die gleiche Position wird es nicht sein (==)

equals() muss in Position natürlich noch implementiert werden

---------

eine Bewegung der Flugzeuge, eine Änderung ihrer Position, fehlt noch?
 

Murray

Top Contributor
Vielleicht hilft es, die Klasse Flugzeug mit ein paar Kommentaren zu versehen.
Code:
public class Flugzeug {                                                                               
                                                                                                      
   /* Deklaration von Instanzvariablen */                                                             
   String m_typ;                                                                                      
   int m_turbinen;                                                                                    
   int m_vmax;                                                                                        
   int m_reichweite;                                                                                  
   int m_spannweite;                                                                                  
   Position m_position;                                                                               
   int m_hoehe;                                                                                       
   int m_aktgeschw;                                                                                   
                                                                                                      
                                                                                                      
  /*                                                                                                  
     Deklaration eines Konstruktors (spezielle Methode, die eine Instanz der Klasse                   
     zurueckliefert)                                                                                  
  */                                                                                                  
   Flugzeug (Position pos,String typ, int turbinen, int vmax, int reichweite, int spannweite) {       
                                                                                                      
      /* Die an den Konstruktor uebergebenen Argumente werden in den                                  
         Instanzvariablen abgelegt */                                                                 
      m_position = pos;                                                                               
      m_typ = typ;                                                                                    
      m_turbinen = turbinen;                                                                          
      m_vmax = vmax;                                                                                  
      m_reichweite = reichweite;                                                                      
      m_spannweite = spannweite;                                                                      
                                                                                                      
      /* weitere Instanzvariablen werden initialisiert */                                             
      m_position = new Position (0,0); //--- das ist wohl Bloedsinn                                   
      m_hoehe = 0;                                                                                    
      m_aktgeschw = 0;                                                                                
                                                                                                      
   }                                                                                                  
                                                                                                      
   /* weitere Instanzmethoden */                                                                      
                                                                                                      
   //Ausgabe der akt. Geschwindigkeit                                                                 
   void flugGeschAusgeben() {                                                                         
         System.out.println ("");                                                                     
         System.out.println ("Die aktuelle Geschwindigkeit betraegt: "+ m_aktgeschw);                 
   }                                                                                                  
                                                                                                      
   int beschleunigung (int beschl){                                                                   
      //erhoehen der Geschwindigkeit                                                                  
      m_aktgeschw += beschl;                                                                          
      return m_aktgeschw;                                                                             
   }                                                                                                  
                                                                                                      
   int bremsen (int brem){                                                                            
      //verringern der Geschwindigkeit                                                                
      m_aktgeschw -= brem;                                                                            
      return m_aktgeschw;                                                                             
   }                                                                                                  
                                                                                                      
}

Zur Kollisionserkennung: zunächst musst du dir überlegen, was genau die Bedingung für eine Kollison ist. Normalerweise ist das wohl der Fall, wenn sich die beiden Körper "Jet" und "Turm" irgendwo im Raum überdecken. Die Türme sind durch eine X,Y-Position (soll das der Mittelpunkt oder eine der Ecken sein?) und drei Dimension im Raum als Quader beschrieben, das Flugzeug nur durch eine X,Y-Position und eine Spannweite, also quasi als Linie vereinfacht. Eine Kollsion ist also dann gegeben, wenn mindestens ein Punkt der Linie innerhalb eines der drei Turmquader liegt.
 

marv

Mitglied
Murray hat gesagt.:
/* weitere Instanzvariablen werden initialisiert */
m_position = new Position (0,0); //--- das ist wohl Bloedsinn

[/code]

Zur Kollisionserkennung: zunächst musst du dir überlegen, was genau die Bedingung für eine Kollison ist. Normalerweise ist das wohl der Fall, wenn sich die beiden Körper "Jet" und "Turm" irgendwo im Raum überdecken. Die Türme sind durch eine X,Y-Position (soll das der Mittelpunkt oder eine der Ecken sein?) und drei Dimension im Raum als Quader beschrieben, das Flugzeug nur durch eine X,Y-Position und eine Spannweite, also quasi als Linie vereinfacht. Eine Kollsion ist also dann gegeben, wenn mindestens ein Punkt der Linie innerhalb eines der drei Turmquader liegt.

Wieso ist der obere teil blödsinn? Meine Frage deshalb, da dies so in der Musterlösung beschrieben ist.

Zu dem ersten teil, danke für deine Definitionen, ich glaube ich muss einfach noch ein bissel damit arbeiten, damit ich die genauen Hintergründe wirkich verstehe.

So nun zur Kollision...

wann es eine Kollision geben soll:
Code:
      Flugzeug Jet = new Flugzeug (new Position (70,120),"LearJet", 2, 1100, 7650, 23);
      Turm Turm1 = new Turm (new Position(70,120),100,25,35);

Hier habe ich ja schon die gleichen Positionen hinterlegt. (beide 70,120)

Um es dreidimensional zu machen, müsste ich jetzt ja noch die Flughöhe hinterlegen, damit ich diese mit in die Abfrage einfließen lassen kann. Die Höhe der Türme habe ich ja z.B. bei Turm 1 (100,25,35).

Meine Frage ist auch, wie ich diese Daten überhaupt anspreche?

Wenn ich z.B. sage:
Code:
			//void kollision (){
				//Kollisionsmethode
				if( m_position == pos ) {
				System.out.println ("BOOM");
			}
			else {
				System.out.println ("Alles OK!");


	}

Wie spreche ich genau die Daten an die ich brauche z.B. Turm1 oder Jet?

Danke für eure Hilfe, ihr seid super schnell... Danke!
 
S

SlaterB

Gast
> Wieso ist der obere teil blödsinn? Meine Frage deshalb, da dies so in der Musterlösung beschrieben ist.

mein Post gelesen?

> Wie spreche ich genau die Daten an die ich brauche z.B. Turm1 oder Jet?

mein Post gelesen?
die Position muss als Parameter übergeben werden,
wer immer kollision() aufruft, sollte eher kollision(turm1.getPosition()) oder ähnliches aufrufen
 

marv

Mitglied
Hi,

also ich habe jetzt ein bissel rumprobiert, aber ich kommen nicht weiter.

Nur zum verständnis, ich sollte also diesen Punkt rausnehmen?
Code:
schlecht ist dort übrigens
m_position = new Position (0,0);
die übergebene Position wird damit gelöscht

Ich vergebe ja hier eine Position:
Code:
      Flugzeug Jet = new Flugzeug (new Position (70,120),"LearJet", 2, 1100, 7650, 23);
      Turm Turm1 = new Turm (new Position(70,120),100,25,35);
      Turm Turm2 = new Turm (new Position(100,150),120,20,60);
      Turm Turm3 = new Turm (new Position(110,110),80,15,12);

Indem ich mit new Position diese vergebe. Aber wie kann ich diese wieder aufgreifen um den Vergleich surchzuführen bwzüglich der Kollision?

equals gut, aber wie implementiere ich das in der Klasse Position?

Sorry bin ein Newbie...
 

marv

Mitglied
Ich habe jetzt irgendwie sowas probiert aber komme da auch nciht weiter, kann jemand schauen wo man Fehler ist...?

"Fragt mich nciht was ich mir dabei denke, mein Kopf platzt gleich! :-(
Code:
public class Position {
	// 2 Variablen deklareieren zur Positionsbestimmung
	int m_x;
	int m_y;



		//um den Wert zu bekommen
		public int getX(){
			return m_x;
		//	return m_y;
}

		//um den Wert zu bekommen
		public int getY(){
		//	return m_x;
		return m_y;
}


		//Konstruktor
	public Position (int x, int y) {
			m_x = x;
			m_y = y;

	}


	public boolean equals(Object Turm1){
		Position position = (Position) Turm1;
	    if ((m_x.equals(position.m_x) && (m_y.equals(position.m_y))

	    {
	     System.out.println ("BOOM");
	    }
	    else{
	     System.out.println ("Alles roger!");
}
 }
}
 
S

SlaterB

Gast
nicht so viel auf einmal, Position soll nur vergleichen,
die Boom-Ausgabe macht vielleicht die Operaton kollision() in FlugSimulator oder Flugzeug,

Code:
    /**
     * 
     * @param otherPosition
     * @return true wenn beide Positionen gleich sind (x, y)
     */
    public boolean equals(Position otherPosition)
    {
        return (this.m_x == otherPosition.m_x) && (this.m_y == otherPosition.m_y);
    }

edit:
ach, Object ist durchaus besser, ja, das obige gefährlich, nicht verwenden:

Code:
    /**
     * 
     * @param obj
     * @return true wenn beide Positionen gleich sind (x, y)
     */
    public boolean equals(Object obj)
    {
        if (!Position.class.isInstance(obj))
        {
            return false;
        }
        Position otherPosition = (Position)obj;
        return (this.m_x == otherPosition.m_x) && (this.m_y == otherPosition.m_y);
    }
 

marv

Mitglied
Murray hat gesagt.:
2. einfache Typen wie int vergleicht man mit ==

Hierzu kann ich sagen, dass ich es mit einer if Abfrage probiert habe und dann mit == vergleichen wollte. Ich wusste/weiß leider nicht wie ich auf die in der Klasse: Flugsimulator generierten new Position zurückgreifen kann???
Die wäre aus meiner Sicht die leichtere Möglichkeit gewesen, aber wie gesagt mir fehlt der Zugriff auf die new Position.

Bitte um Hilfe!

Zu 2.
Code:
    /**
     *
     * @param obj
     * @return true wenn beide Positionen gleich sind (x, y)
     */
    public boolean equals(Object obj)
    {
        if (!Position.class.isInstance(obj))
        {
            return false;
        }
        Position otherPosition = (Position)obj;
        return (this.m_x == otherPosition.m_x) && (this.m_y == otherPosition.m_y);
    }

Kann ich damit einfach int Werte vergleichen?

Ersetze ich wie folgt?

Object = z.B. Turm1 oder Jet?
class = ??? Welche Klasse soll hier rein?
obj = ??? pos???
otherPosition = ???

Mit den ??? Kann ich mich nicht anfreunden, bzw. finde in meinem Kopf keine Verbindung.[/quote]
 
S

SlaterB

Gast
> Kann ich damit einfach int Werte vergleichen?

die Operation vergleicht intern ints, ja,
aber die Operation selber kannst du nur verwenden, um Positionen zu vergleichen, darum gehts ja

> Ersetze ich wie folgt?

? deutsche Sprache ?

> Object = z.B. Turm1 oder Jet?

du solltest der Operation nur Positionen übergeben,
wenn du einen Turm übergibst, dann liefert die Operation immer false,
denn eine Position ist nie gleich einem Turm

> class = ??? Welche Klasse soll hier rein?

wieso rein? in Code tut man nix rein

> [Rest]

bitte konkrete deutsche Fragen stellen
 

marv

Mitglied
SlaterB hat gesagt.:
> Kann ich damit einfach int Werte vergleichen?

die Operation vergleicht intern ints, ja,
aber die Operation selber kannst du nur verwenden, um Positionen zu vergleichen, darum gehts ja

Gut soweit habe ich es verstanden. Aber wie beziehe ich mich wieder auf die Position, das ist mein problem.

Ich schreibe in der Klasse FlugSimulator ...(new Position 70,120)
damit habe ich ja eine Position generiert, entweder für den turm oder das jet.

Wie sage ich jetzt aber turm Position == jet Position???

> Ersetze ich wie folgt?

? deutsche Sprache ?

> Object = z.B. Turm1 oder Jet?

du solltest der Operation nur Positionen übergeben,
wenn du einen Turm übergibst, dann liefert die Operation immer false,
denn eine Position ist nie gleich einem Turm

> class = ??? Welche Klasse soll hier rein?

wieso rein? in Code tut man nix rein

> [Rest]

bitte konkrete deutsche Fragen stellen

Verstehe gerade nur Bahnhof sry.

Ich kann (sicher liegt es an meinem Brain) mit dem Code wenig anfangen bzw. ich habe keine Vorstellung davon wie udn wo ich sie in meinen Code einbinden soll.

@ SlaterB
Ich versuche mir mein komisches geschwafel zu verkneifen. :)

Vielen Dank für Deine/Eure Geduld.

Bin ein schwerer Fall denke ich!
 
S

SlaterB

Gast
> Wie sage ich jetzt aber turm Position == jet Position???

na so wie es der normale Menschenverstand vorgibt:
"Wenn der Turm und das Flugzeug die gleiche Postition haben, dann boom"
->
if (turm.getPosition().equals(jet.getPosition()) {
boom;
}

> Ich kann (sicher liegt es an meinem Brain) mit dem Code wenig anfangen bzw. ich habe keine Vorstellung davon wie udn wo ich sie in meinen Code einbinden soll.

die Operation muss in die Klasse Position, da hattest du sie ja auch schon in deinem Post 29. 10. 2007, 15:23

wenn du den Code nicht verstehtst, dann ist das so,
falls du Fragen dazu hast, kannst du sie stellen ;)

statt
if (!Position.class.isInstance(obj))
geht auch
if (!(obj instanceof Position))
falls dir das was sagt
 

marv

Mitglied
SlaterB hat gesagt.:
statt
if (!Position.class.isInstance(obj))
geht auch
if (!(obj instanceof Position))
falls dir das was sagt

Sorry das sagt mir nichts :-( Habe mir das mit den equals auch erst angelesen und eben nicht ganz verstanden. :-(
Bin echt ziemlicher Anfänger und kann nur sagen, es interessiert mich sehr aber es fällt mir schwer.

Aber dies:
Code:
    public boolean equals(Object obj)
    {
        if (!Position.class.isInstance(obj))
        {
            return false;
        }
        Position otherPosition = (Position)obj;
        return (this.m_x == otherPosition.m_x) && (this.m_y == otherPosition.m_y);

Was ich an dem Code nicht verstehe:
- Was bedeutet (Object obj)
- Was bedeutet isInstance?
- Ich denke mir, dass hier : Position otherPosition = (Position)obj; die die beiden Positionen (jet und Turm) herangezogen werden und anschließend der Vergleichswert zurückgegeben wird?!?!


Habe ich jetzt in die Klasse Position eingepflegt und das compilieren funktionier hervorragend! :) *froi*

Nun werde ich mich daran machen ein Methode kollision() zu generieren, mal sehen ob ich das hinbekomme! :-/

Danke!
 
S

SlaterB

Gast
> Was bedeutet (Object obj)

du hast doch selber schon mal
public boolean equals(Object Turm1){
programmiert,hast du das damals auch nicht verstanden?

das ist ein Parameter vom Typ Objekt (beliebiger Typ), mit irgendeinen Namen, statt obj kannst du auch krautsalat schreiben,
Turm1 ist ein schlechter Name, denn der würde implizieren, dass ein Objekt der Klasse Turm übergeben wird,
sinnvoll ist aber nur, Objekte der Klasse Position zu übergeben

> Was bedeutet isInstance?

guck an, ein deutsche Satz, war das so schwer?

der Code prüft, ob das übergebene Objekt auch wirklich eine Position ist,
und nicht etwa ein Turm, denn Turm ist nicht erlaubt

> dass hier : Position otherPosition = (Position)obj; die die beiden Positionen (jet und Turm) herangezogen werden und anschließend der Vergleichswert zurückgegeben wird?!?!

wie auch immer, da kann man ja alles rauslesen,
Fakt:
es wird eine Position übergeben (von anderen Klassen wie Turm, Flugzeug oder beliebige andere, die Position haben können muss Position selber nix wissen)
und diese übergebene Position mit der eigenen/ mit sich selber verglichen,
denn die Operation ist ja in einem bestimmten Positions-Objekt drin
 

fehlerfinder

Bekanntes Mitglied
Hier mal eine Multi-Quote:

SlaterB hat gesagt.:
guck an, ein deutsche Satz, war das so schwer?
hey hey, sachte - wir sind doch hier nicht in der Schule. Außerdem - lies mal eben, was du da geschrieben hast... alles klar? ;-) - also, immer schön cool bleiben

marv hat gesagt.:
Meine Frage deshalb, da dies so in der Musterlösung beschrieben ist.
Musterlösungen können durchaus auch Fehler enthalten. ;-)

marv hat gesagt.:
Nur zum verständnis, ich sollte also diesen Punkt rausnehmen?
Code:
schlecht ist dort übrigens
m_position = new Position (0,0);
die übergebene Position wird damit gelöscht
m_position wird direkt in der ersten Zeile deines Flugzeug-Konstruktors mit der übergebenen 'pos' belegt. Und eben diese 'pos' überschreibst du mit der o.g. Angabe. - Klar geworden?


marv hat gesagt.:
Hierzu kann ich sagen, dass ich es mit einer if Abfrage probiert habe und dann mit == vergleichen wollte. Ich wusste/weiß leider nicht wie ich auf die in der Klasse: Flugsimulator generierten new Position zurückgreifen kann???
Die wäre aus meiner Sicht die leichtere Möglichkeit gewesen, aber wie gesagt mir fehlt der Zugriff auf die new Position.
Da dir irgendwie niemand verraten will, wie du auf die Positionen zugreifst, erbarme ich mich mal ;-)

"Theoretisch" (aber NIEMALS in der Praxis!!!) könntest du deine x_pos und y_pos in der Klasse Position als public definieren und (nach:
Code:
Position myPos = new Position(100, 200);
mit
Code:
curX = myPos.x_pos;
curY = myPos.y_pos
darauf zugreifen. (Jaja, ihr Gurus, schreit nur alle ;-) - man sollte auch mal NEGATIV-Beispiele bringen). Das ist also absolut nicht die Art, wie mit Java programmiert wird.

"Praktisch" hast du daher in der Klasse Position zwei Methoden (sogenannte "getter-Methoden"):
Code:
public int getX()
{
    return x_pos;
}
public int getY()
{
    return y_pos;
}
, die du stattdessen verwendest, also in der Art:
Code:
curX = myPos.getX();
curY = myPos.getY()
Das ist dann korrekter und absolut krisensicherer Java-Programmierstil. Alles klar?
 

marv

Mitglied
fehlerfinder hat gesagt.:
"Praktisch" hast du daher in der Klasse Position zwei Methoden (sogenannte "getter-Methoden"):
Code:
public int getX()
{
    return x_pos;
}
public int getY()
{
    return y_pos;
}
, die du stattdessen verwendest, also in der Art:
Code:
curX = myPos.getX();
curY = myPos.getY()
Das ist dann korrekter und absolut krisensicherer Java-Programmierstil. Alles klar?

Erstmal vielen Dank, dass du noch einmal geschrieben hast. Wirklich nett von dir, dass du mir eine Lösung gibst die zu einem Anfänger wie mir passt.

Ich habe den ganzen Flugsimulator nochmal umgebraut, abseits der Musterlösung.

Es sieht nun wie folgt aus (ich habe mich auf das wesentliche beschränkt).

Code:
public class MWTurm {

	private int f_x;
	private int f_y;
	private int f_z;

	public MWTurm (int x, int y, int z){
		this.f_x = x;
		this.f_y = y;
		this.f_z = z;
		}

	public MWTurm (){
		this(0,0,0);
		}

	public int get_x(){
	return this.f_x;
		}

	}

public class MWFlugzeug {

	private int f_x;
	private int f_y;
	private int f_z;

	public MWFlugzeug (int x, int y, int z){
		this.f_x = x;
		this.f_y = y;
		this.f_z = z;
		}

	public MWFlugzeug (){
		this(0,0,0);
		}

	public void setPosition (int x, int y, int z){
		this.f_x = x;
		this.f_y = y;
		this.f_z = z;
		}

	public int get_x(){
	return this.f_x;
		}


	}
public class MWKollision {

	public boolean getKollision (int x1, int x2){
		return (x1 == x2);
		}

}

public class TestFlugueberwachung {

	public static void main (String [] args){

		MWTurm t= new MWTurm (10,10,10);
		MWFlugzeug f= new MWFlugzeug (11,10,10);
		MWFlugzeug f2= new MWFlugzeug ();


		if ((t.get_x()==f.get_x())) {
				System.out.println ("");
				System.out.println ("Kollision\n");
		}
		else {	System.out.println ("");
				System.out.println ("Keine Kollision\n");
		}

		f.setPosition(10,10,10);

		if ((t.get_x()==f.get_x())) {
			System.out.println ("Kollision\n");
		}
		else {	System.out.println ("Keine Kollision\n");
		}

		f2.setPosition(10,0,0);

		if ((t.get_x()==f2.get_x())) {
				System.out.println ("Kollision\n");
		}
		else {	System.out.println ("Keine Kollision\n");
		}

	}
}

Nicht ganz ohne Hilfe, hatte deinen Post hier leider zu spät gesehen, ich wollte es nämlich eigentlich selbst machen habe aber dann weil ich aus der komplexen Lösung nicht schlau wurde meinen Kollegen gefragt.

Ich denke so ist es für jeden Anfänger nicht ganz so komplex und vor allem nicht so absolut abstrakt, man kann Verbindungen erkennen, die mir z.B. eher schwer fallen.

Danke an euch alle, ich werde mich bestimmt bald wieder melden, natürlich mit einem neuen Problem! :)

Viele Grüße

Marv
 

marv

Mitglied
SlaterB hat gesagt.:
du vergleichst nur die x-Werte, y ist egal?

Sorry aber da ich blutiger Anfänger bin wie schon mehrmals gesagt, habe ich es noch nicht geschafft in die zwei bzw. dreidimensionale zu gehen.

Werde mich heute Abend bzw. morgen früh wieder ranmachen und dann die Ergebnisse posten :)

Viele Grüße

Marv
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
H Fragen zu Wrapperklassen Java Basics - Anfänger-Themen 29
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
A Bei VierGewinnt fragen ob man gegen CPU oder Menschen spielen will. Java Basics - Anfänger-Themen 7
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
E Bäume/ allgemeine Fragen Java Basics - Anfänger-Themen 21
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
S Diverse Fragen vor Schulaufgabe ;) Java Basics - Anfänger-Themen 4
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
C 3 Fragen rund um Klassenattribute Java Basics - Anfänger-Themen 8
L Erste Schritte Log4J Fragen Java Basics - Anfänger-Themen 5
NeoLexx Fragen zu diversen Elementen der Javabibliothek Java Basics - Anfänger-Themen 5
D Budget Manager fragen zur Umsetzung Java Basics - Anfänger-Themen 9
N Fragen zur Datenspeicherung Java Basics - Anfänger-Themen 45
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
CT9288 Fragen zu Java Java Basics - Anfänger-Themen 16
W Fragen zu Generics Java Basics - Anfänger-Themen 14
T ObjectInput/OutputStream Fragen zur Funktionsweise Java Basics - Anfänger-Themen 3
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
H Java Quereinsteiger Roadmap und Fragen Java Basics - Anfänger-Themen 29
H fragen Java Basics - Anfänger-Themen 15
M Samelsarium Grundlegender Fragen 2 Java Basics - Anfänger-Themen 9
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
J Fragen zu synrchonized und kritischen Abschnitten Java Basics - Anfänger-Themen 5
S Fragen zu einem Rechentrainer Java Basics - Anfänger-Themen 2
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
D Fragen zur Klassen Java Basics - Anfänger-Themen 4
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
D Objekte-Fragen Java Basics - Anfänger-Themen 1
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Erste Schritte Fragen zur For-Schleife Java Basics - Anfänger-Themen 9
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
C Fragen zum Spigot Plugin (1.8) Java Basics - Anfänger-Themen 6
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
L fragen zu arrays Java Basics - Anfänger-Themen 8
L Fragen zu selbstgeschriebenem Programm Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
H grundlegende Fragen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
N Programm: Fragen beantworten Java Basics - Anfänger-Themen 6
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
D Rekursion Allgemeine Fragen Java Basics - Anfänger-Themen 2
D [Fragen] zu Methoden Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
J Allgemeine Fragen zur GUI Java Basics - Anfänger-Themen 1
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
DStrohma Grundsätzliche Fragen zu Drag & Drop Java Basics - Anfänger-Themen 1
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
T Fragen zu Set / Relationen verknüpfen Java Basics - Anfänger-Themen 4
S 2 Fragen Java Basics - Anfänger-Themen 4
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
N Java Fragen... Java Basics - Anfänger-Themen 10
F ExecutorService Fragen! Java Basics - Anfänger-Themen 2
O HashMap Fragen Java Basics - Anfänger-Themen 8
C Fragen zu Arrays Java Basics - Anfänger-Themen 19
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
S Fragen zur Implementierung eines Adressbuches Java Basics - Anfänger-Themen 20
S Fragen zu Arrays Java Basics - Anfänger-Themen 6
K Diverse Fragen zum Fehlerlogging Java Basics - Anfänger-Themen 9
N StringReader - Fragen Java Basics - Anfänger-Themen 8
C Einige Fragen zu Frames Java Basics - Anfänger-Themen 7
M Erste Schritte Allgemeine Fragen Java Basics - Anfänger-Themen 4
PaulG Fragen zu Binärbaum Java Basics - Anfänger-Themen 21
P Methoden Aquarium (Fragen zum Scanner) Java Basics - Anfänger-Themen 5
T Erste Schritte Fragen zu meinen kleinen Programm Java Basics - Anfänger-Themen 9
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
O Zwei Fragen zu Methoden Aufrufen Java Basics - Anfänger-Themen 5
B fragen zur for-schleife und arrays Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben