Erzeugen eines konstanten Arrays mit a b c d usw.

Antworten
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Erzeugen eines konstanten Arrays mit a b c d usw.

Beitrag von Thomas »

weiß jemand wie man so ne for-Schleife in nen konstantes array umwandeln könnte?

Code: Alles auswählen

for (int i = A_KLEIN; i < A_KLEIN + MasterMind.SLOT_COUNT; i++) {
		tabelle = tabelle + (char) i + " ";
}
für ne anregung wär ich sehr dankbar^^
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: Erzeugen eines konstanten Arrays mit a b c d usw.

Beitrag von Thomas »

keiner ne idee?
Benutzeravatar
salami
Beiträge: 179
Registriert: Mi 5. Nov 2008, 22:41
Wohnort: Karlsruhe

Re: Erzeugen eines konstanten Arrays mit a b c d usw.

Beitrag von salami »

Was meinst du mit "in ein konstantes Array umwandeln"?

Ein Array, in dem A, B, C, .. stehen?
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: Erzeugen eines konstanten Arrays mit a b c d usw.

Beitrag von Thomas »

ja genau aba das eben variabel is, also abhängig von MasterMind.SLOT_COUNT und falls slot_count 5 wäre a b c d e drin steht. kann man das iwie machen? mir fällt da als lösung nur ne for-schleife ein. herr lochbihler hat aba gemeint array wäre schöner
Benutzeravatar
salami
Beiträge: 179
Registriert: Mi 5. Nov 2008, 22:41
Wohnort: Karlsruhe

Re: Erzeugen eines konstanten Arrays mit a b c d usw.

Beitrag von salami »

Vielleicht einfach ein Array mit SLOT_COUNT vielen Feldern am Anfang einmalig mit einer For-Schleife befüllen und dann immer aus dem Array verwenden.

Habe es bis jetzt auch als Schleife beim print. Aber wenn er meint dass es schöner ist, dann werd ich das mal ändern ;)
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: Erzeugen eines konstanten Arrays mit a b c d usw.

Beitrag von Thomas »

hm nur die frage is wie mach ichs mit ner methode das befüllen, dann muss ich bevor ich print aufrufe auf jeden fall einma diese methode ausgeführt haben oder ich machs mit nem konstruktor? am liebsten wärs mir eben als static final variable, so dass man nichts mehr dran machen kann, aba mir is da echt noch nix eingeallen, wie das von statten gehen sollte
Benutzeravatar
salami
Beiträge: 179
Registriert: Mi 5. Nov 2008, 22:41
Wohnort: Karlsruhe

Re: Erzeugen eines konstanten Arrays mit a b c d usw.

Beitrag von salami »

Ja das würde ich dann auch im Konstruktor ausführen.
Ich frage mich aber, wieso das schöner sein soll, das die ganze Zeit im Speicher zu halten, wenn mans ja nicht immer braucht. Außerdem macht es ja nur den Quellcode noch komplizierter. :think:

Ich vermute mal so richtig statisch geht das gar nicht, außer in Java gibts sowas wie
final static [] char array = {'A' .. 'Z'}; // also ".." im Quellcode
Dann wäre aber wieder das Problem, dass die Anzahl der Slots begrenzt wäre, da es nicht unendlich viele Buchstaben gibt.
Man müsste also erst von A nach Z, dann von AA nach AZ usw. fortfahren.
Dann käme es zu einem Problem mit den Leerzeichen vor den Farbzahlen, weil die Tabellen dann nicht mehr richtig dargestellt würden. Das gleiche wenn es mehr Farben als 10 (0 bis 9) gäbe.
Macht ihr das mit sowas wie String.format, oder muss man sich darum gar nicht kümmern?

Um aufs eigentliche Problem zurückzukommen: Ich glaube nicht, dass man ein solches Array ohne Schleife erstellen kann, es sei denn Java bietet eine Funktion an, die genau sowas macht.
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: Erzeugen eines konstanten Arrays mit a b c d usw.

Beitrag von Thomas »

Hallo zusammen,

>> Sollte ich eine solche Deklaratione noch ins MasterMind Interface reinpacken, oder selbst noch eine Konstantenklasse anlegen?
> in der Aufgabenstellung steht drin das wir die Klasse MasterMind nicht verändern sollen sondern wenn eigene Konstanten die in unsere Klassen packen.
Genau, sonst nimmt Praktomat die Lösung nicht an.

>> Wäre es in diesem Zusammenhang möglich, diese Buchstaben auch als Konstanten zu deklarieren?
>>
>> Beispielsweise, wenn mein Slot_Count die Größe 4 hat, dass ich ein StringArray der größe von Slot_Count anlege, und diese mit "a","b","c","d" initialisiere?
> Zum zweiten Thema. Weiß nicht warum du das so kompliziert machen willst. Einfach ne nette Schleife die die entsprechenden chars ausgibt ... bis 26 so wie es Herr Lohner hier in diesem Fall bestätigt hatte.
Die Variante mit der for-Schleife ist technisch die einfachste, das stimmt schon. Wenn man es aber frei konfigurierbar halten möchte, dann ist die Lösung mit einem solchen Array (ob die Elemente vom Typ char oder String sind, sei dahingestellt) viel eleganter.

Gruß,
Andreas Lochbihler
dass is das was in der newsgroup steht.
wegen dem problem mit den zeichen, da einfach die ASCII zeichen für die kleinbuchstaben nehmen die laufen ja ne weile fort und nach klein z kommt ja iwas andres damit kann man dann ja quasi weiter machen und zum dem fall dass man zweistellige zahlen für die farbe hat:
Hallo,

das ist freigestellt. Es genügt, wenn es so aussieht wie unten, man kann aber auch z.B. folgendes ausgeben:

next guess> print
a b c d B W
9 20 7 3 1 0
3000 3000 3000 3000 0 0

Viele Grüße,
Andreas Lochbihler

Christian Stier schrieb:
> Hallo, sollte die Formatierung der print-Eingabe auch falschen Eingaben /Interface-Rahmenbedingungen die mind. zweistellig sind angepasst werden? Konkret meine ich so etwas:
>
> next guess> print
> a b c d B W
> 9 20 7 3 1 0
> 3000 3000 3000 3000 0 0
>
> Vielen Dank,
> Christian
wurde das gesagt also man kanns so lassen und braucht nicht extra leerzeichen dazumachen, wäre jetzt aba auch nicht so en aufwand zu schauen wie groß slot_count ist und dann die anzahl an leerzeichen zu erhöhen, aba wahrscheinlich nicht wirklich nötig wer will schon mit mehr als 10 stellen spielen
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: Erzeugen eines konstanten Arrays mit a b c d usw.

Beitrag von Thomas »

hab die for-schleife jetzt in eine hilfsmethode gepackt und dann mit der static final variable die hilfsmethode aufgerufen. so wird die hilfsmethode nur einmal benutzt und man hat das ganz als konstante gespeichert.
wollte es nur erwähnen falls es noch jemand wissen wollte ;)
Antworten

Zurück zu „Allgemein“