Blatt 2, Aufgabe 2.2

Stein-Schere-Papier-Brunnen-Streichholz

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Blatt 2, Aufgabe 2.2

Die Null-Referenz hab ich jetzt mal mit -3 quittiert. 0 würde glaube ich dem Sinn der Prüfung nicht entsprechen…


Geheimer Tipp: Übungsfolien 02 - Seite 60

Und überhaupt: Deine Überlegung macht schon Sinn, da du auf einem String mit null-Referenz keine Methoden ausführen kannst. Du könntest also z.B. (-2) gar nicht prüfen.


Danke :wink: , diese Definition kannte ich tatsächlich noch nicht.


Man muss ja bei der c) ein Int-Array zurückgeben mit einem “Spielstand” also z.B. “2 : 0”…
Aber das ist doch eigentlich dann ein String…?


Oder einfach: [2, 0]
Und das ist dann keine Zeichenkette.


Ich habe für die einzelnen Spielstände jeweils für X und Y Zaehler eingeführt,
habe das Array ganz am Anfang erzeugt und möchte dann am Ende das hier machen:
array[zaehler] = [zaehlerX, zaehlerY];

Aber es wird leider rot unterstrichen mit : “Syntaxfehler bei Token, Expression stattdessen erwartet” - was heißt das? :slight_smile:


So gehts auch nicht.
Du hast zwei Möglichkeiten:
1)
array = {zaehlerX, zaehlerY};

array = new int[2];
array[0] = zaehlerX;
array[1] = zaehlerY;


Hmmm… Ich habe jetzt mal das hier versucht:
array[zaehler] = {zaehlerX, zaehlerY};
aber jetzt heißt es: “Array Konstanten können nur in INitialisierungsoperatoren verwendet werden”.
(Ich habe also Möglichkeit 1 probiert…)

Möglichkeit 2 scheidet ja leider aus, weil ich in jeden Array Index ja “zwei Int’s” reinspeichern will,
und oben steht ja, dass dann nur einzelne int’s gehen…

Trotzdem Danke :smiley:


Siehst du da irgendeinen Unterschied?


Ja bei “mir” wird die Stelle im Array mit benutzt…
(Aber stimmt eigtl, man darf es ja überschreiben, da ja nur am Ende der Spielstand wichtig ist :slight_smile: )

Ich habe jetzt das so hingeschrieben:
array = {zaehlerX, zaehlerY}
doch die gleiche Fehlermeldung: “Array Konstanten können nur in INitialisierungsoperatoren verwendet werden” kommt.


Hast du vorher das Array deklariert?

int array[]; //oder
int array[] = new int[2];

Ja ich habe es ganz am Anfang der Methode deklariert…
Als Länge habe ich keinen festen Wert, sondern die LÄnge des Arrays ist ja abhängig von der Länge des EingabeStrings
ich habe also etwas der Art mit eingabe.Length() als Länge…


Doch, die Länge ist fest. An der ersten Stelle stehen die Siege von X und an der zweiten die von Y. Also muss das Array 2 “Zeilen” haben.


Ok… ich habe jetzt also Länge 2 gemacht; nur leider kommt die gleiche Fehlermeldung immernoch :frowning:


return new int[] {zaehlerX, zaehlerY}; sollte gehen.


für die 2.4 konnte ich das gut gebrauchen :smiley:
Aber für die 2.1 geht das leider leider nicht, da man ja mehrere Durchläufe braucht, je nachdem wieviele Runden man spielen musste…
Das mit dem return wäre super, wenn man ja nur 1 Runde hätte, so muss ich ja erst nach der letzten Runde returnen… :frowning:


Speicher die doch die “Gewinne” von X und Y lokal und gebe diese dann wie von P2001 gezeigt als Array zurück.