Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 13:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



BlueJ - Benötige Hilfe

Discussion on BlueJ - Benötige Hilfe within the Java forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jul 2013
Posts: 4
Received Thanks: 0
BlueJ - Benötige Hilfe

Hallo Community,

ich habe zum Thema BlueJ eine Aufgabe erhalten, und zwar soll ich ein "Aquarium" programmieren. Dieses soll einen Fisch enthalten, welcher automatisiert schwimmen kann, beim Kontakt mit dem Rand soll er umdrehen.


zudem soll es eine "Pflanze" geben(einfaches langes rechteck), welche der Fisch bei Berührung "auffressen" soll, bzw einen Teil davon.

Leider bin ich aus dem Thema BlueJ fast komplett raus und weiß nicht wie ich die automatisierte Bewegung/bzw die Richtungsänderung hinbekommen soll. Ansätze habe ich (Lösung soll ohne SuM-Bibliothek erfolgen und auch keine Applet sein), jedoch scheint mein bisheriger Ansatz nicht wirklich gut zu sein.

Würde mich über Hilfe freuen! Kann, falls es gewünscht ist auch mal meine Ansätze posten, hoffe aber darauf, dass ihr diese nicht benötigt ^^

LG
apfelkaugummi is offline  
Old 05/28/2015, 20:16   #2
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Ich schreibe dir hier mal eine Lösungsstrategie, da es eine beschissene Arbeit ist mit SuM zu "programmieren". So lernst du auch wenigstens etwas dabei.

Allgemein:
Du solltest 3 Klassen erstellen, zum einen das Aquarium, den Fisch und die Pflanze.
In der Klasse "Fisch" speicherst du die Position des Fisches, sowie die Funktionen zum zeichnen und Bewegen. Ebenfalls sollte es eine boolean-Funktion geben, die überprüft, ob die Position des Fisches gleich der Position der Pflanze, sowie der Rand erreicht wurde.
In der Pflanze solltest du ebenfalls die Position speichern und eine Funktion, die den Fisch verschluckt

Verschlucken des Fisches:
Du fragst bei jeder Bewegung zusätzlich mit ab, ob sich der Fisch in der Pflanze befindet, sollte es der Fall sein, rufst du die Verschlucken-Funktion der Pflanze auf und die Bewegung wird weiterhin so lange weiterhin ausgeführt, wie du willst.
In der Verschlucken-Funktion setzt du deinen Stift für die Pflanze in den radiere-Modus und zeichnest das Rechteck erneut und erneut bis der Fisch verschluckt wurde.

Bewegung:
Fisch wegradieren, Fisch bspw. 10 pixel in Richtung X-Achse erneut zeichnen.
Das ganze packst du am besten in eine Endlosschleife. sobald die Koordinaten des Fisches ~ Bildschirmbreite (Musst du mal ausprobieren) ist führst du die Bewegung in -10 Pixel aus. Von Vorteil wäre es natürlich, wenn der Fisch auch gespiegelt gezeichnet wird. Sobald die Position des Fisches ~ Bildschirmbreite(0) ist, das ganze Spiel erneut.


Poste doch mal deine Ansätze, dann können wir dir auch besser weiterhelfen. Allerdings kannst du nicht erwarten, dass hier jemand das komplette Programm für dich schreibt.
Zunft is offline  
Thanks
1 User
Old 05/29/2015, 00:08   #3
 
elite*gold: 0
Join Date: Jul 2013
Posts: 4
Received Thanks: 0
Ich danke dir schonmal für die Antwort!

Die drei Klassen hab ich bereits.
mein Fisch(ein Polygon/Vieleck) bewegt sich auch schon von rechts nach links und stoppt am Rand.

hier der Code für die Bewegung.

Ich denke die Spiegelung bekomme ich auch noch hin...muss das alles in die oben genannte Methode autoSchwimm ?

Nächstes Problem, der Fisch soll per Zufall auf und ab schwimmen? also ich habe es schon hinbekommen eine Methode zu schreiben bei der mir eine zufällige Zahl zwischen 0und6 ausgegeben wird...nur wie wende ich diese auf den Fisch an ? bzw..so würde er ja bloß nach oben schwimmen aber nicht nach unten. Zudem müsste man alle, sagen wir mal 50 Pixel eine neue Zahl generieren lassen ? Weiß dazu jemand ne Lösung bzw den Ansatz ?

hier die Methode für die Zufallszahl

Hoffe ich habe mich einigermaßen verständlich ausgedrückt


EDIT: Das Spielfeld (Aquarium) ist 1000*700 groß, falls das hilft
apfelkaugummi is offline  
Old 05/29/2015, 00:27   #4
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Quote:
muss das alles in die oben genannte Methode autoSchwimm ?
Was meinst du?


So würde ich es machen:

Code:
public class Fisch
{
	//Variablen zum Speichern der Koordinaten
	int posx, posy;
	
	//Startposition wird an x, y übergeben, sobald neue Instanz erzeugt wird
	public Fisch(int x, int y)
	{
		posx = x;
		posy = y;
	}
	
	public void autoSchwimm()
	{
		for(int distance = 1000; distance > 0; distance--)
		{
			int rnd = random();
			bewege(1, rnd);
			posx++;
			posy = posy + rnd;
		}
	}
	
	//Zufallszahl um wie viel Einheiten gestiegen/gesunken (Ebenfalls Zufall) werden soll.
	public int random()
	{
		int rnd = Math.random()*6+1;
		boolean rndBool = Math.random() < 0.5;
		
		if(!rndBool)
			rnd = 0 - rnd;
		
		return rnd;
	}
	
	public void bewege(int bewegeX, int bewegeY)
	{
		
		//... Dein Code zum bewegen z.B.
		horizontalBewegen(bewegeX);
		vertikalBewegen(bewegeY);
		
		
	}
}
Zunft is offline  
Old 05/29/2015, 02:06   #5
 
elite*gold: 0
Join Date: Jul 2013
Posts: 4
Received Thanks: 0
Quote:
Was meinst du?
Ob die Spiegelung des Fisches auch in die schleife von autoSchwimm rein muss ^^


okay an eine for schleife hab ich vorerst nicht gedacht..sieht aber bei dir ganz logisch aus ! Ich probier mal weiter daran rum...ich danke dir auf jedenfall für die Mühe...naja wobei es für dich wahrscheinlich eine sehr einfach Sache ist

lg
apfelkaugummi is offline  
Old 05/29/2015, 12:00   #6
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Quote:
Originally Posted by apfelkaugummi View Post
Ob die Spiegelung des Fisches auch in die schleife von autoSchwimm rein muss ^^
Genau das ja eben nicht, die Spiegelung tritt ja erst ein sobald der Rand erreicht wurde also nach der Schleife.
Zunft is offline  
Old 05/29/2015, 19:33   #7
 
elite*gold: 0
Join Date: Jul 2013
Posts: 4
Received Thanks: 0
Okay klingt logisch ! ^^ zumindest hab ich die automatische Bewegung hinbekommen, mit deiner Hilfe.

Aber mal was anderes, jetzt ist es ja so das der fisch die distance 1000 zurücklegt, wie mach ich es, dass er die distance entsprechend bis zum Rand zurücklegt...

Da muss man ja die xPos abfragen die während der schleife aktualisiert wird. Und wenn die xpos dem Rand entspricht soll er umdrehen...iirgendwie steh ich aufn schlauch und komm damit nicht weiter
apfelkaugummi is offline  
Old 05/30/2015, 01:16   #8
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Code:
Fisch fisch = new Fisch(0, 100);
if(bildschirm.gibBreite() == fisch.posx)
{
    dreheUm();
}
Hierbei muss die Variable posx in der Klasse Fisch public sein. Das gleiche Prinzip musst du auch auf der gegenüberliegenden Seite anwenden.
Zunft is offline  
Reply

Tags
aquarium, bluej, hilfe, java, programmieren


Similar Threads Similar Threads
Java -> BlueJ Hilfe
03/23/2015 - Java - 4 Replies
Wie kann ich beim einem Attribut z.b geburtstag die bereits zuvor deklarierte Klasse als Datentyp angeben ? Klasse die ich zuvor hatte war Datum die jeweils tag, monat und jahr festlegt. Könnt mich auch in skype adden und ich zeige euch was ich meine falls ihr nicht versteht was ich wissen will :P DANKE AN ALLE schon mal.
[BlueJ Java Hilfe]
11/25/2014 - Java - 4 Replies
Moin Com, Ich bin so NetBeans verwöhnt, dass ich per Hand weder Fenster noch Buttons schreiben kann. So weit bin ich: import java.awt.*; import javax.swing.*; public class Test extends JFrame { private JButton jbutton1;
Hilfe bei Bluej/Java programmierung
04/28/2013 - General Coding - 7 Replies
Moin Leute, ichbrauche jemanden der sich mit Java/Bluej. Wer sich halbwegs auskennt soll mich bitte anschreiben. es geht um einfache Dinge wie z.b. das programmieren eines Würfel etc. mfg yohnson :mofo:
Suche Hilfe bei BlueJ(Java)
01/16/2013 - General Coding - 20 Replies
Hallo, ich weiß nicht ob ihr BlueJ kennt , aber das haben wir auf jedenfall in der Schule in Informatik und ich muss als Hausaufgabe eine Methode schreiben. Das soll so eine Liste sein(also sowas ähnliches wie ein Array) und man weiß nicht wie lang die Liste ist, also das muss immer gehen und die soll den Durchschnitt aller Werte nehmen. ALso das soll ich in etwa machen und abgeben. Kann mir da jemand helfen? Würde dafür dann ein bischen Paypal oder sowas überweisen, wir werden uns...
Hilfe beim BlueJ Projekt
09/17/2012 - General Coding - 1 Replies
Moin Leute wir haben im moment BlueJ als Thema. Jetz sollen wir zuerst ein Bild aus Dreiecken/Kreisen/Quadraten und Rechtecken machen. Dann mitschreiben und später bei Zeichnungen eintragen das es sich von selbst zeichnet. Ich hab mein Bild falsch mitgeschrieben und jetzt passt nichts zusammen. Hat einer von euch ein Bild + Den Befehlen zu dem Bild erstellen für mich??? Brauche ich echt dringend damit ich fertig werde muss das ganze noch bewegen.



All times are GMT +1. The time now is 13:25.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.