Hallo Leute,
für ein Miniprojekt gab es mehrere Aufgaben, die grob von Arrays handeln, zu bearbeiten.
Und zwar geht es um eine Methode, welche in dem Integer Kinoarray (die Dimensionen sind Reihe und Sitz;das Array ist immer rechteckig, aber mit flexiblen Zahlen), bestimmte Plätze mit reserviert markiert. Die Zahlen dafür wurden in einer anderen Methode naechsteReservierungsnummer() generiert.
Die Anforderung für die Plätze sind, dass sie frei sind für eine Anzahl an Personen(wird als Parameter eingegeben) und außerdem alle Plätze vor den Personen und neben den Personen frei sind(quasi ein leeres Rechteck um die Personen). Die freien Plätze wurden vorher als Wert 0 festgelegt. Der Rückgabewert ist entweder die neue Reservierungsnummer oder aber -1 falls die Reservierung fehlschlägt.
Nun mein Code
Als Ergebnis kommt leider bei mir -1 raus, obwohl z.B. für 3 Leute in einem kinosaal[4][7] genug Platz wäre. Nun bin ich als Anfänger leider etwas überfordert den Fehler zu finden, ich hoffe ihr könnt mir helfen :=)
für ein Miniprojekt gab es mehrere Aufgaben, die grob von Arrays handeln, zu bearbeiten.
Und zwar geht es um eine Methode, welche in dem Integer Kinoarray (die Dimensionen sind Reihe und Sitz;das Array ist immer rechteckig, aber mit flexiblen Zahlen), bestimmte Plätze mit reserviert markiert. Die Zahlen dafür wurden in einer anderen Methode naechsteReservierungsnummer() generiert.
Die Anforderung für die Plätze sind, dass sie frei sind für eine Anzahl an Personen(wird als Parameter eingegeben) und außerdem alle Plätze vor den Personen und neben den Personen frei sind(quasi ein leeres Rechteck um die Personen). Die freien Plätze wurden vorher als Wert 0 festgelegt. Der Rückgabewert ist entweder die neue Reservierungsnummer oder aber -1 falls die Reservierung fehlschlägt.
Nun mein Code
Java:
public int knoblauchReservierung(int anzahlLeute) {
//TODO
int i,j,Reservierung=-1;boolean belegbar=false,frei=true;
int a=naechsteReservierungsnummer();
if (anzahlLeute<kinosaal[0].length && anzahlLeute>0){
for(i=kinosaal.length-1;i>=0&&belegbar==false;i--){
for(j=kinosaal.length-1;j>=0&&belegbar==false;j--){
if(kinosaal[i][j]==0 && j-(anzahlLeute+1)>=0){
belegbar=true;
for(int x=i;x>=i-2&&frei;x--){
for(int y=j;y>=j-(anzahlLeute+1)&&frei;y--){
if(kinosaal[x][y]!=0){
belegbar=false;frei=false;
}
}
}
if (belegbar==true){
for(int b=j-1;b>=j-1-anzahlLeute;b--){
kinosaal[i-1][b]=a;
Reservierung=a;}
return Reservierung;
}
}
}
}
return Reservierung;
}
else {return Reservierung;}
Zuletzt bearbeitet von einem Moderator: