package contest2010; import java.awt.*; import stanford.karel.*; /* nicki liang */ public class FIFAkarel extends SuperKarel { public void run(){ screenTurnOn(); spiralOut(); getBack(); paintRow(GREEN); moveToNextRow(); secondRow(); thirdRow(); fourthRow(); fifthRow(); sixthRow(); Rseven(); Reight(); Rnine(); Rten(); Releven(); Rtwelve(); Rthirteen(); Rfourteen(); Rfifteen(); Rsixteen(); Rseventeen(); Reighteen(); Rnineteen(); Rtwenty(); RtwentyOne(); RtwentyTwo(); RtwentyThree(); RtwentyFour(); RtwentyFive(); RtwentySix(); RtwentySeven(); RtwentyEight(); RtwentyNine(); Rthirty(); RthirtyOne(); timer(); changeColor(); setUp(); spiralOut(); } private void screenTurnOn(){ fillScreen(); } private void spiralOut(){ turnAround(); for(int i=0; i<3; i++){ paintRow(BLACK); turnLeft(); } paintRow(BLACK); for(int i=0; i<43; i++){ turnLeft(); move(); turnLeft(); while (cornerColorIs(BLACK)){ move(); } turnRight(); paintRow(BLACK); } } private void setUp(){ turnAround(); moveToWall(); turnRight(); } private void getBack(){ turnLeft(); moveToWall(); turnLeft(); moveToWall(); turnLeft(); } private void fillScreen(){ while(frontIsClear()){ if(random(.083)){ paintCorner(BLUE); }else if (random(.09)){ paintCorner(CYAN); }else if(random(.1)){ paintCorner(DARK_GRAY); }else if(random(.11)){ paintCorner(GRAY); }else if(random(.125)){ paintCorner(GREEN); }else if(random(.1428)){ paintCorner(LIGHT_GRAY); }else if(random(.166)){ paintCorner(MAGENTA); }else if(random(.2)){ paintCorner(ORANGE); }else if(random(.25)){ paintCorner(PINK); }else if(random(.33)){ paintCorner(RED); }else if(random(.5)){ paintCorner(WHITE); }else if(random(1)){ paintCorner(YELLOW); } if(frontIsClear()){ move(); } if(frontIsBlocked()){ if(random(.083)){ paintCorner(BLUE); }else if (random(.09)){ paintCorner(CYAN); }else if(random(.1)){ paintCorner(DARK_GRAY); }else if(random(.11)){ paintCorner(GRAY); }else if(random(.125)){ paintCorner(GREEN); }else if(random(.1428)){ paintCorner(LIGHT_GRAY); }else if(random(.166)){ paintCorner(MAGENTA); }else if(random(.2)){ paintCorner(ORANGE); }else if(random(.25)){ paintCorner(PINK); }else if(random(.33)){ paintCorner(RED); }else if(random(.5)){ paintCorner(WHITE); }else if(random(1)){ paintCorner(YELLOW); } moveToNextRow(); } } } private void pNc(Color Cornercolor, int corners){ for(int i=0; i<corners; i++){ paintCorner(Cornercolor); if(frontIsClear()){ move(); } } } private void paintRow(Color Cornercolor){ while(frontIsClear()){ paintCorner(Cornercolor); if(frontIsClear()){ move(); } } paintCorner(Cornercolor); } private void moveToNextRow(){ turnAround(); while(frontIsClear()){ move(); } turnRight(); if(frontIsClear()){ move(); turnRight(); } } private void paintCcorner(Color Cornercolor){ paintCorner(Cornercolor); if(frontIsClear()){ move(); } } private void tripple(){ paintCcorner(WHITE); paintCcorner(BLUE); paintCcorner(WHITE); } private void trippple(){ paintCcorner(RED); paintCcorner(LIGHT_GRAY); paintCcorner(RED); } private void fsteps(){ pNc(WHITE,2); paintCcorner(YELLOW); pNc(WHITE,2); } private void moveToWall(){ while(frontIsClear()){ move(); } } private void secondRow(){ pNc(BLUE,10); paintCcorner(WHITE); pNc(BLUE,3); tripple(); pNc(BLUE,3); tripple(); paintCcorner(BLUE); moveToNextRow(); } private void daBloc(){ pNc(ORANGE,2); pNc(BLACK,2); } private void thirdRow(){ pNc(BLUE,10); pNc(WHITE,2); pNc(BLUE,2); tripple(); paintCcorner(WHITE); pNc(BLUE,2); pNc(WHITE,3); paintCcorner(BLUE); moveToNextRow(); } private void fourthRow(){ paintCcorner(LIGHT_GRAY); pNc(YELLOW,2); fsteps(); pNc(BLUE,2); paintCcorner(WHITE); pNc(BLUE,3); tripple(); pNc(BLUE,3); tripple(); paintCcorner(BLUE); moveToNextRow(); } private void fifthRow(){ paintCcorner(LIGHT_GRAY); paintCcorner(YELLOW); paintCcorner(LIGHT_GRAY); fsteps(); paintCcorner(LIGHT_GRAY); paintCcorner(BLUE); pNc(WHITE,2); tripple(); paintCcorner(BLUE); pNc(WHITE,2); tripple(); pNc(WHITE,2); paintCcorner(BLUE); moveToNextRow(); } private void sixthRow(){ pNc(YELLOW,2); paintCcorner(LIGHT_GRAY); fsteps(); pNc(LIGHT_GRAY,2); paintRow(BLUE); moveToNextRow(); } private void Rseven(){ pNc(LIGHT_GRAY,3); trippple(); pNc(LIGHT_GRAY,6); paintRow(BLUE); moveToNextRow(); } private void Reight(){ pNc(DARK_GRAY,3); pNc(RED,3); pNc(BLACK,2); paintCcorner(LIGHT_GRAY); paintCcorner(GREEN); pNc(LIGHT_GRAY,3); paintRow(BLUE); moveToNextRow(); } private void Rnine(){ paintCcorner(LIGHT_GRAY); pNc(DARK_GRAY,2); trippple(); pNc(BLACK,2); paintCcorner(LIGHT_GRAY); pNc(GREEN,2); pNc(LIGHT_GRAY,3); paintRow(BLUE); moveToNextRow(); } private void Rten(){ pNc(DARK_GRAY,3); pNc(RED,3); pNc(BLACK,2); pNc(LIGHT_GRAY,2); paintCcorner(GREEN); pNc(LIGHT_GRAY,2); paintCcorner(CYAN); pNc(LIGHT_GRAY,2); paintRow(BLUE); moveToNextRow(); } private void Releven(){ pNc(DARK_GRAY,2); pNc(LIGHT_GRAY,5); pNc(BLACK,2); paintCcorner(LIGHT_GRAY); pNc(GREEN,2); paintCcorner(LIGHT_GRAY); pNc(CYAN,2); pNc(LIGHT_GRAY,2); paintRow(BLUE); moveToNextRow(); } private void Rtwelve(){ pNc(DARK_GRAY,3); pNc(LIGHT_GRAY,4); pNc(BLACK,2); paintCcorner(LIGHT_GRAY); paintCcorner(LIGHT_GRAY); pNc(GREEN,2); paintCcorner(LIGHT_GRAY); pNc(CYAN,2); pNc(LIGHT_GRAY,2); paintRow(BLUE); moveToNextRow(); } private void Rthirteen(){ pNc(LIGHT_GRAY,4); pNc(ORANGE,4); pNc(BLACK,2); paintCcorner(RED); paintCcorner(LIGHT_GRAY); paintCcorner(GREEN); pNc(LIGHT_GRAY,2); pNc(CYAN,2); pNc(LIGHT_GRAY,3); paintRow(BLUE); moveToNextRow(); } private void Rfourteen(){ pNc(LIGHT_GRAY,2); pNc(ORANGE,3); paintCcorner(BLACK); pNc(ORANGE,2); pNc(BLACK,2); pNc(RED,2); pNc(GREEN,2); pNc(LIGHT_GRAY,2); pNc(CYAN,2); pNc(LIGHT_GRAY,3); paintRow(BLUE); moveToNextRow(); } private void Rfifteen(){ paintCcorner(LIGHT_GRAY); paintCcorner(ORANGE); pNc(BLACK,4); pNc(ORANGE,3); pNc(BLACK,2); paintCcorner(RED); paintCcorner(ORANGE); pNc(GREEN,2); pNc(LIGHT_GRAY,2); pNc(CYAN,3); pNc(LIGHT_GRAY,2); pNc(BLUE,2); moveToNextRow(); } private void Rsixteen(){ daBloc(); pNc(ORANGE,2); pNc(BLACK,5); paintCcorner(RED); paintCcorner(ORANGE); paintCcorner(LIGHT_GRAY); paintCcorner(GREEN); pNc(LIGHT_GRAY,2); pNc(CYAN,4); pNc(LIGHT_GRAY,2); pNc(BLUE,2); moveToNextRow(); } private void Rseventeen(){ daBloc(); pNc(ORANGE,2); pNc(BLACK,6); paintCcorner(ORANGE); pNc(LIGHT_GRAY,6); pNc(CYAN,4); paintCcorner(LIGHT_GRAY); moveToNextRow(); } private void Reighteen(){ daBloc(); paintCcorner(ORANGE); pNc(BLACK,4); pNc(RED,2); pNc(ORANGE,2); pNc(LIGHT_GRAY,2); paintCcorner(DARK_GRAY); paintCcorner(LIGHT_GRAY); paintCcorner(YELLOW); paintCcorner(LIGHT_GRAY); pNc(CYAN,4); paintCcorner(LIGHT_GRAY); moveToNextRow(); } private void Rnineteen(){ paintCcorner(LIGHT_GRAY); paintCcorner(ORANGE); pNc(BLACK,7); paintCcorner(RED); pNc(ORANGE,2); paintCcorner(LIGHT_GRAY); paintCcorner(YELLOW); paintCcorner(LIGHT_GRAY); paintCcorner(DARK_GRAY); paintCcorner(LIGHT_GRAY); paintCcorner(YELLOW); pNc(LIGHT_GRAY,2); pNc(CYAN,3); paintCcorner(LIGHT_GRAY); moveToNextRow(); } private void Rtwenty(){ pNc(BLACK,10); pNc(ORANGE,2); pNc(LIGHT_GRAY,2); paintCcorner(YELLOW); paintCcorner(LIGHT_GRAY); pNc(DARK_GRAY,2); paintCcorner(YELLOW); paintCcorner(LIGHT_GRAY); pNc(CYAN,3); paintCcorner(LIGHT_GRAY); } private void RtwentyOne(){ pNc(BLACK,5); pNc(ORANGE,2); pNc(RED,2); pNc(BLACK,2); paintCcorner(ORANGE); pNc(LIGHT_GRAY,2); paintCcorner(YELLOW); paintCcorner(DARK_GRAY); paintCcorner(LIGHT_GRAY); paintCcorner(YELLOW); pNc(LIGHT_GRAY,3); pNc(CYAN,2); paintCcorner(LIGHT_GRAY); moveToNextRow(); } private void RtwentyTwo(){ pNc(BLACK,6); pNc(RED,2); pNc(BLACK,4); paintCcorner(LIGHT_GRAY); paintCcorner(YELLOW); paintCcorner(LIGHT_GRAY); paintCcorner(DARK_GRAY); paintCcorner(LIGHT_GRAY); paintCcorner(YELLOW); pNc(LIGHT_GRAY,3); pNc(CYAN,2); paintCcorner(LIGHT_GRAY); moveToNextRow(); } private void RtwentyThree(){ pNc(BLACK,3); pNc(ORANGE,2); pNc(BLACK,2); paintCcorner(RED); paintCcorner(LIGHT_GRAY); paintCcorner(ORANGE); pNc(BLACK,3); paintCcorner(LIGHT_GRAY); paintCcorner(DARK_GRAY); paintCcorner(LIGHT_GRAY); paintCcorner(YELLOW); pNc(LIGHT_GRAY,5); paintCcorner(CYAN); paintCcorner(LIGHT_GRAY); moveToNextRow(); } private void RtwentyFour(){ paintCcorner(GREEN); paintCcorner(LIGHT_GRAY); pNc(ORANGE,3); paintCcorner(RED); pNc(BLACK,2); paintCcorner(LIGHT_GRAY); pNc(ORANGE,2); pNc(BLACK,3); paintCcorner(LIGHT_GRAY); paintCcorner(YELLOW); pNc(LIGHT_GRAY,3); pNc(BLUE,2); paintCcorner(LIGHT_GRAY); paintCcorner(CYAN); paintCcorner(LIGHT_GRAY); moveToNextRow(); } private void RtwentyFive(){ pNc(GREEN,2); paintCcorner(LIGHT_GRAY); pNc(ORANGE,2); pNc(RED,2); pNc(BLACK,2); paintCcorner(LIGHT_GRAY); pNc(YELLOW,2); pNc(BLACK,3); pNc(LIGHT_GRAY,3); paintCcorner(BLUE); pNc(LIGHT_GRAY,2); paintCcorner(BLUE); pNc(LIGHT_GRAY,2); moveToNextRow(); } private void RtwentySix(){ paintCcorner(LIGHT_GRAY); pNc(GREEN,2); paintCcorner(LIGHT_GRAY); paintCcorner(ORANGE); pNc(RED,2); pNc(LIGHT_GRAY,3); pNc(DARK_GRAY,2); paintCcorner(YELLOW); pNc(BLACK,2); pNc(LIGHT_GRAY,2); paintCcorner(BLUE); paintCcorner(LIGHT_GRAY); paintCcorner(GREEN); paintCcorner(LIGHT_GRAY); pNc(BLUE,2); paintCcorner(LIGHT_GRAY); moveToNextRow(); } private void RtwentySeven(){ pNc(LIGHT_GRAY,2); pNc(GREEN,2); paintCcorner(LIGHT_GRAY); paintCcorner(RED); pNc(LIGHT_GRAY,2); paintCcorner(BLACK); pNc(LIGHT_GRAY,2); paintCcorner(DARK_GRAY); paintCcorner(YELLOW); paintCcorner(LIGHT_GRAY); paintCcorner(BLACK); paintCcorner(LIGHT_GRAY); paintCcorner(BLUE); paintCcorner(LIGHT_GRAY); paintCcorner(GREEN); paintCcorner(LIGHT_GRAY); paintCcorner(GREEN); pNc(LIGHT_GRAY,2); paintCcorner(BLUE); moveToNextRow(); } private void RtwentyEight(){ pNc(LIGHT_GRAY,3); pNc(GREEN,2); pNc(LIGHT_GRAY,2); paintCcorner(BLACK); paintCcorner(RED); paintCcorner(BLACK); pNc(LIGHT_GRAY,6); paintCcorner(BLUE); paintCcorner(GREEN); pNc(LIGHT_GRAY,3); paintCcorner(GREEN); paintCcorner(LIGHT_GRAY); paintCcorner(BLUE); moveToNextRow(); } private void RtwentyNine(){ pNc(LIGHT_GRAY,4); pNc(GREEN,2); paintCcorner(BLACK); paintCcorner(ORANGE); paintCcorner(BLACK); paintCcorner(RED); paintCcorner(BLACK); pNc(LIGHT_GRAY,6); paintCcorner(BLUE); paintCcorner(GREEN); paintCcorner(LIGHT_GRAY); paintCcorner(GREEN); paintCcorner(LIGHT_GRAY); paintCcorner(BLUE); paintCcorner(LIGHT_GRAY); moveToNextRow(); } private void Rthirty(){ pNc(LIGHT_GRAY,5); paintCcorner(GREEN); paintCcorner(LIGHT_GRAY); paintCcorner(BLACK); paintCcorner(ORANGE); paintCcorner(BLACK); pNc(LIGHT_GRAY,8); paintCcorner(BLUE); paintCcorner(GREEN); pNc(BLUE,2); pNc(LIGHT_GRAY,2); moveToNextRow(); } private void RthirtyOne(){ pNc(LIGHT_GRAY,8); paintCcorner(BLACK); paintRow(LIGHT_GRAY); } private void changeColor(){ turnRight(); turnAround(); moveToWall(); turnLeft(); moveToWall(); turnLeft(); paintCorner(switchColor()); while(frontIsClear()){ move(); Color col = switchColor(); paintCorner(col); if(frontIsBlocked()){ moveToNextRow(); if(frontIsClear()){ paintCorner(switchColor()); } } } } private Color switchColor() { if(cornerColorIs(BLUE)) { return MAGENTA; } else if(cornerColorIs(RED)) { return BLUE; } else if(cornerColorIs(WHITE)) { return LIGHT_GRAY; }else if(cornerColorIs(YELLOW)) { return BLUE; }else if(cornerColorIs(LIGHT_GRAY)) { return CYAN; }else if(cornerColorIs(DARK_GRAY)) { return RED; }else if(cornerColorIs(GREEN)) { return WHITE; }else if(cornerColorIs(CYAN)) { return ORANGE; }else if(cornerColorIs(BLACK)) { return GREEN; }else if(cornerColorIs(ORANGE)) { return YELLOW; } else { return null; } } private void timer(){ try { Thread.sleep(1800); } catch (InterruptedException ie) { } } }