anchor.diff:          for(int y = currentBlockPos.y; y < _fieldY; y++)
           {
             _field[currentBlockPos.x][y].setFalling(true);
  +          _field[currentBlockPos.x][y].setIsLocked(true);
           }
   
           // add Points to Score
  
positive.code: import "dart:collection";
  import "Command.dart";
  import "Block.dart";
  import "dart:math";
  import "Level.dart";
  import "Cursor.dart";
  
  class Playfield
  {
    List<List<Block>> _field;
    Queue<Command> _actionQueue = new Queue<Command>();
    //Streamcontroller hier kommt der eventhandler hin
    double _currentScore;
    int _currentLevelTime;
    List<Block> _toDissolve;
    int _fieldX;
    int _fieldY;
  
negative.code:     throw new Exception("not tested yet");
    }
  
    /**
     * Create and add a new Row into the play field.
     * blockNameList: a List of the available Blocks for this Level as String
     * colors: a List of available Colors for Blocks in this Level as String(Hex)
     */
    void addRow(List<String> blockNameList,List<String> colors)
    {
      Block newBlock;
      var rng = new Random();
      int rngBlock;
      int rngColor;
  
      // create new Blocks till the length of the play field
      for(int r = 0; r < _fieldX; r++)
      {
        // choose a random Block Type and Color
        rngBlock = rng.nextInt(blockNameList.length);
        rngColor = rng.nextInt(colors.length);
  
        // create a Block of the chosen Type with random Color
        // NOTE: Need to be changed if new BlockTypes are Available in Block.dart !!!
        switch(blockNameList[rngBlock])
        {
          case "normalBlock":
              newBlock = new Block(colors[rngColor],new Point(r,0));
            break;
  
          default:
            newBlock = new Block(colors[rngColor],new Point(r,0));
            throw new Exception("Playfield:addRow => BlockType was not detected!");
            break;
  
        } // end switch case
  
        // insert the new Block into the Field
        _field[r][0] = newBlock;
  
      } // end for loop
  
      throw new Exception("not tested yet");
    }
  
    /**
     * Get a Block on this Position
     * coord: a Position on the field as Point
     * return: Block or Null
     */
    Block getBlockFromField(Point coord)
    {
      return (isValidCoords(coord)) ? _field[coord.x][coord.y] : null;
    }
  
    /**
     * Fetch Method for the Event Stream. This method is raised in this class
     * to created a Custom Event which are declared and defined in this Method and
     * in the eventType Enum.
     */
    fetch(eventType type)
    {
      // create a new Event and push it on the Stream
      switch(type)
      {
        case eventType.GameOver:
          _eventController.add(eventType.GameOver);
          break;
  
        case eventType.Win:
          _eventController.add(eventType.Win);
          break;
      }
    }
  
    /**
     * Stream who send Custom Events which are declared in the fetch method.
     */
    Stream get allEvents => _eventController.stream;
  
  }