Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:java:aoc:aoc2021:day4:start [06.12.2021 16:12] – sbel | faecher:informatik:oberstufe:java:aoc:aoc2021:day4:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Tag 4: Bingo mit dem Riesenkraken ====== | ||
- | |||
- | Hier kann man objektorientiert modellieren: | ||
- | |||
- | {{ : | ||
- | |||
- | Man kann eine Klasse '' | ||
- | |||
- | In '' | ||
- | |||
- | <code java> | ||
- | // day4: bingo numbers and bingoboards | ||
- | 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); | ||
- | } | ||
- | |||
- | </ | ||
- | ++++ | ||