Guten Abend liebes Mta Forum,
leider verzweifle ich gerade ein wenig an einer Aufgabe. Der Prof hat leider keine genauen Anweisungen gegeben. Vielleicht könnte mir ja jemand helfen.
/*
Nennen Sie Ihre Datei mit der Lösung: OOP.09.Solution.java
Wenn Ihre Datei erfolreich durchläuft, sehen Sie Folgendes:
>jshell -R-ea OOP.09.Aufgabe.java
Cool, assertions are enabled!
All tests passed!
| Welcome to JShell -- Version 15.0.1
| For an introduction type: /help intro
*/
interface LinearLifeForm {
LinearLifeForm setSuccessor(Cell c);
LinearLifeForm setPredecessor(Cell c);
LinearLifeForm getSuccessor();
LinearLifeForm getPredecessor();
boolean isAlive();
}
try {
assert false;
} catch (AssertionError e) {
System.out.println("Cool, assertions are enabled!");
}
/open OOP.09.Solution.java
assert new Cell(false).toString().equals("<.>");
assert new Cell(true).toString().equals("<#>");
assert !new Cell(false).isAlive();
assert new Cell(true).isAlive();
assert Cell.of(0).toString().equals("<.>");
assert Cell.of(1).toString().equals("<#>");
assert !Cell.of(0).isAlive();
assert Cell.of(1).isAlive();
assert Cell.of(new Random().nextInt(1000) + 1).toString().equals("<#>");
assert Cell.of(-new Random().nextInt(1000) - 1).toString().equals("<#>");
assert Cell.of(new Random().nextInt(1000) + 1).isAlive();
assert Cell.of(-new Random().nextInt(1000) - 1).isAlive();
assert Cell.of() == null;
assert new Cell(true) instanceof LinearLifeForm;
Cell c = Cell.of(1,0,1);
assert c.isAlive() && !c.getSuccessor().isAlive() && c.getSuccessor().getSuccessor().isAlive();
assert c.toString().equals("<#>.#");
assert c.getSuccessor().getSuccessor().getSuccessor() == null;
assert c.getPredecessor() == null;
LinearLifeForm llf = Cell.of(0,0,1,0);
assert llf.toString().equals("<.>.#.");
Cell c = new Cell(true);
c.setSuccessor(new Cell(false));
c.setPredecessor(new Cell(true));
assert c.toString().equals("#<#>.");
Cell c = new Cell(false);
c.setSuccessor(new Cell(true));
c.setPredecessor(new Cell(false));
assert c.toString().equals(".<.>#");
Cell c = new Cell(true);
c.setPredecessor(c);
assert c.toString().equals("<#>->");
Cell c = new Cell(true);
c.setSuccessor(c);
assert c.toString().equals("<#>->");
Cell c = Cell.of(1,0,1);
c.setPredecessor(Cell.of(0));
assert c.toString().equals(".<#>.#");
c.getPredecessor().setPredecessor(new Cell(false));
assert c.toString().equals("..<#>.#");
c.getSuccessor().getSuccessor().setSuccessor(Cell.of(1));
assert c.toString().equals("..<#>.##");
assert c.getSuccessor().getSuccessor().getSuccessor().getSuccessor() == null;
assert c.getSuccessor().getSuccessor().getSuccessor().toString().equals("..#.#<#>");
assert c.getPredecessor().getPredecessor().toString().equals("<.>.#.##");
assert c.getPredecessor().getPredecessor().getPredecessor() == null;
c.getSuccessor().getSuccessor().getSuccessor().setSuccessor(c.getPredecessor().getPredecessor());
assert c.toString().equals("<#>.##..->"); // cyclic life form
System.out.println("All tests passed!");