function robotOnGrid() {
	
	// robot starts in the lower left corner
	int robotX := 1; int robotY := 20;

	// janitor starts in the grid middle
	int janitorX := ceil(20 / 2); int janitorY := ceil(20 / 2);

	// iterates as long as the robot is not in the upper right corner
	while(!(robotX = 20 & robotY = 1)) {

		// robot perfoms one step at max each iteration
		// checks whether we can go to the right and the janitor is not there
		if(robotX < 20 & !((janitorX = robotX + 1) & (janitorY = robotY))) {
			robotX := robotX + 1;
		}
		// checks whether we can go up and the janitor is not there
		if(robotX = 20 & !((janitorX = robotX) & (janitorY = robotY - 1))) {
			robotY := robotY - 1;
		}

		// moves the janitor randomly in one direction, not limited by any borders
		{janitorX := janitorX + 1;}[0.25]{{janitorX := janitorX - 1;}[1/3]{{janitorY := janitorY + 1;}[0.375]{janitorY := janitorY - 1;}}}

	}
}