Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Mindstorm Roboter in Java programmieren

bumble_beee - 36
Profi (offline)

Dabei seit 12.2004
972 Beiträge

Geschrieben am: 14.06.2011 um 20:43 Uhr

Hallo Zusammen,

ich muss eine Programmierung machen und hab da noch n paar Start-Probleme.
Wir sollen ein Programm in Java schreiben, welches naher zu einem Roboter passen sollen. Der Roboter soll theoretisch von Tür zu Tür fahren und vor jeder Tür kurz stehen bleiben. Vorher soll geprüft werden, ob er beladen ist.

Befehle wären z.B bot.fahre, bot.rechts, bot.warte
ich hab aber immer und überall eine Fehlermeldung
Ich weiß aber auch nicht, wie man sowas Deklariert :(
Wäre dankbar für jede Hilfe...
wenn euch noch ne Info fehlt, einfach bescheid geben :)

DANKEEEEE

public class Roboter {
String bot;
int fahre;
String rechts;
String links;
int warten =30;
int warte =5;
boolean istbeladen = true


while (bot.istbeladen()) {
bot.fahre(-400);
bot.rechts();
bot.fahre(300);
bot.warten(30);
bot.rechts();
bot.fahre(250);
}

while (bot.istbeladen(false)) {
bot.warte(5);
}

}

Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist

eddy_s - 38
Anfänger (offline)

Dabei seit 11.2010
6 Beiträge
Geschrieben am: 14.06.2011 um 20:52 Uhr

Wenn du einen wert in klammern übergibst, muss du dazu eine methode schreiben. also in die klasse "roboter" zum beispiel für bot.fahre(-400) die methode: public void fahre(int){ ... }
dann brauchst noch nen konstruktor und ne main-methode in der du dann alles ausführst.
Hard_Eddy
Halbprofi (offline)

Dabei seit 02.2010
350 Beiträge

Geschrieben am: 14.06.2011 um 21:01 Uhr

ich würde der Einfachheit halber mit Parent und Child arbeiten. Das macht die Klasse übersichtlicher

Ja, ich weiß.

bumble_beee - 36
Profi (offline)

Dabei seit 12.2004
972 Beiträge

Geschrieben am: 14.06.2011 um 21:36 Uhr

super danke
hab schonmal ein paar Fehlermeldungen weg :D
habe die Methoden gemacht und das hat geholen
Konstruktor hat ich auch schon überlegt, aber dann nich so ganz verstanden wozu ich den brauche, weil ich ja nichts ausgeben möchte, also mit den Parametern

sieht jetzt so aus:

public class Roboter {

int fahre;
String rechts;
String links;
int warten =30;
int warte =5;
boolean istbeladen = true;

Roboter bot = new Roboter ();

// Methoden
private void fahre(int i) {
}

private void warten(int i) {
}

private void rechts() {
}

private void warte(int i) {


while(bot.istbeladen) {
bot.fahre(-400);
bot.rechts();
bot.fahre(300);
bot.warten(30);
bot.rechts();
bot.fahre(250);
}

while (bot.istbeladen(false)) {
bot.warte(5);
}

while(bot.istbeladen) {
bot.warten(30);
bot.rechts();
bot.fahre(300);
}

while(bot.istbeladen(false)) {
bot.rechts();
bot.fahre(300);
}

while(bot.istbeladen) {
bot.warten(30);
bot.rechts();
bot.fahre(250);
}

while (bot.istbeladen(false)) {
bot.rechts();
bot.fahre(250);
}
while (bot.istbeladen) {
//fängt hier von Stelle 3 wieder an ->
}
while (bot.istbeladen(false)) {
//fängt hier von vorne wieder an
}
}

private boolean istbeladen(boolean b) {
return false;
}

public static void main (String[] args) {
new Roboter();
}
}


ich bin mir aber total unsicher, ob das was ich da fabrizier was taugt :D
bin absoluter neuling und das ist eine selbstlernaufgabe fürs studium


Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist

download - 33
Halbprofi (offline)

Dabei seit 07.2006
181 Beiträge

Geschrieben am: 14.06.2011 um 21:53 Uhr

Zitat:

ich bin mir aber total unsicher, ob das was ich da fabrizier was taugt :D

Nicht wirklich^^
z.B. erstellst du in der Deklaration der Klasse Roboter eine Instanz zu einem neuem Roboter.

Leider kann ich nicht direkt Java sondern C++ aber eines kann ich dir sicher sagen:

Zitat:

private void fahre(int i) {
}

So eine Funktion hat gar keinen Zweck, wenn die aufgerufen wird passiert absolut nichts.

http://ouned.de

bumble_beee - 36
Profi (offline)

Dabei seit 12.2004
972 Beiträge

Geschrieben am: 14.06.2011 um 21:56 Uhr

ja denk ich mir
diese Methoden hat mir Eclipse aus den Fehlermeldungen erstellt... und ich hab sie einfach mal so blind übernommen
weil mir derzeit jeder ansatz fehlt... ich weiß nich wie ich deklarieren muss oder was auch immer
steh grad voll auf m schlauch :-D

Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist

RoHaN - 45
Profi (offline)

Dabei seit 04.2006
698 Beiträge

Geschrieben am: 14.06.2011 um 22:13 Uhr

vieleicht solltest du dir erstmal etwas einfachere bsp anschauen wo es um die grundstruktur eines Programms geht und dann mit methodenaufrufen usw anfangen :-)

Alcohol doesn't solve any problems, but if you think again, neither does Milk !!!

bumble_beee - 36
Profi (offline)

Dabei seit 12.2004
972 Beiträge

Geschrieben am: 14.06.2011 um 22:27 Uhr

Zitat von RoHaN:

vieleicht solltest du dir erstmal etwas einfachere bsp anschauen wo es um die grundstruktur eines Programms geht und dann mit methodenaufrufen usw anfangen :-)


mit den methoden hab ich ansich kein problem
die anfänge kenn ich von java
ich bin nur im zusammenhang mit genau dem beispiel überfordert
bisher waren es halt aufgaben, wo naher enifach am bildschirm ausgegeben wurden und nich auf ein Roboter bezogen

Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist

Thulsadoom - 36
Champion (offline)

Dabei seit 01.2006
2051 Beiträge

Geschrieben am: 14.06.2011 um 22:47 Uhr
Zuletzt editiert am: 14.06.2011 um 22:48 Uhr

was mal super wäre, wäre die komplette aufgabenstellung zu sehen, und nicht nur codeschnipsel. dann könnte man dir vielleicht besser helfen.

Warum? Weil ich es kann!

Klischeepunk - 41
Champion (offline)

Dabei seit 01.2005
8907 Beiträge

Geschrieben am: 15.06.2011 um 01:07 Uhr

Zitat von bumble_beee:


Konstruktor hat ich auch schon überlegt, aber dann nich so ganz verstanden wozu ich den brauche, weil ich ja nichts ausgeben möchte, also mit den Parametern

Dein Konstruktor wird durchlaufen wenn du ein neues Objekt vom Typ Klasse anlegst. Also hier was du eben mit new Roboter() fabrizierst. Hier haben Ausgaben/Eingaben herzlich wenig verloren, er ist schlichtweg dazu da, um deine Klasse auf "Starteinstellungen" zu bringen. (Bspw. startet das Attribut "Point Ausgangsposition" immer mit "= new Point(0,0);" oder das Attribut "int AnzahlFuesse = 4;" solche geschichten. hier kannst du desweiteren brav deine exceptions werfen um sicher zu gehn ob das objekt von $Klasse korrekt erstellt wurde (Konstruktor ohne Prrobleme durchlaufen? Voila, es existiert).
Du kannst innerhalb deines Konstruktors natürlich auch direkt Werte die Übergeben wurden verwenden ( = new Mammal(eHuman, 2, 2) führt zu einem Objekt vom Typ Mammal einem enum "eHuman", 2 Händen und 2 Füßen... wär in dem Fall unsauberes klassendesign aber sollte klarmachen wozu's dient)

Dieser Post wurde 2 mal ROT-13 verschlüsselt.

Klischeepunk - 41
Champion (offline)

Dabei seit 01.2005
8907 Beiträge

Geschrieben am: 15.06.2011 um 01:12 Uhr

Zitat von bumble_beee:

ja denk ich mir
diese Methoden hat mir Eclipse aus den Fehlermeldungen erstellt... und ich hab sie einfach mal so blind übernommen
weil mir derzeit jeder ansatz fehlt... ich weiß nich wie ich deklarieren muss oder was auch immer
steh grad voll auf m schlauch :-D

Deklarieren musst du gar nichts. gott mädel, lies bitte die Grundsätze OOP. Deine Methoden stellen abstrakt "Dinge dar die eine instanz der Klasse so und so kann" bspw. wenn du in deinem Auto sitzt und gas gibst, würde die Methode "DeinAuto.Beschleunige()" aufgerufen bis deine gewünschte Geschwindigkeit erreicht ist.

Du versuchst nun deinen "Roboter" drehen, laufen oder sowas zu lassen also müsstes du bspw. "Laufe einen schritt nach rechts" folgendes gestalten (angenommen wir befinden uns an x/y eines 2D koordinatensystems, das deiner Klasse "Roboter" in den Attributen pos_x und pos_y bekannt ist ("hier befinden ich mich")):
private void SchrittNR()
{
this.pos_x++;
}


Dieser Post wurde 2 mal ROT-13 verschlüsselt.

bLaDemaSTeR - 39
Halbprofi (offline)

Dabei seit 01.2005
346 Beiträge

Geschrieben am: 16.06.2011 um 08:37 Uhr

Aufgabenstellung wäre ganz okay :-) aber ich versteh schon in etwa was du machen musst.
Was studierst du denn? IMUK an der HS NU? :-)
Klischeepunk - 41
Champion (offline)

Dabei seit 01.2005
8907 Beiträge

Geschrieben am: 16.06.2011 um 13:36 Uhr
Zuletzt editiert am: 16.06.2011 um 15:17 Uhr

Achja noch eine Antwort:

Zitat:

In der Informatik und Programmierung ist eine Deklaration die Festlegung von Dimension, Bezeichner, Datentyp und weiteren Aspekten einer Variablen oder eines Unterprogramms. Durch die Deklaration wird dem Übersetzer (Compiler oder Interpreter) diese Variable bzw. dieses Unterprogramm bekannt gemacht; es ist damit zulässig, diese an anderen Stellen im selben Quelltext zu verwenden.


Danke wiki für die schöne Hilfe mir nichts einfallen lassen zu müssen. D.h. eine Logik findet dort _nicht_ statt. Bitte erst mit den Basics befassen, dann HL2 nachcoden.

/e: Weil mir nahe gelegt wurde ich sei schon viel zu nett gewesen: RTFM!

Dieser Post wurde 2 mal ROT-13 verschlüsselt.

  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -