From fafb1cc7406c63aa7d20660075727f0418907d87 Mon Sep 17 00:00:00 2001
From: "Dr. Martin Goik" <goik@pdc1.srv.mi.hdm-stuttgart.de>
Date: Wed, 18 Mar 2015 22:01:30 +0100
Subject: [PATCH] Make re-ordering, encoding --> UTF-8

---
 Makefile                                      |  2 +-
 P/Sd1/crab/V1/.gitignore                      |  4 -
 P/Sd1/crab/V1/pom.xml                         | 52 -----------
 P/Sd1/crab/V1/src/main/java/Animal.java       | 80 ----------------
 P/Sd1/crab/V1/src/main/java/Crab.java         | 89 ------------------
 P/Sd1/crab/V1/src/main/java/CrabWorld.java    | 64 -------------
 P/Sd1/crab/V1/src/main/java/Lobster.java      | 69 --------------
 P/Sd1/crab/V1/src/main/java/Worm.java         |  7 --
 P/Sd1/crab/V1/src/test/java/.ignore           |  0
 P/Sd1/crab/V2/.gitignore                      |  4 -
 P/Sd1/crab/V2/pom.xml                         | 54 -----------
 P/Sd1/crab/V2/src/main/java/Animal.java       | 85 -----------------
 P/Sd1/crab/V2/src/main/java/Crab.java         | 89 ------------------
 P/Sd1/crab/V2/src/main/java/CrabWorld.java    | 91 -------------------
 P/Sd1/crab/V2/src/main/java/Lobster.java      | 69 --------------
 P/Sd1/crab/V2/src/main/java/Worm.java         |  7 --
 P/Sd1/crab/V2/src/test/java/.gitignore        |  0
 .../webapp/VAADIN/themes/mytheme/styles.css   | 22 ++---
 P/pom.xml                                     |  3 -
 pom.xml                                       |  4 +
 20 files changed, 16 insertions(+), 779 deletions(-)
 delete mode 100644 P/Sd1/crab/V1/.gitignore
 delete mode 100644 P/Sd1/crab/V1/pom.xml
 delete mode 100644 P/Sd1/crab/V1/src/main/java/Animal.java
 delete mode 100644 P/Sd1/crab/V1/src/main/java/Crab.java
 delete mode 100644 P/Sd1/crab/V1/src/main/java/CrabWorld.java
 delete mode 100644 P/Sd1/crab/V1/src/main/java/Lobster.java
 delete mode 100644 P/Sd1/crab/V1/src/main/java/Worm.java
 delete mode 100644 P/Sd1/crab/V1/src/test/java/.ignore
 delete mode 100644 P/Sd1/crab/V2/.gitignore
 delete mode 100644 P/Sd1/crab/V2/pom.xml
 delete mode 100644 P/Sd1/crab/V2/src/main/java/Animal.java
 delete mode 100644 P/Sd1/crab/V2/src/main/java/Crab.java
 delete mode 100644 P/Sd1/crab/V2/src/main/java/CrabWorld.java
 delete mode 100644 P/Sd1/crab/V2/src/main/java/Lobster.java
 delete mode 100644 P/Sd1/crab/V2/src/main/java/Worm.java
 delete mode 100644 P/Sd1/crab/V2/src/test/java/.gitignore

diff --git a/Makefile b/Makefile
index f681d2f10..15a85fb7b 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@ SHELL = /bin/bash
 DOCMODULES = Sd1 Sda1 Sda2
 
 doc:
-	cd Doc;$(MAKE) -j8 all
+	cd Doc;$(MAKE) -j24 all
 
 all:doc
 	mvn --fail-at-end install 
diff --git a/P/Sd1/crab/V1/.gitignore b/P/Sd1/crab/V1/.gitignore
deleted file mode 100644
index 4e247eee2..000000000
--- a/P/Sd1/crab/V1/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/.settings
-/target
-/.classpath
-/.project
diff --git a/P/Sd1/crab/V1/pom.xml b/P/Sd1/crab/V1/pom.xml
deleted file mode 100644
index a06fd6ec8..000000000
--- a/P/Sd1/crab/V1/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>de.hdm-stuttgart.mi</groupId>
-    <artifactId>lecturenotes-pom</artifactId>
-    <version>1.0</version>
-    <relativePath>../../../pom.xml</relativePath>
-  </parent>
-
-  <groupId>de.hdm-stuttgart.mi.sd1</groupId>
-  <artifactId>crab</artifactId>
-  <version>0.0.1-SNAPSHOT</version>
-  <packaging>jar</packaging>
-
-  <name>crab</name>
-
-  <build>
-    <plugins>
-      
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.9.1</version>
-        <configuration>
-          <linksource>true</linksource>
-	  <links>
-            <link>http://www.greenfoot.org/files/javadoc/</link>
-          </links>
-          <additionalDependencies>
-            <additionalDependency>
-              <groupId>de.hdm-stuttgart.mi</groupId>
-              <artifactId>greenfoot</artifactId>
-              <version>2.3.0</version>
-            </additionalDependency>
-          </additionalDependencies>
-        </configuration>
-      </plugin>
-    </plugins>
-
-  </build>
-
-  <dependencies>
-    <dependency>
-      <groupId>de.hdm-stuttgart.mi</groupId>
-      <artifactId>greenfoot</artifactId>
-      <version>2.3.0</version>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/P/Sd1/crab/V1/src/main/java/Animal.java b/P/Sd1/crab/V1/src/main/java/Animal.java
deleted file mode 100644
index 8a8c79ea2..000000000
--- a/P/Sd1/crab/V1/src/main/java/Animal.java
+++ /dev/null
@@ -1,80 +0,0 @@
-import greenfoot.Actor;
-
-/**
- * Animal. This is the base class for all animals. In addition to the standard
- * Actor methods, it provides the ability to move and turn.
- * 
- * @author Michael Kolling
- * @version 1.0
- */
-public class Animal extends Actor {
-	private static final double WALKING_SPEED = 5.0;
-
-	/**
-	 * Constructor for Animal - nothing to do.
-	 */
-	public Animal() {
-	}
-
-	/**
-	 * Act - empty method. Animals have no default action.
-	 */
-	public void act() {
-	}
-
-	/**
-	 * Turn 'angle' degrees towards the right (clockwise).
-	 */
-	public void turn(int angle) {
-		setRotation(getRotation() + angle);
-	}
-
-	/**
-	 * Move forward in the current direction.
-	 */
-	public void move() {
-		double angle = Math.toRadians(getRotation());
-		int x = (int) Math.round(getX() + Math.cos(angle) * WALKING_SPEED);
-		int y = (int) Math.round(getY() + Math.sin(angle) * WALKING_SPEED);
-
-		setLocation(x, y);
-	}
-
-	/**
-	 * Test if we are close to one of the edges of the world. Return true is we
-	 * are.
-   * @return true, if we are at our world's edge, false otherwise
-	 */
-	public boolean atWorldEdge() {
-		if (getX() < 20 || getX() > getWorld().getWidth() - 20)
-			return true;
-		if (getY() < 20 || getY() > getWorld().getHeight() - 20)
-			return true;
-		else
-			return false;
-	}
-
-	/**
-	 * Return true if we can see an object of class 'clss' right where we are.
-	 * False if there is no such object here.
-   * @param clss The type of object to look for
-   * @return true, if any object can be seen, false otherwise
-	 */
-	public boolean canSee(Class<?> clss) {
-		Actor actor = getOneObjectAtOffset(0, 0, clss);
-		return actor != null;
-	}
-
-	/**
-	 * Try to eat an object of class 'clss'. This is only successful if there is
-	 * such an object where we currently are. Otherwise this method does
-	 * nothing.
-   * @param clss The type of object to eat.
-	 */
-	public void eat(Class<?> clss) {
-		Actor actor = getOneObjectAtOffset(0, 0, clss);
-		if (actor != null) {
-			getWorld().removeObject(actor);
-		}
-	}
-}
diff --git a/P/Sd1/crab/V1/src/main/java/Crab.java b/P/Sd1/crab/V1/src/main/java/Crab.java
deleted file mode 100644
index 56ac98f4a..000000000
--- a/P/Sd1/crab/V1/src/main/java/Crab.java
+++ /dev/null
@@ -1,89 +0,0 @@
-import greenfoot.Actor;
-import greenfoot.Greenfoot;
-import greenfoot.GreenfootImage; // (World, Actor, GreenfootImage, and Greenfoot)
-
-/**
- * This class defines a crab. Crabs live on the beach. They like sand worms
- * (very yummy, especially the green ones).
- * 
- */
-
-public class Crab extends Animal {
-
-  private final static GreenfootImage image1 = new GreenfootImage("crab.png");
-  private GreenfootImage image2 = new GreenfootImage("crab2.png");
-  private int wormsEaten;
-
-  // Initialize a crab's two images.
-  private void commonConstructor(int rotation) {
-    setRotation(rotation);
-    setImage(image1);
-    wormsEaten = 0;
-  }
-
-  /**
-   * Create a crab.
-   */
-  public Crab() {
-    commonConstructor(0);
-  }
-
-  /**
-   * @param rotation See {@link Actor#setRotation(int)}
-   */
-  public Crab(int rotation) {
-    commonConstructor(rotation);
-  }
-
-  /**
-   * Act - do whatever the crab wants to do. This method is called whenever the
-   * 'Act' or 'Run' button gets pressed in the environment.
-   */
-  public void act() {
-    checkKeypress();
-    move();
-    lookForWorm();
-    switchImage();
-  }
-
-  /**
-   * Alternate the crab's image between image1 and image2.
-   */
-  public void switchImage() {
-    if (getImage() == image1) {
-      setImage(image2);
-    } else {
-      setImage(image1);
-    }
-  }
-
-  /**
-   * Check whether a control key on the keyboard has been pressed. If it has,
-   * react accordingly.
-   */
-  public void checkKeypress() {
-    if (Greenfoot.isKeyDown("left")) {
-      turn(-4);
-    }
-    if (Greenfoot.isKeyDown("right")) {
-      turn(4);
-    }
-  }
-
-  /**
-   * Check whether we have stumbled upon a worm. If we have, eat it. If not, do
-   * nothing. If we have eaten eight worms, we win.
-   */
-  public void lookForWorm() {
-    if (canSee(Worm.class)) {
-      eat(Worm.class);
-      Greenfoot.playSound("slurp.wav");
-
-      wormsEaten = wormsEaten + 1;
-      if (wormsEaten == 8) {
-        Greenfoot.playSound("fanfare.wav");
-        Greenfoot.stop();
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/P/Sd1/crab/V1/src/main/java/CrabWorld.java b/P/Sd1/crab/V1/src/main/java/CrabWorld.java
deleted file mode 100644
index 37ea26b9b..000000000
--- a/P/Sd1/crab/V1/src/main/java/CrabWorld.java
+++ /dev/null
@@ -1,64 +0,0 @@
-import greenfoot.Greenfoot;
-import greenfoot.World; // imports Actor, World, Greenfoot, GreenfootImage
-
-/**
- * A crab's world of configurable size and other nifty
- * features.
- *
- */
-public class CrabWorld extends World {
-
-  private final static int // Width and height of our
-      worldWidth = 700,   // crab's world.
-      worldHeight = 560,
-
-      initialLobsterCount = 3,
-      initialWormCount = 10;
-
-  /**
-   * @return A random x-coordinate ranging from 0 to the worlds's width in pixel units
-   *         - 1. A width of e.g. 100 sets the range to {0, 1,..., 99}.
-   */
-  public static int getRandomX() {
-    return Greenfoot.getRandomNumber(worldWidth);
-  }
-
-  /**
-   * @return A random y-ccordinate ranging from 0 to the worlds's height in pixel
-   *         units - 1. A height of e.g. 70 sets the range to {0, 1,..., 69}.
-   */
-  public static int getRandomY() {
-    return Greenfoot.getRandomNumber(worldHeight);
-  }
-
-  /**
-   * @return A random rotation within the range [0, 1, ..., 360[.
-   */
-  public static int getRandomRotation() {
-    return Greenfoot.getRandomNumber(360);
-  }
-
-  /**
-   * Create the crab world (the beach). Every cell of our world is just 1 pixel.
-   */
-  public CrabWorld() {
-    super(worldWidth, worldHeight, 1);
-    populateWorld();
-  }
-
-  /**
-   * Create the objects for the start of the game.
-   */
-  public void populateWorld() {
-    addObject(new Crab(getRandomRotation()), getRandomX(), getRandomY());
-
-    // Creating lobsters.
-    for (int i = 0; i < initialLobsterCount; i++) {
-      addObject(new Lobster(getRandomRotation()), getRandomX(), getRandomY());
-    }
-    // Creating worms.
-    for (int i = 0; i < initialWormCount; i++) {
-      addObject(new Worm(), getRandomX(), getRandomY());
-    }
-  }
-}
\ No newline at end of file
diff --git a/P/Sd1/crab/V1/src/main/java/Lobster.java b/P/Sd1/crab/V1/src/main/java/Lobster.java
deleted file mode 100644
index 2a6779dca..000000000
--- a/P/Sd1/crab/V1/src/main/java/Lobster.java
+++ /dev/null
@@ -1,69 +0,0 @@
-import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
-
-/**
- * A lobster. Lobsters live on the beach. They like to eat crabs. (Well, in our
- * game they do...)
- * 
- * Version: 2
- * 
- * The lobster walks around randomly. If it runs into a crab it eats it. In this
- * version, we have added a sound effect, and the game stops when a lobster eats
- * the crab.
- */
-
-public class Lobster extends Animal {
-
-  /**
-   * Defaults
-   */
-  public Lobster() {}
-
-  /**
-   * @param rotation See {@link Actor#setRotation(int)}
-   */
-  public Lobster(int rotation) {
-    setRotation(rotation);
-  }
-
-  /**
-   * Do whatever lobsters do.
-   */
-  public void act() {
-    turnAtEdge();
-    randomTurn();
-    move();
-    lookForCrab();
-  }
-
-  /**
-   * Check whether we are at the edge of the world. If we are, turn a bit. If
-   * not, do nothing.
-   */
-  public void turnAtEdge() {
-    if (atWorldEdge()) {
-      turn(17);
-    }
-  }
-
-  /**
-   * Randomly decide to turn from the current direction, or not. If we turn turn
-   * a bit left or right by a random degree.
-   */
-  public void randomTurn() {
-    if (Greenfoot.getRandomNumber(100) > 90) {
-      turn(Greenfoot.getRandomNumber(90) - 45);
-    }
-  }
-
-  /**
-   * Try to pinch a crab. That is: check whether we have stumbled upon a crab.
-   * If we have, remove the crab from the game, and stop the program running.
-   */
-  public void lookForCrab() {
-    if (canSee(Crab.class)) {
-      eat(Crab.class);
-      Greenfoot.playSound("au.wav");
-      Greenfoot.stop();
-    }
-  }
-}
\ No newline at end of file
diff --git a/P/Sd1/crab/V1/src/main/java/Worm.java b/P/Sd1/crab/V1/src/main/java/Worm.java
deleted file mode 100644
index 5cbd9f17c..000000000
--- a/P/Sd1/crab/V1/src/main/java/Worm.java
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * Worm. A sand worm. Very yummy. Especially crabs really like it. Author:
- * Michael Kolling
- */
-public class Worm extends Animal {
-
-}
\ No newline at end of file
diff --git a/P/Sd1/crab/V1/src/test/java/.ignore b/P/Sd1/crab/V1/src/test/java/.ignore
deleted file mode 100644
index e69de29bb..000000000
diff --git a/P/Sd1/crab/V2/.gitignore b/P/Sd1/crab/V2/.gitignore
deleted file mode 100644
index c708c363d..000000000
--- a/P/Sd1/crab/V2/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/target
-/.settings
-/.classpath
-/.project
diff --git a/P/Sd1/crab/V2/pom.xml b/P/Sd1/crab/V2/pom.xml
deleted file mode 100644
index 288e64c92..000000000
--- a/P/Sd1/crab/V2/pom.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>de.hdm-stuttgart.mi</groupId>
-    <artifactId>lecturenotes-pom</artifactId>
-    <version>1.0</version>
-    <relativePath>../../../pom.xml</relativePath>
-  </parent>
-
-  <groupId>de.hdm-stuttgart.mi.sd1</groupId>
-  <artifactId>crab</artifactId>
-  <version>2.0</version>
-  <packaging>jar</packaging>
-
-  <name>crab</name>
-
-  <build>
-    <plugins>
-      
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.9.1</version>
-        <configuration>
-          <linksource>true</linksource>
-	  <links>
-            <link>http://www.greenfoot.org/files/javadoc/</link>
-          </links>
-          <additionalDependencies>
-            <additionalDependency>
-              <groupId>de.hdm-stuttgart.mi</groupId>
-              <artifactId>greenfoot</artifactId>
-              <version>2.3.0</version>
-            </additionalDependency>
-          </additionalDependencies>
-          
-        </configuration>
-      </plugin>
-    </plugins>
-
-  </build>
-
-  <dependencies>
-
-    <dependency>
-      <groupId>de.hdm-stuttgart.mi</groupId>
-      <artifactId>greenfoot</artifactId>
-      <version>2.3.0</version>
-    </dependency>
-
-  </dependencies>
-</project>
diff --git a/P/Sd1/crab/V2/src/main/java/Animal.java b/P/Sd1/crab/V2/src/main/java/Animal.java
deleted file mode 100644
index 69e477c3c..000000000
--- a/P/Sd1/crab/V2/src/main/java/Animal.java
+++ /dev/null
@@ -1,85 +0,0 @@
-import greenfoot.Actor;
-
-/**
- * Animal. This is the base class for all animals. In addition to the standard
- * Actor methods, it provides the ability to move and turn.
- * 
- * @author Michael Kolling
- * @version 1.0
- */
-public class Animal extends Actor {
-	private static final double WALKING_SPEED = 5.0;
-
-	/**
-	 * Constructor for Animal - nothing to do.
-	 */
-	public Animal() {
-	}
-
-	/**
-	 * Act - empty method. Animals have no default action.
-	 */
-	public void act() {
-	}
-
-	/**
-	 * Turn 'angle' degrees towards the right (clockwise).
-	 */
-	public void turn(int angle) {
-		setRotation(getRotation() + angle);
-	}
-
-	/**
-	 * Move forward in the current direction.
-	 */
-	public void move() {
-		double angle = Math.toRadians(getRotation());
-		int x = (int) Math.round(getX() + Math.cos(angle) * WALKING_SPEED);
-		int y = (int) Math.round(getY() + Math.sin(angle) * WALKING_SPEED);
-
-		setLocation(x, y);
-	}
-
-	/**
-	 * Test if we are close to one of the edges of the world. 
-	 * 
-	 * @return true if we are closer than 20 pixel to one
-	 * of the world's edges, false otherwise.
-	 * 
-	 */
-	public boolean atWorldEdge() {
-		if (getX() < 20 || getX() > getWorld().getWidth() - 20)
-			return true;
-		if (getY() < 20 || getY() > getWorld().getHeight() - 20)
-			return true;
-		else
-			return false;
-	}
-
-	/**
-	 * 
-	 * @param clss Are we able to see an object exactly at our position?
-	 * 
-	 * @return true if we can see an object of class 'clss' right where we are.
-	 * false if there is no such object here.
-	 */
-	public boolean canSee(Class<?> clss) {
-		Actor actor = getOneObjectAtOffset(0, 0, clss);
-		return actor != null;
-	}
-
-	/**
-	 * Try to eat an object of class 'clss'. This is only successful if there is
-	 * such an object where we currently are. Only one such
-	 * object will be eaten. If no object of the given class is being found
-	 * nothing happens at all.
-	 * 
-	 * @param clss The type of object to be hunted for having dinner.
-	 */
-	public void eat(Class<?> clss) {
-		Actor actor = getOneObjectAtOffset(0, 0, clss);
-		if (actor != null) {
-			getWorld().removeObject(actor);
-		}
-	}
-}
diff --git a/P/Sd1/crab/V2/src/main/java/Crab.java b/P/Sd1/crab/V2/src/main/java/Crab.java
deleted file mode 100644
index 56ac98f4a..000000000
--- a/P/Sd1/crab/V2/src/main/java/Crab.java
+++ /dev/null
@@ -1,89 +0,0 @@
-import greenfoot.Actor;
-import greenfoot.Greenfoot;
-import greenfoot.GreenfootImage; // (World, Actor, GreenfootImage, and Greenfoot)
-
-/**
- * This class defines a crab. Crabs live on the beach. They like sand worms
- * (very yummy, especially the green ones).
- * 
- */
-
-public class Crab extends Animal {
-
-  private final static GreenfootImage image1 = new GreenfootImage("crab.png");
-  private GreenfootImage image2 = new GreenfootImage("crab2.png");
-  private int wormsEaten;
-
-  // Initialize a crab's two images.
-  private void commonConstructor(int rotation) {
-    setRotation(rotation);
-    setImage(image1);
-    wormsEaten = 0;
-  }
-
-  /**
-   * Create a crab.
-   */
-  public Crab() {
-    commonConstructor(0);
-  }
-
-  /**
-   * @param rotation See {@link Actor#setRotation(int)}
-   */
-  public Crab(int rotation) {
-    commonConstructor(rotation);
-  }
-
-  /**
-   * Act - do whatever the crab wants to do. This method is called whenever the
-   * 'Act' or 'Run' button gets pressed in the environment.
-   */
-  public void act() {
-    checkKeypress();
-    move();
-    lookForWorm();
-    switchImage();
-  }
-
-  /**
-   * Alternate the crab's image between image1 and image2.
-   */
-  public void switchImage() {
-    if (getImage() == image1) {
-      setImage(image2);
-    } else {
-      setImage(image1);
-    }
-  }
-
-  /**
-   * Check whether a control key on the keyboard has been pressed. If it has,
-   * react accordingly.
-   */
-  public void checkKeypress() {
-    if (Greenfoot.isKeyDown("left")) {
-      turn(-4);
-    }
-    if (Greenfoot.isKeyDown("right")) {
-      turn(4);
-    }
-  }
-
-  /**
-   * Check whether we have stumbled upon a worm. If we have, eat it. If not, do
-   * nothing. If we have eaten eight worms, we win.
-   */
-  public void lookForWorm() {
-    if (canSee(Worm.class)) {
-      eat(Worm.class);
-      Greenfoot.playSound("slurp.wav");
-
-      wormsEaten = wormsEaten + 1;
-      if (wormsEaten == 8) {
-        Greenfoot.playSound("fanfare.wav");
-        Greenfoot.stop();
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/P/Sd1/crab/V2/src/main/java/CrabWorld.java b/P/Sd1/crab/V2/src/main/java/CrabWorld.java
deleted file mode 100644
index 4bbc69fb5..000000000
--- a/P/Sd1/crab/V2/src/main/java/CrabWorld.java
+++ /dev/null
@@ -1,91 +0,0 @@
-import greenfoot.Greenfoot;
-import greenfoot.World; // imports Actor, World, Greenfoot, GreenfootImage
-
-/**
- * A crab's world of configurable size and other nifty
- * features.
- *
- */
-public class CrabWorld extends World {
-  
-  private final static int
-      worldWidth = 700,     // Width and height of
-      worldHeight = 560,    // our crab's world.
-
-      initialLobsterCount = 3,  // Start a game with these numbers
-      initialWormCount = 10,    // of lobsters and worms.
-      
-      minimalLobsterCrabDistance = 100; // The minimal distance from our crab to
-                                        // any lobster when starting the game.
-
-  /**
-   * @return A random x-coordinate ranging from 0 to the worlds's width in pixel units
-   *         - 1. A width of e.g. 100 sets the range to {0, 1,..., 99}.
-   */
-  public static int getRandomX() {
-    return Greenfoot.getRandomNumber(worldWidth);
-  }
-
-  /**
-   * @return A random y-ccordinate ranging from 0 to the worlds's height in pixel
-   *         units - 1. A height of e.g. 70 sets the range to {0, 1,..., 69}.
-   */
-  public static int getRandomY() {
-    return Greenfoot.getRandomNumber(worldHeight);
-  }
-
-  /**
-   * @return A random rotation within the range [0, 1, ..., 360[.
-   */
-  public static int getRandomRotation() {
-    return Greenfoot.getRandomNumber(360);
-  }
-
-  /**
-   * Create the crab world (the beach). Every cell of our world is just 1 pixel.
-   */
-  public CrabWorld() {
-    super(worldWidth, worldHeight, 1);
-    populateWorld();
-  }
-
-  /**
-   * Create the objects for the start of the game.
-   */
-  public void populateWorld() {
-    
-    final int crabX = getRandomX(), // Our crab's initial (x|y) coordinates are
-              crabY = getRandomY(); // needed for later calculations, see below.
-    
-    // Create our crab.
-    addObject(new Crab(getRandomRotation()), crabX, crabY);
-
-    // Creating lobsters.
-    int numLobsters = 0;
-    while (numLobsters < initialLobsterCount) { // We use a while loop instead of for since
-                                                // numLobsters gets incremented condionally.
-      
-      final int lobsterX = getRandomX(),      // Potential lobster's position
-                lobsterY = getRandomY(),      // at (lobsterX|lobsterY).
-                  deltaX = lobsterX - crabX,
-                  deltaY = lobsterY - crabY;
-      
-      // Pythagoras is talking to us. Do you listen? If you can't hear him, take a pencil
-      // and a sheet of paper to sketch the problem's geometry.
-      //
-      // We only add a lobster at coordinate position (lobsterX|lobsterY) if
-      // its distance to our crab is sufficiently large.
-      //
-      if (minimalLobsterCrabDistance * minimalLobsterCrabDistance <   // Distance between lobster and crab is
-          deltaX * deltaX + deltaY * deltaY) {                        // larger than minimalLobsterCrabDistance.
-        addObject(new Lobster(getRandomRotation()), lobsterX, lobsterY);
-        numLobsters++;
-      }
-    }
-    
-    // Creating worms. Easy: No conditions apply.
-    for (int i = 0; i < initialWormCount; i++) {
-      addObject(new Worm(), getRandomX(), getRandomY());
-    }
-  }
-}
\ No newline at end of file
diff --git a/P/Sd1/crab/V2/src/main/java/Lobster.java b/P/Sd1/crab/V2/src/main/java/Lobster.java
deleted file mode 100644
index 2a6779dca..000000000
--- a/P/Sd1/crab/V2/src/main/java/Lobster.java
+++ /dev/null
@@ -1,69 +0,0 @@
-import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
-
-/**
- * A lobster. Lobsters live on the beach. They like to eat crabs. (Well, in our
- * game they do...)
- * 
- * Version: 2
- * 
- * The lobster walks around randomly. If it runs into a crab it eats it. In this
- * version, we have added a sound effect, and the game stops when a lobster eats
- * the crab.
- */
-
-public class Lobster extends Animal {
-
-  /**
-   * Defaults
-   */
-  public Lobster() {}
-
-  /**
-   * @param rotation See {@link Actor#setRotation(int)}
-   */
-  public Lobster(int rotation) {
-    setRotation(rotation);
-  }
-
-  /**
-   * Do whatever lobsters do.
-   */
-  public void act() {
-    turnAtEdge();
-    randomTurn();
-    move();
-    lookForCrab();
-  }
-
-  /**
-   * Check whether we are at the edge of the world. If we are, turn a bit. If
-   * not, do nothing.
-   */
-  public void turnAtEdge() {
-    if (atWorldEdge()) {
-      turn(17);
-    }
-  }
-
-  /**
-   * Randomly decide to turn from the current direction, or not. If we turn turn
-   * a bit left or right by a random degree.
-   */
-  public void randomTurn() {
-    if (Greenfoot.getRandomNumber(100) > 90) {
-      turn(Greenfoot.getRandomNumber(90) - 45);
-    }
-  }
-
-  /**
-   * Try to pinch a crab. That is: check whether we have stumbled upon a crab.
-   * If we have, remove the crab from the game, and stop the program running.
-   */
-  public void lookForCrab() {
-    if (canSee(Crab.class)) {
-      eat(Crab.class);
-      Greenfoot.playSound("au.wav");
-      Greenfoot.stop();
-    }
-  }
-}
\ No newline at end of file
diff --git a/P/Sd1/crab/V2/src/main/java/Worm.java b/P/Sd1/crab/V2/src/main/java/Worm.java
deleted file mode 100644
index 5cbd9f17c..000000000
--- a/P/Sd1/crab/V2/src/main/java/Worm.java
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * Worm. A sand worm. Very yummy. Especially crabs really like it. Author:
- * Michael Kolling
- */
-public class Worm extends Animal {
-
-}
\ No newline at end of file
diff --git a/P/Sd1/crab/V2/src/test/java/.gitignore b/P/Sd1/crab/V2/src/test/java/.gitignore
deleted file mode 100644
index e69de29bb..000000000
diff --git a/P/Sda2/forum_1/src/main/webapp/VAADIN/themes/mytheme/styles.css b/P/Sda2/forum_1/src/main/webapp/VAADIN/themes/mytheme/styles.css
index 8bcf75fcd..daad9b139 100644
--- a/P/Sda2/forum_1/src/main/webapp/VAADIN/themes/mytheme/styles.css
+++ b/P/Sda2/forum_1/src/main/webapp/VAADIN/themes/mytheme/styles.css
@@ -5,7 +5,7 @@
  * @param {value} $var - the value to search for
  * @param {bool} $recursive (false) - should any contained lists be checked for the value
  * 
- * @return {bool}��true if the value is found from the list, false otherwise
+ * @return {bool}??true if the value is found from the list, false otherwise
  * 
  * @group lists
  */
@@ -258,7 +258,7 @@
  * 
  * @param {color} $color ($v-background-color) - The base color for the gradient color stops
  * @param {list} $gradient ($v-gradient) - Valo-specific gradient value. See the documentation for $v-gradient.
- * @param {color}��$fallback (null) - A fallback color for browser which do not support linear gradients (IE8 and IE9 in particular). If null, the base $color is used instead.
+ * @param {color}??$fallback (null) - A fallback color for browser which do not support linear gradients (IE8 and IE9 in particular). If null, the base $color is used instead.
  * @param {string} $direction (to bottom) - the direction of the linear gradient. The color stops are by default so that a lighter shade is at the start and a darker shade is at the end.
  */
 
@@ -267,7 +267,7 @@
  *
  * @group style
  *
- * @param {list}��$border ($v-border) - CSS border value which can contain any of the color keywords
+ * @param {list}??$border ($v-border) - CSS border value which can contain any of the color keywords
  * @param {color} $color ($v-background-color) - the base color to which the color keywords are applied to
  * @param {color} $context (null) - context/surrounding color where the border is expected to appear. The color of the final border is the darker of the two parameters passed to this function.
  * @param {number} $strength (1) - adjustment for the border contrast
@@ -280,7 +280,7 @@
  * 
  * @param {string} $to-align (()) - The selector to match the elements which you wish to align vertically. The targeted elements should be inline or inline-block elements.
  * @param {string} $align (middle) - The vertical-align value, e.g. top, middle, bottom
- * @param {string}��$pseudo-element (after) - Which pseudo element to use for the vertical align guide
+ * @param {string}??$pseudo-element (after) - Which pseudo element to use for the vertical align guide
  * 
  * @group util
  */
@@ -539,7 +539,7 @@
  * Outputs the selectors and properties for the Accordion component.
  *
  * @param {string} $primary-stylename (v-accordion) - the primary style name for the selectors
- * @param {bool}��$include-additional-styles - should the mixin output all the different style variations of the component
+ * @param {bool}??$include-additional-styles - should the mixin output all the different style variations of the component
  * @group accordion
  */
 
@@ -547,7 +547,7 @@
  * Outputs the selectors and properties for the Button component.
  *
  * @param {string} $primary-stylename (v-button) - the primary style name for the selectors
- * @param {bool}��$include-additional-styles - should the mixin output all the different style variations of the component
+ * @param {bool}??$include-additional-styles - should the mixin output all the different style variations of the component
  *
  * @group button
  */
@@ -570,7 +570,7 @@
  * Outputs the selectors and properties for the CheckBox component.
  *
  * @param {string} $primary-stylename (v-checkbox) - the primary style name for the selectors
- * @param {bool}��$include-additional-styles - should the mixin output all the different style variations of the component
+ * @param {bool}??$include-additional-styles - should the mixin output all the different style variations of the component
  *
  * @group checkbox
  */
@@ -588,7 +588,7 @@
  * Outputs the selectors and properties for the ComboBox component.
  *
  * @param {string} $primary-stylename (v-filterselect) - the primary style name for the selectors
- * @param {bool}��$include-additional-styles - should the mixin output all the different style variations of the component
+ * @param {bool}??$include-additional-styles - should the mixin output all the different style variations of the component
  *
  * @group combobox
  */
@@ -604,7 +604,7 @@
  * Outputs the selectors and properties for the DateField component.
  *
  * @param {string} $primary-stylename (v-datefield) - the primary style name for the selectors
- * @param {bool}��$include-additional-styles - should the mixin output all the different style variations of the component
+ * @param {bool}??$include-additional-styles - should the mixin output all the different style variations of the component
  *
  * @group datefield
  */
@@ -621,7 +621,7 @@
  * Outputs the selectors and properties for the FormLayout component.
  *
  * @param {string} $primary-stylename (v-formlayout) - the primary style name for the selectors
- * @param {bool}��$include-additional-styles - should the mixin output all the different style variations of the component
+ * @param {bool}??$include-additional-styles - should the mixin output all the different style variations of the component
  *
  * @group formlayout
  */
@@ -666,7 +666,7 @@
  * Outputs the selectors and properties for the TextArea component.
  *
  * @param {string} $primary-stylename (v-textarea) - the primary style name for the selectors
- * @param {bool}��$include-additional-styles - should the mixin output all the different style variations of the component
+ * @param {bool}??$include-additional-styles - should the mixin output all the different style variations of the component
  *
  * @group textarea
  */
diff --git a/P/pom.xml b/P/pom.xml
index eb6901c5d..32d21e36b 100644
--- a/P/pom.xml
+++ b/P/pom.xml
@@ -47,9 +47,6 @@
     <module>Sd1/interest/V1</module>
     <module>Sd1/interest/V2</module>
 
-    <module>Sd1/crab/V1</module>
-    <module>Sd1/crab/V2</module>
-
 
     <module>Sd1/loop/answer</module>
     <module>Sd1/loop/question</module>
diff --git a/pom.xml b/pom.xml
index 37fbc45ce..c3f5b4b1b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,6 +3,10 @@
 <project>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
   <groupId>de.hdm-stuttgart.mi</groupId>
   <artifactId>lecturenotes-base-pom</artifactId>
   <version>1.0</version>
-- 
GitLab