import stanford.karel.*; public class KarelContestProject1 extends SuperKarel { public void run() { move(); move(); turnLeft(); makeRectangle(); turnLeft(); stepUp(); for(int i=0; i < 2; i++) { makeHalfSmallRectangle(); } turnRight(); stepUp(); turnRight(); makeWhiteRectangle(); stepUp(); makeDoorKnob(); turnRight(); for(int i=0; i < 14; i++) { magicalRow(); moveToNextRow(); } turnRight(); for(int i=0; i < 14; i++) { move(); } turnLeft(); } private void makeRectangle() { while(frontIsClear()) { if(frontIsClear()) { for(int i = 0;i < 19; i++) { move(); paintCorner(BLUE); } turnRight(); if(frontIsClear()) { for(int i = 0;i < 9; i++) { move(); paintCorner(BLUE); } } if(leftIsClear()) { turnRight(); }else{ turnLeft(); } } } } private void makeHalfSmallRectangle() { // while(frontIsClear()) { if(frontIsClear()) { for(int i = 0;i < 17; i++) { move(); paintCorner(BLUE); } turnRight(); if(frontIsClear()) { for(int i = 0;i < 7; i++) { move(); paintCorner(BLUE); } } if(leftIsClear()) { turnRight(); }else{ turnLeft(); } } } private void makeWhiteRectangle() { while(facingEast()) { for(int i = 0;i < 5; i++) { move(); paintCorner(WHITE); } turnLeft(); for(int i = 0;i < 15; i++) { move(); paintCorner(WHITE); } turnLeft(); } while(facingWest()) { for(int i = 0;i < 5; i++) { move(); paintCorner(WHITE); } turnLeft(); for(int i = 0;i < 15; i++) { move(); paintCorner(WHITE); } turnLeft(); } } private void paintCornerRandomColor() { if (random(0.1)) { paintCorner (BLUE); }else if (random (0.1)) { paintCorner (BLACK); }else if (random (0.1)) { paintCorner (GREEN); }else if (random (0.1)) { paintCorner (RED); }else if (random (0.1)) { paintCorner (GREEN); }else if (random (0.1)) { paintCorner (YELLOW); }else if (random (0.1)) { paintCorner (MAGENTA); }else if (random (0.1)) { paintCorner (ORANGE); }else if (random (0.1)) { paintCorner (CYAN); }else if (random (0.1)) { paintCorner (GRAY); } } //starts facing east //ends facing north private void stepUp() { move(); turnLeft(); move(); } private void makeDoorKnob() { for(int i=0; i < 6; i++) { move(); } putBeeper(); turnAround(); for(int i=0; i < 6; i++) { move(); } turnAround(); } private void magicalRow() { paintCornerRandomColor(); move(); paintCornerRandomColor(); move(); paintCornerRandomColor(); move(); paintCornerRandomColor(); move(); turnAround(); for(int i=0; i < 4; i++) { move(); } turnAround(); } private void moveToNextRow() { turnLeft(); move(); turnRight(); } private void magicalDoor() { for(int i=0; i < 14; i++) { magicalRow(); moveToNextRow(); } turnRight(); for(int i=0; i < 14; i++) { move(); } turnLeft(); } }