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:aoc2021:day4:start [06.12.2021 14:58] – sbel | faecher:informatik:oberstufe:java:aoc:aoc2021:day4:start [07.12.2021 06:28] (aktuell) – [Aufgabe, Beispiele, Input] sbel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Tag 4: Bingo mit dem Riesenkraken ====== | ====== Tag 4: Bingo mit dem Riesenkraken ====== | ||
+ | |||
+ | ===== Aufgabe, Beispiele, Input ===== | ||
+ | |||
+ | * Aufgabe: https:// | ||
+ | * Input-Dateien: | ||
+ | * Ergebnis für die Datei '' | ||
+ | |||
+ | ===== Tipp ==== | ||
Hier kann man objektorientiert modellieren: | Hier kann man objektorientiert modellieren: | ||
Zeile 14: | Zeile 22: | ||
ArrayList< | ArrayList< | ||
</ | </ | ||
+ | |||
+ | Die '' | ||
+ | |||
+ | <code java> | ||
+ | public class bingoBoard | ||
+ | { | ||
+ | // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen | ||
+ | private int[][] bField; | ||
+ | private int boardSize = 5; | ||
+ | private int winningNumber; | ||
+ | |||
+ | /** | ||
+ | * Konstruktor für Objekte der Klasse bingoBoard | ||
+ | */ | ||
+ | public bingoBoard() | ||
+ | { | ||
+ | bField = new int[boardSize][boardSize]; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Außerdem sind Methoden wie | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | möglicherweise hilfreich. | ||
+ | |||
+ | Das zentrale Problem ist die Verarbeitung des Inputs. Die erste Zeile muss in die bingoNumbers geparst werden, und die weiteren Zeilen, getrennt durch Leerzeilen geben jeweils ein Board. | ||
+ | |||
+ | ++++ Codegerüst zur Verarbeitung des Inputs | | ||
+ | <code java> | ||
+ | public void parseInputToBoards () { | ||
+ | this.bingoNumbers.clear(); | ||
+ | this.bingoBoards.clear(); | ||
+ | int lineNum = 0; | ||
+ | |||
+ | bingoBoard b = null; | ||
+ | int fRow = 0; | ||
+ | int fCol = 0; | ||
+ | |||
+ | for ( String[] line: input) { | ||
+ | // Trim whitespaces | ||
+ | line[0] = line[0].trim(); | ||
+ | // first line holds bingo numbers | ||
+ | if (lineNum == 0) { | ||
+ | String[] temp = line[0].split("," | ||
+ | for(String t: temp) { | ||
+ | bingoNumbers.add(Integer.parseInt(t)); | ||
+ | } | ||
+ | System.out.println(" | ||
+ | } else { | ||
+ | // Empty line starts new board | ||
+ | if (line[0].trim().isEmpty()) { | ||
+ | | ||
+ | if ( b != null ) { | ||
+ | bingoBoards.add(b); | ||
+ | } | ||
+ | b=new bingoBoard(); | ||
+ | fRow = 0; | ||
+ | } else { | ||
+ | String[] temp = line[0].split(" | ||
+ | fCol = 0; | ||
+ | |||
+ | for (String t: temp) { | ||
+ | b.setBoardFieldValue(fCol, | ||
+ | fCol++; | ||
+ | |||
+ | } | ||
+ | fRow++; | ||
+ | } | ||
+ | } | ||
+ | lineNum++; | ||
+ | } | ||
+ | // Add last board | ||
+ | bingoBoards.add(b); | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | ++++ | ||
+ |