Delphie in Java Umschreiben < Sonstige < Schule < Informatik < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 11:38 So 13.12.2009 | Autor: | su92 |
Aufgabe | Die Folgende Java Programm ist eine Umschreibung von dem Niki Spiel,
die in Delphie - Programm geschrieben wurde.
Verändere das Niki Spiel die im Java geschrieben wurde so, dass der Niki-Roboter folgendes tut:
Er soll alle Körner im Spielfeld aufsammeln und an die obere rechte Ecke bringen.
Wobei er nicht weiß, wieviele Körner im Spielfeld vorhanden sind.
Wenn Niki alle Körner im Spielfeld aufgesammelt hat, dann soll das Spiel beendet werden. |
Hallo,
ich habe bis Morgen einen Arbeitsauftrag bekommen, die ich leider alleine nicht schaffe.
War leider eine lange Zeit, durch gesundheitlichen Gründen nicht in der Schule anwesend.
Ich habe einen fertig geschriebenen Java Programm, in dem ein Niki Roboter über die Treppen im Spielfeld geht.
Das Spiel wurde von der Delphie Program in Java Programm umschrieben.
Meine Aufgabe ist, das ich das umgeschriebene Programm verändere.
Der Niki-Roboter soll die Körner im Spielfeld aufsammeln und sie auf die rechte, obere Ecke des Spielfeldes bringen.
Niki weiß aber nicht wieviele Körner im Spielfeld sind, dass heißt, er muss das ganze Spielfeld einmal überprüfen.
(Doch leider weiß Niki nicht wie groß das Spielfeld ist...Wenn Niki an einem Mauer stürtzt soll das Programm nicht beendet werden, denn er muss doch das ganze Spielfeld überprüfen.Ich weiß, aber nicht wie Niki überprüfen kann ob vor ihm ein Mauer ist oder nicht.)
Ich habe versucht einen Programm zu schreiben, doch ich befürchte es ist nicht richtig.!
Im Anhang befindet sich das Niki-Spiel, das im Java-Programm unschrieben wurde und das Java Programm, die ich veruscht habe zu verändern.
Ich würde mich sehr freuen, wenn jemand mir Tipps geben würde wie ich das Programm so ändern könnte, sodass Niki alle Körner aufsamnmelt und an die obere rechte Ecke des Spielfeldes bringt.
Ich komme alleine nicht weiter =( Würde mich auf jede weiterführende Hilfe freuen :D
Bedanke mich im voraus :)
LG
Su
Datei-Anhang
Datei-Anhang
Datei-Anhang
Dateianhänge: Anhang Nr. 1 (Typ: pdf) [nicht öffentlich] Anhang Nr. 2 (Typ: wps) [nicht öffentlich] Anhang Nr. 3 (Typ: wps) [nicht öffentlich]
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:51 So 13.12.2009 | Autor: | su92 |
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
hey,
falls ihr die Angehängten dateien nicht öffnet könnt hab ich sie hier nochmal kopiert:
1. Das Umgeschriebene Niki-Spiel vom Delphie Programm in Java Programm
0001 // Application : niki01.java
0002
0003 // Klassendefinition
0004 public class niki01 {
0005
0006 // Deklaration
0007 static char feld[][] = { {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0008 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0009 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0010 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0011 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0012 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0013 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0014 {' ', ' ', ' ', ' ', ' ', 'O', ' ' ,' ', ' ', ' '},
0015 {' ', ' ', ' ', ' ', 'O', ' ', 'O' ,' ', ' ', ' '},
0016 {' ', ' ', ' ', 'O', ' ', ' ', ' ' ,'O', ' ', ' '},
0017 };
0018
0019 static int niki_x = 0, niki_y = 9, richtung = 0;
0020 static char niki[] = {'>', '^', '<', 'v'};
0021
0022
0023 // Methoden
0024 static void zeigeFeld() {
0025 for (int y=0; y<10; y++) {
0026
0027 for (int x=0; x<10; x++) {
0028 if (x != niki_x | y != niki_y)
0029 System.out.print(feld[y][x]);
0030 else
0031 System.out.print(niki[richtung]);
0032 } // for x
0033
0034 System.out.println();
0035
0036 } // for y
0037 } // zeigeFeld
0038
0039 static void vor() {
0040 switch (richtung) {
0041 case 0 : {niki_x++; break;} // nach rechts
0042 case 1 : {niki_y--; break;} // nach oben
0043 case 2 : {niki_x--; break;} // nach links
0044 case 3 : {niki_y++; break;} // nach unten
0045 } // switch
0046
0047 checkNiki();
0048
0049 zeigeFeld();
0050 } // vor
0051
0052 static void links() {
0053 richtung++;
0054 if (richtung > 3)
0054A richtung = 0;
0055
0056 zeigeFeld();
0057 } // links
0058
0059 static void checkNiki() {
0060 if ( niki_x > 9 || // Arbeitsfeld verlassen
0061 niki_y > 9 ||
0062 niki_x < 0 ||
0063 niki_y < 0 ||
0064 feld[niki_y][niki_x] != ' ' // Feld besetzt
0065 ) {
0066 System.out.println("Niki kommt so nicht weiter!");
0067 System.exit(0); // Programmabbruch
0068 } // if
0069 } // checkNiki
0070
0071
0072 // Haupt-Methode
0073 public static void main(String[] args) {
0074 zeigeFeld();
0075 vor();
0076 links();
0077 links();
0078 links();
0079 links();
0080 vor();
0081 vor();
0082 links();
0083 links();
0084 links();
0085 vor();
0086 } // main
0087
0088 } // application
___________________________________________________________
2. Das java Programm die ich versucht hab zu verändern...
(ich habe zum Schluss auch parr Anmerkungen geschrieben zu verständniss )
0001 // Application : niki01.java
0002
0003 // Klassendefinition
0004 public class niki01 {
0005
0006 // Deklaration
0007 static char feld[][] = { {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0008 {' ', 'O', ' ', ' ', 'O', ' ', ' ' ,' ', ' ', ' '},
0009 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0010 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0011 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0012 {' ', 'O', 'O', ' ', 'O', ' ', ' ' ,' ', ' ', ' '},
0013 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0014 {' ', ' ', ' ', 'O', ' ', ' ', ' ' ,' ', ' ', ' '},
0015 {' ', ' ', ' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
0016 {' ', 'O ', ' ', ' ','O', ' ', ' ' ,' ', ' ', ' '},
0017 };
0018
0019 static int niki_x = 0, niki_y = 9, richtung = 0;
0020 static char niki[] = {'>', '^', '<', 'v'};
0021
0022
0023 // Methoden
0024 static void zeigeFeld() {
0025 for (int y=0; y<10; y++) {
0026
0027 for (int x=0; x<10; x++) {
0028 if (x != niki_x | y != niki_y)
0029 System.out.print(feld[y][x]);
0030 else
0031 System.out.print(niki[richtung]);
0032 } // for x
0033
0034 System.out.println();
0035
0036 } // for y
0037 } // zeigeFeld
0038
0039 static void vor() {
0040 switch (richtung) {
0041 case 0 : {niki_x++; break;} // nach rechts
0042 case 1 : {niki_y--; break;} // nach oben
0043 case 2 : {niki_x--; break;} // nach links
0044 case 3 : {niki_y++; break;} // nach unten
0045 } // switch
0046
0047 checkNiki();
0048
0049 zeigeFeld();
0050 } // vor
} Static void Feld_rechts()
static int Feld_rechts_x = 9, Feld_rechts_y = 0;
}
Static void nimm_auf() {
while (feld[niki_y][niki_x] != ' ' // Feld besetzt)
then nimm_auf und bringe rechts }
}
0051
0052 static void links() {
0053 richtung++;
0054 if (richtung > 3)
0054A richtung = 0;
0055
0056 zeigeFeld();
0057 } // links
0058
0059 static void checkNiki() {
0060 while( niki_x > 9 || // Arbeitsfeld verlassen
0061 niki_y > 9 ||
0062 niki_x < 0 ||
0063 niki_y < 0 ||
0064 feld[niki_y][niki_x] != ' ' // Feld besetzt
Static void vor }
0065 ) {
0066 System.out.println("Niki kommt so nicht weiter!");
0067 System.exit(0); // Programmabbruch
0068 } // if
0069 } // checkNiki
0070
0071
0072 // Haupt-Methode
0073 public static void main(String[] args) {
0074 zeigeFeld();
0075 vor();
0076 links();
0077 links();
0078 links();
0079 links();
0080 vor();
0081 vor();
0082 links();
0083 links();
0084 links();
0085 vor();
0086 } // main
0087
0088 } // application
_________________________________________________________________________________________
Blau = muss verändert werden, aber ic weiß nicht wie !!
Rot = sollte meiner Meinung nach weg !
Grün = Eine Ergänzung von mir.
Anmerkungen:
- Die „0“ im Feld stehen für die Körner, die Niki- Roboter aufnehmen muss, und an die rechte Ecke oben
Bringen muss.
- Habe versucht die Rechte Ecke vom Feld zu definieren, damit Niki weiß wo genau dich die rechte Ecke oben befindet !
} Static void Feld_rechts()
static int Feld_rechts_x = 9, Feld_rechts_y = 0;
}
Static void nimm_auf() {
while (feld[niki_y][niki_x] != ' ' // Feld besetzt)
then nimm_auf und bringe rechts }
}
- Ich dachte diese Definition muss weg, weil Niki nicht mehr drei schritte nach rechts gehen muss, sondern das ganze Feld überprüfen muss.
0052 static void links() {
0053 richtung++;
0054 if (richtung > 3)
0054A richtung = 0;
0055
0056 zeigeFeld();
0057 } // links
- Daher hab ich hier eine While-Schleife eingesetzt, damit Niki das ganze Feld überprüft ( Wobei ich mir nicht sicher bin, ob diese Anweisung richtig ist bzw. für die Aufgabe ausreichen würde !!)
0059 static void checkNiki() {
0060 while( niki_x > 9 || // Arbeitsfeld verlassen
0061 niki_y > 9 ||
0062 niki_x < 0 ||
0063 niki_y < 0 ||
0064 feld[niki_y][niki_x] != ' ' // Feld besetzt (hier ist wieder Rot- d.h. dies sollte weg !)
Static void vor }
- Zum Schluss kommt die Hauptmethode die Komplett verändert werden müsste.
Im Anhang ist das Programm als PDF datei gespeichert.
Datei-Anhang
Dateianhänge: Anhang Nr. 1 (Typ: pdf) [nicht öffentlich]
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 18:01 So 13.12.2009 | Autor: | su92 |
Hi,
hab mal was versucht zu Programmieren.
Der Roboter sammelt die Körner..nun muss er sie an die rechte Ecke des Spielfeldes bringen. ich weiß nicht wie ich es ihn schreiben soll.
Das ist meine Programmierung :
// Application : niki01.java
// Klassendefinition
public class niki01 {
// Deklaration
static char feld[][] = { {' ', ' ',' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
{' ', ' ',' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
{' ', ' ',' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
{' ', ' ',' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
{' ', ' ',' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
{' ', ' ',' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
{' ', ' ',' ', ' ', ' ', ' ', ' ' ,' ', ' ', ' '},
{' ', ' ',' ', ' ', ' ', 'O', ' ' ,' ', ' ', ' '},
{' ', ' ',' ', ' ', 'O', ' ', 'O' ,' ', ' ', ' '},
{' ', ' ',' ', 'O', ' ', ' ', ' ' ,'O', ' ', ' '} };
static int [mm] niki_x [/mm] = 0, [mm] niki_y [/mm] = 9, richtung = 0;
static char niki[] = {'>', '^', '<', 'v'};
static int gesammelt = 0;
// Methoden
static void zeigeFeld() {
for (int y=0; y<10; y++)
{
for (int x=0; x<10; x++)
{
if (x != [mm] niki_x [/mm] | y != [mm] niki_y)
[/mm]
System.out.print(feld[y][x]);
else
System.out.print(niki[richtung]);
} // for x
System.out.println();
} // for y
} // zeigeFeld
static void vor()
{
switch (richtung) {
case 0 : [mm] {niki_x++; break;} [/mm] // nach rechts
case 1 : [mm] {niki_y--; break;} [/mm] // nach oben
case 2 : [mm] {niki_x--; break;} [/mm] // nach links
case 3 : [mm] {niki_y++; break;} [/mm] // nach unten
} // switch
checkNiki();
zeigeFeld();
} // vor
static void links()
{
richtung++;
if (richtung > 3)
richtung = 0;
zeigeFeld();
} // links
static void rechts()
{
richtung--;
if(richtung < 0)
richtung = 3;
zeigeFeld();
}// rechts eklenmis
static void ablassen(){
int zellen = 100;
for (int y=0; y<10; y++)
{
for (int x=0; x<10; x++)
{
if(zellen >= gesammelt){
feld[x][y] = 'O';
}
else{
zellen = zellen -1;
}
}
}
}
static void checkNiki()
{
if ( [mm] niki_x [/mm] > 9 || // Arbeitsfeld verlassen
[mm] niki_y [/mm] > 9 ||
[mm] niki_x [/mm] < 0 ||
[mm] niki_y [/mm] < 0 )
{
// Hier soll er nicht abbrechen falls er an der Wand angekommen ist sondern nur wenn Niki arbeitsfeld verlässt
System.out.println("Niki kommt so nicht weiter!");
System.exit(0); // Programmabbruch
} else [mm] if(feld[niki_y][niki_x] [/mm] != ' '){ // Hier kommen wir an wenn Niki gegen ein Korn stößt!
[mm] feld[niki_y][niki_x] [/mm] = ' '; // Hier wird der Korn durch ein leeren Platz ersetzt
gesammelt = gesammelt + 1; // Hier merkt sich Niki wieviel Körner er bereits gesammelt hat und addiert ein drauf wenn
// sie ein weiteren aufgesammelt hat!
} else if( [mm] niki_x [/mm] == 9 && [mm] niki_y [/mm] ==0){ // Falls niki ganz unten rechts in der ecke sein sollte
// lässt es die gesammelten Körner ab!
ablassen();
zeigeFeld();
}
// if
} // checkNiki
// Haupt-Methode
public static void main(String[] args) {
zeigeFeld();
vor();
vor();
vor();
vor();
links();
vor();
vor();
rechts();
vor();
vor();
rechts();
vor();
vor();
links();
vor();
vor();
ablassen();
} // main
} // application
Könnt ihr mir vielleicht paar Tipps geben wie ich aufschreiben kann, dass der Roborter die Körner an die Rechte Obere Ecke ablässt??
Bedanke mich im vorraus.
Liebe Grüße
Su
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:20 Mo 14.12.2009 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:20 Di 15.12.2009 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|