public void move() {
	
		if(inhibit > 0) { inhibit--; };

		boolean can_go_straight = can_go_at(x + dx, y + dy);

		Random random = new Random();
		int r = random.nextInt(17);//(4);
		//r = 1;

		boolean has_turned = false;
		if(r == 0 && inhibit == 0) {
			has_turned = turn_left_or_right();
		}
		if(!has_turned && !can_go_straight) {
		System.out.println("cannot cont");
			has_turned = turn_left_or_right();
		}
		if(has_turned) { inhibit = 32; }

		if( !has_turned && !can_go_straight) {
			System.out.println("last...");
			Direction d = new Direction(dx,dy);
			d.turnLeft();
			d.turnLeft();
			dx = d.x;
			dy = d.y;

		}
			
			
		/* Perform the move */
		//System.out.println("dx=" + dx + " dy=" + dy + " x=" + x + " y=" + y);
		x += dx;
		y += dy;
	//System.out.println("ddx");
	//	x += ddx;
	//	y += ddy;
	}