Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:java:aoc:aco2023:day4:start [04.12.2023 15:10] – [Bearbeiten - Pane] Frank Schiebel | faecher:informatik:oberstufe:java:aoc:aco2023:day4:start [06.12.2023 12:19] (aktuell) – Frank Schiebel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Tag 4 ====== | + | ~~NOTOC~~ |
+ | ====== Tag 4: Scratchcards ====== | ||
+ | |||
+ | ===== Aufgabe ===== | ||
+ | |||
+ | * {{ : | ||
+ | * {{ : | ||
+ | |||
+ | ++++ Kontrollergebnisse | | ||
+ | * Eingabedatei d4e.txt: [Teil 1 - 13] [Teil 2 - 30] | ||
+ | * Eingabedatei d4i.txt: [Teil 1 - 26443] [Teil 2 - 6284877] | ||
+ | ++++ | ||
+ | |||
+ | ===== Hinweise ===== | ||
+ | |||
< | < | ||
* [[# | * [[# | ||
Zeile 99: | Zeile 113: | ||
</ | </ | ||
<pane id=" | <pane id=" | ||
- | Die grundsätzlichen Tipps aus Variante 1 haben Bestand - allerdings wird zunächst eine ArrayList des Typs gameCards befüllt, die dann mit entsprechenden Methoden alle Infos liefern, die man zur Lösung des Rätsels benötigt. Anstelle des regulären Ausdrucks für mehrere Leerzeichen wird in Variante 2 überprüft, | + | Die grundsätzlichen Tipps aus Variante 1 haben Bestand - allerdings wird zunächst eine ArrayList des Typs '' |
{{ : | {{ : | ||
Zeile 107: | Zeile 121: | ||
* cardNo - Kartennummer | * cardNo - Kartennummer | ||
* worth - Der Wert der Karte gemäß des Rätsels Teil 1. | * worth - Der Wert der Karte gemäß des Rätsels Teil 1. | ||
- | * anzahl - Die Anzahl die man von dieser Karte besitzt. In Teil 1 nicht nötig. | + | * anzahl - Die Anzahl, die man von dieser Karte besitzt. In Teil 1 nicht nötig. |
* winningNumbers - ArrayList mit den Gewinnzahlen. | * winningNumbers - ArrayList mit den Gewinnzahlen. | ||
* havingNumbers - ArrayList mit den Zahlen,die man " | * havingNumbers - ArrayList mit den Zahlen,die man " | ||
Zeile 133: | Zeile 147: | ||
Der Konstruktor der Klasse '' | Der Konstruktor der Klasse '' | ||
- | < | + | < |
[...] | [...] | ||
private ArrayList< | private ArrayList< | ||
Zeile 173: | Zeile 187: | ||
</ | </ | ||
+ | === Hinweise Teil 1 === | ||
+ | Nach dieser Vorbereitung ist Teil 1 trivial: Man iteriert in einer Schleife durch alle Karten und addiert die Kartewerte, die man sich mit einem Getter '' | ||
+ | |||
+ | === Hinweise Teil 2 === | ||
+ | |||
+ | * Für Teil 2 benötigt die Klasse | ||
+ | * Jede Karte wird nur einmal angeschaut, und die Anzahl der Karte wird zum Rätselergebnis addiert. | ||
+ | * Anschließend müssen die Zahlen der Nachfolgenden Zahlen gemäß der Regeln erhöht werden. Dazu bekommt die Klasse '' | ||
+ | * Jetzt muss man nur noch für die nächsten " | ||
+ | |||
+ | <code java> | ||
+ | [...] | ||
+ | |||
+ | // Das erzeugt einen Iterator, der am Index " | ||
+ | Iterator< | ||
+ | // FIXME da fehlt noch was. | ||
+ | |||
+ | [...] | ||
+ | |||
+ | int steps=0; | ||
+ | while(it.hasNext() && steps < gewonneneKarten) { | ||
+ | | ||
+ | // FIXME hier fehlt was | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | [[https:// | ||
</ | </ | ||
+ | |||
+ | === Lösungsvorschlag nach Variante 2 === | ||
+ | |||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
</ | </ |