faecher:informatik:oberstufe:java:aoc:aco2023:day4:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:java:aoc:aco2023:day4:start [04.12.2023 15:22] – [Bearbeiten - Pane] Frank Schiebelfaecher: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 =====
 + 
 +  * {{ :faecher:informatik:oberstufe:java:aoc:aco2023:day4:aoc2304.png?linkonly |Aufgabe}}
 +  * {{ :faecher:informatik:oberstufe:java:aoc:aco2023:day4:d4.zip |Inputdateien}}: Beispiel d4e.txt, Input d4i.txt. 
 +
 +++++ Kontrollergebnisse |
 +  * Eingabedatei d4e.txt: [Teil 1 - 13] [Teil 2 - 30]
 +  * Eingabedatei d4i.txt: [Teil 1 - 26443] [Teil 2 - 6284877]
 +++++
 +
 +===== Hinweise =====
 + 
 <tabs> <tabs>
   * [[#variante1|Variante 1]]   * [[#variante1|Variante 1]]
Zeile 182: Zeile 196:
   * Jede Karte wird nur einmal angeschaut, und die Anzahl der Karte wird zum Rätselergebnis addiert.    * 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 ''gameCard'' die Methode  ''public void erhoeheAnzahl(int gewonneneExemplare)''.   * Anschließend müssen die Zahlen der Nachfolgenden Zahlen gemäß der Regeln erhöht werden. Dazu bekommt die Klasse ''gameCard'' die Methode  ''public void erhoeheAnzahl(int gewonneneExemplare)''.
 +  * Jetzt muss man nur noch für die nächsten "Anzahl-Treffer" Karten deren Anzahl um die Anzahl der eigenen Karte erhöhen. dabei muss man auch aufpassen, dass man am Ende der Kartenliste nicht aus der Liste plumpst - hier bietet sich die Kombination aus einem Iterator und einem Zähler an:
  
 +<code java>
 +[...]
  
 +// Das erzeugt einen Iterator, der am Index "Kartennummer-1" losläuft. 
 +Iterator<gameCard> it = cards.listIterator(c.getCardNo()-1);
 +// FIXME da fehlt noch was.
  
 +[...]
  
 +int steps=0;
 +while(it.hasNext() && steps < gewonneneKarten) {
 +   gameCard n = it.next();
 +   // FIXME hier fehlt was
 +   steps++;
 +}
 +</code>
 +[[https://info-bw.de/faecher:informatik:oberstufe:bluej:kap04:start|Infos zu Iteratoren auf dieser Wiki-Seite]] 
 </pane> </pane>
 +
 +=== Lösungsvorschlag nach Variante 2 ===
 +
 +
 +  * [[https://codeberg.org/qg-info-unterricht/aoc-bluej-2023/src/commit/05bbf118bbb8b1bc174d04a2b39130aea8e5db93/day4.java|day4.java]]
 +  * [[https://codeberg.org/qg-info-unterricht/aoc-bluej-2023/src/commit/05bbf118bbb8b1bc174d04a2b39130aea8e5db93/gameCard.java|gameCard.java]]
  
 </tabs> </tabs>
  • faecher/informatik/oberstufe/java/aoc/aco2023/day4/start.1701703356.txt.gz
  • Zuletzt geändert: 04.12.2023 15:22
  • von Frank Schiebel