anchor.diff:    }
   
     /**
  +   * returns the x- and y-position as interger-values in a list
  +   */
  +  List<int> getPosition(String pos) {
  +    List<String> values = pos.split("_");
  +    List<int> positions = new List();
  +    positions.clear();
  +    positions.add(int.parse(values[0]));
  +    positions.add(int.parse(values[1]));
  +    return positions;
  +  }
  +
  +  //endregion
  +
  +  //region SETTER
  +
  +  /**
  +   * Changes the status of the Gamekey to "Verbunden" in green if true or "nicht verbunden" in red if false
  +   */
  +  setGameKeyAvailable(bool value) {
  +    if (value == true) {
  +      querySelector("#gamekeystatus").style.color = "green";
  +      querySelector("#gamekeystatus").innerHtml = "Gamekeystatus: Connected";
  +    } else {
  +      querySelector("#gamekeystatus").style.color = "red";
  +      querySelector("#gamekeystatus").innerHtml =
  +      "Gamekeystatus: Not connected";
  +    }
  +  }
  +
  +  /**
  +   * Sets the Content of the Pull Button
  +   */
  +  setPullButton(int amount) {
  +    querySelector("#pullbutton").innerHtml = "Sticky gloves($amount)";
  +  }
  +
  +  //endregion
  +
  +  //region SCALING
  +
  +  /**
  +   * Scales the elements of the table and enables support for every resolution
  +   */
  +  void scaling() {
  +    int resoWidth = window.innerWidth - 50;
  +    int resoHeight = window.innerHeight - 200;
  +    String oS;
  +    int px;
  +    double x = resoWidth / _tableW;
  +    double y = resoHeight / _tableH;
  +    if (x <= y) {
  +      px = x.toInt();
  +    } else {
  +      px = y.toInt();
  +    }
  +    oS = px.toString() + "px";
  +    querySelectorAll(".player").style.height = oS;
  +    querySelectorAll(".player").style.width = oS;
  +    querySelectorAll(".crate").style.height = oS;
  +    querySelectorAll(".crate").style.width = oS;
  +    querySelectorAll(".ground").style.height = oS;
  +    querySelectorAll(".ground").style.width = oS;
  +    querySelectorAll(".target").style.height = oS;
  +    querySelectorAll(".target").style.width = oS;
  +    querySelectorAll(".wall").style.height = oS;
  +    querySelectorAll(".wall").style.width = oS;
  +  }
  +
  +  //TODO Buttons und Statistiken noch skalieren
  +
  +  //endregion
  +
  +  //region GENERATE LEVEL
  +
  +  /**
  +   * Creates the level in html from a List
  +   */
  +  Future<String> generateLevel(List<Map> levelList, int column,
  +      int row) async {
  +    this._tableH = row;
  +    this._tableW = column;
  +    List<Map>tempList = new List<Map>();
  +    tempList = levelList;
  +    String level = "";
  +    bool onePlayer = false;
  +    for (var map in tempList) {
  +      level += map["r"].toUpperCase();
  +    }
  +    String formatlevel = "";
  +    for (int j = 0; j < row; j++) {
  +      //Spalten
  +      formatlevel += "<tr>";
  +      for (int i = 0; i < column; i++) {
  +        //Zeilen
  +        if (level.length > 0) {
  +          String firstChar = level.substring(0, 1);
  +          level = level.substring(1);
  +          switch (firstChar) {
  +            case 'W' :
  +              formatlevel += "<td id=\"pos$i\_$j\" class=\"wall\" ></td>";
  +              break;
  +            case 'G' :
  +              formatlevel += "<td id=\"pos$i\_$j\" class=\"ground\" ></td>";
  +              break;
  +            case 'P' :
  +              if (onePlayer == false) {
  +                formatlevel +=
  +                "<td id=\"pos$i\_$j\" class=\"player\"></td>";
  +                onePlayer = true;
  +              } else {
  +                formatlevel += "<td id=\"pos$i\_$j\" class=\"ground\" ></td>";
  +              }
  +              break;
  +            case 'C' :
  +              formatlevel +=
  +              "<td id=\"pos$i\_$j\" class=\"crate\"></td>";
  +              break;
  +            case 'T' :
  +              formatlevel += "<td id=\"pos$i\_$j\" class=\"target\"></td>";
  +              break;
  +            case 'S' :
  +              formatlevel +=
  +              "<td id=\"pos$i\_$j\" class=\"special\"></td>";
  +              break;
  +          }
  +        } else {
  +          formatlevel += "<td id=\"pos$i\_$j\" class=\"ground\" ></td>";
  +        }
  +      }
  +      formatlevel += "</tr>\n";
  +    }
  +    formatlevel = "<table><tbody>\n$formatlevel</tbody></table>";
  +    String objectlayer = formatlevel;
  +    String groundLayer = formatlevel;
  +    String groundlayer = groundLayer.replaceAll(
  +        "class=\"crate\"", "class=\"ground\"");
  +    groundlayer =
  +        groundlayer.replaceAll("class=\"player\"", "class=\"ground\"");
  +    groundlayer =
  +        groundlayer.replaceAll("class=\"special\"", "class=\"target\"");
  +
  +    objectlayer = objectlayer.replaceAll("class=\"wall\"", "class=\"ground\"");
  +    objectlayer =
  +        objectlayer.replaceAll("class=\"target\"", "class=\"ground\"");
  +    objectlayer =
  +        objectlayer.replaceAll("class=\"special\"", "class=\"crate\"");
  +
  +    querySelector("#groundlayer").innerHtml = groundlayer;
  +    querySelector("#objectlayer").innerHtml = objectlayer;
  +    _field = new List<List<HtmlElement>>(row);
  +    for (int rows = 0; rows < row; rows++) {
  +      _field[rows] = [];
  +      for (int col = 0; col < column; col++) {
  +        _field[rows].add(querySelector("#pos${col}_${rows}"));
  +      }
  +    }
  +    await scaling();
  +    return formatlevel;
  +  }
  +
  +  //endregion
  +
  +  /**
      * Displays the Code for the actual level
      */
     void showLvlCode(String code) {
  
positive.code:         "</div>";
    }
  
    /*
    Generates the button to edit the user data
    */
    editUser() {
      querySelector('#edituser').innerHtml =
      "<div id=\"overlay\">"
  
negative.code:         "<button id=\"back\" class=\"option\">Back(&#x2190)</button>"
          "</div>"
          "</div>";
    }
  
    /**
  